basically what the code does is transmit data to a hardware and then receive data that the hardware will transmit.
import serial import string import time from struct import * ser = serial.Serial() ser.baudrate = 9600 ser.port = 0 ser ser.close() ser.open() command = 67 message_no = 1 total_data = 2 item = 12000 #to warm-up the hardware hexed = hex(item) data_hi, data_lo = divmod(item, 0x100) checksum = -(data_hi + data_lo + 0x46) & 0xff ser.write(pack('6B', command, message_no, total_data, data_lo, data_hi, checksum)) #serial transmit protocol time.sleep(1) item = 10000 no = 0 for item in range(10000, 30001, 250): no = no +1 hexed = hex(item) data_hi, data_lo = divmod(item, 0x100) checksum = -(data_hi + data_lo + 0x46) & 0xff ser.write(pack('6B', command, message_no, total_data, data_lo, data_hi, checksum)) data = ser.read(10) (command, msg_no, no_databyte, temp1, temp2, pyra1, pyra2, voltage, current, checksum) = unpack('10B', data) #serial receive protocol print no, command, msg_no, no_databyte, temp1, temp2, pyra1, pyra2, voltage, current, checksum time.sleep(1) ser.close() =========================== and here is some result after running the program on Idle Python 2.3 (enthought ed.) 1 70 168 6 0 0 0 0 0 0 12 2 70 2 6 0 0 0 0 0 0 178 3 70 3 6 0 0 0 0 0 0 177 4 70 4 6 0 0 0 0 0 0 176 5 70 5 6 0 0 0 0 0 0 175 6 70 6 6 0 0 0 0 0 0 174 7 70 7 6 0 0 0 0 0 0 173 8 70 8 6 0 0 0 0 0 0 172 9 70 9 6 0 0 0 0 0 0 171 10 70 10 6 0 0 0 0 0 0 170 11 70 11 6 0 0 0 0 0 0 169 12 70 12 6 0 0 0 0 0 0 168 13 70 13 6 0 0 0 0 0 0 167 14 70 14 6 0 0 0 0 0 0 166 15 70 15 6 0 0 0 0 0 0 165 ========================== the result i am expecting is for the data bytes (bytes 4-9) to change its value since i am able to control the sensors which the data were based. i am just asking for your opinion if there is something wrong with this program, otherwise, it could be a hardware problem. thanks in advance. -- http://mail.python.org/mailman/listinfo/python-list