def ReadChar(fd): # read a single character back from the serial line qtydata = wiringpi.serialDataAvail(fd) logging.info("Amount of data: %s bytes" % qtydata) response = 0 if qtydata > 0: logging.debug("Reading data back %d" % qtydata) response = wiringpi.serialGetchar(fd) return response
def ReadInt(fd): # read a single character back from the serial line qtydata = wiringpi2.serialDataAvail(fd) # print ("Amount of data: %s bytes" % qtydata) # Added for debug purposes response = 0 if qtydata > 0: # print ("Reading data back %d" % qtydata) #Added for Debug purposes response = wiringpi2.serialGetchar(fd) return response
def ReadText(fd): # read the data back from the serial line and return it as a string to the calling function qtydata = wiringpi2.serialDataAvail(fd) # print ("Amount of data: %d bytes" % qtydata) # Added for debug purposes response = "" while qtydata > 0: # while there is data to be read, read it back # print ("Reading data back %d" % qtydata) #Added for Debug purposes response = response + chr(wiringpi2.serialGetchar(fd)) qtydata = qtydata - 1 return response
def read_response(serial, ser, length): wiringpi.pinMode(TX, INPUT) wiringpi.pullUpDnControl(TX, PUD_UP) first = wiringpi.millis() wiringpi.delay(50) ## Save all the data from RX excluding bounced data data_list = [] num_ser = wiringpi.serialDataAvail(serial) while (wiringpi.millis() - first) < 100: if wiringpi.serialDataAvail(serial) > 0: first = wiringpi.millis() data = wiringpi.serialGetchar(serial) if (wiringpi.serialDataAvail(serial) < (num_ser - length)): data_list.append('{:02x}'.format(data)) wiringpi.pullUpDnControl(TX, PUD_OFF) wiringpi.pinModeAlt(TX, 4) return data_list
def read_serial(): while running: try: if wpi.serialDataAvail(fd) != -1 : ch = wpi.serialGetchar(fd) if ch== -1 : continue ch = chr(ch) if ch == '\r': ch = '\n' print(ch, end='') except: pass print("bye.")
def ReadData(fd): # read the data back from the serial line and return it as a string to the calling function qtydata = wiringpi.serialDataAvail(fd) logging.info("Amount of data: %d bytes" % qtydata) response = [] while qtydata > 0: # while there is data to be read, read it back logging.debug("Reading data back byte:%d" % qtydata) # This used to have hex to convert the data to a hex string response.append(wiringpi.serialGetchar(fd)) qtydata = qtydata - 1 logging.info("Data Packet received: %s" % response) logging.debug("Size of data packet received %d" % len(response)) return response
def read_ATR(serial): wiringpi.pinMode(TX, INPUT) wiringpi.pullUpDnControl(TX, PUD_UP) first = wiringpi.millis() data_str = '' while (wiringpi.millis() - first) < 100: if wiringpi.serialDataAvail(serial) > 0: first = wiringpi.millis() data = wiringpi.serialGetchar(serial) if (data < 16): data *= 16 data_str += ('{:02x}'.format(data)) + ' ' wiringpi.pullUpDnControl(TX, PUD_OFF) wiringpi.pinModeAlt(TX, 4) data_str = data_str.lstrip('00') return data_str
#!/usr/bin/env python import wiringpi as wpi import time serial = wpi.serialOpen('/dev/ttyS0', 115200) while True: input_str = raw_input('Serial Input> ') wpi.serialPuts(serial, input_str) time.sleep(0.1) output_str = 'Serial Output> ' while wpi.serialDataAvail(serial): output_str += chr(wpi.serialGetchar(serial)) print output_str wpi.serialClose(serial)
def read(self): while wiringpi.serialDataAvail(self.serial) > 0: value = (wiringpi.serialGetchar(self.serial)) if value > 0: print("{}".format(chr(value)), end='', flush=True)