@@ -47,22 +47,19 @@ func openPort(usbPort string, baudRate int) serial.Port {
4747}
4848
4949func readSensorData (buffer []byte , port serial.Port ) {
50- n , err := port .Read (buffer )
51- errCheck (err )
52- if n != sensorDataSize {
53- fmt .Println ("data not valid" )
54- } else {
55- // Print the received sensor data
56- var data SensorData
57- data .id = uint8 (buffer [0 ])
58- data .size = uint8 (buffer [1 ])
59- //data.data = uint64(binary.LittleEndian.Uint64(buffer[2:10]))
60- data .data = buffer [2 :(2 + data .size )]
61- //copy(data.data[:], buffer[2:(2+data.size)])
62- //fmt.Printf("sensor: %d size: %d data: ", data.id, data.size)
63- //fmt.Println(data.data)
64- parseData (& data )
50+ var dataPacket [sensorDataSize ]byte
51+ for rxLen := 0 ; rxLen < sensorDataSize ; {
52+ n , err := port .Read (buffer )
53+ errCheck (err )
54+ copy (dataPacket [rxLen :sensorDataSize ], buffer [:n ])
55+ rxLen = rxLen + n
6556 }
57+ // Print the received sensor data
58+ var data SensorData
59+ data .id = uint8 (dataPacket [0 ])
60+ data .size = uint8 (dataPacket [1 ])
61+ data .data = dataPacket [2 :(2 + data .size )]
62+ parseData (& data )
6663}
6764
6865func liveRead (port serial.Port ) {
0 commit comments