rawdata = bytearray(rawfile.read())
cherrypy.log('read %d bytes of rawdata' % len(rawdata))
for i in range(0, len(rawdata), 16):
- value0 = rawdata[i+1] * 256 + rawdata[i]
- value1 = rawdata[i+3] * 256 + rawdata[i+2]
- value2 = rawdata[i+5] * 256 + rawdata[i+4]
- value3 = rawdata[i+7] * 256 + rawdata[i+6]
- value4 = rawdata[i+9] * 256 + rawdata[i+8]
- value5 = rawdata[i+11] * 256 + rawdata[i+10]
- value6 = rawdata[i+13] * 256 + rawdata[i+12]
- value7 = rawdata[i+15] * 256 + rawdata[i+14]
+ # convert each ADC input value into volts
+ value0 = '%.3f'%((float(rawdata[i+1] * 256 + rawdata[i]) + float(OFFSET)) * float(SCALE) / 1000)
+ value1 = '%.3f'%((float(rawdata[i+3] * 256 + rawdata[i+2]) + float(OFFSET)) * float(SCALE) / 1000)
+ value2 = '%.3f'%((float(rawdata[i+5] * 256 + rawdata[i+4]) + float(OFFSET)) * float(SCALE) / 1000)
+ value3 = '%.3f'%((float(rawdata[i+7] * 256 + rawdata[i+6]) + float(OFFSET)) * float(SCALE) / 1000)
+ value4 = '%.3f'%((float(rawdata[i+9] * 256 + rawdata[i+8]) + float(OFFSET)) * float(SCALE) / 1000)
+ value5 = '%.3f'%((float(rawdata[i+11] * 256 + rawdata[i+10]) + float(OFFSET)) * float(SCALE) / 1000)
+ value6 = '%.3f'%((float(rawdata[i+13] * 256 + rawdata[i+12]) + float(OFFSET)) * float(SCALE) / 1000)
+ value7 = '%.3f'%((float(rawdata[i+15] * 256 + rawdata[i+14]) + float(OFFSET)) * float(SCALE) / 1000)
csvwriter.writerow([value0, value1, value2, value3, value4, value5, value6, value7])
if __name__ == '__main__':