TypeError: object with buffer protocol required Lora and I2C



  • I am receiving some data via from STM32 on my poly4 and its fine. But when i send that data via lora a get folloeng error "TypeError: object with buffer protocol required" for the line s.send(data)

    Below is my code

    data = ''
    data =   uartpic.uart.read()
    
    while True:
    
        s.setblocking(True)
        s.send(data)
        utime.sleep_ms(500)
    

    For lora (https://docs.pycom.io/tutorials/networks/lora/lorawan-otaa). if i send some other data via lora(e.g. data = "Hello" s.send(data) ), it is working for me but not for data = uartpic.uart.read()



  • @Asim-Khan uart.read() is non-blocking. If there is no data available, it returns None. And None ist not an object with a buffer protocol. Thus the error message. You have to test before sending, if you have read something from the UART.



  • You might have to use struct.pack() (for multiple data pieces) or bytes(data) to transform the data object to the correct type.


Log in to reply
 

Pycom on Twitter