Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: IndexError:list index out of range.  (gelezen 3472 keer)

IndexError:list index out of range.
« Gepost op: 2021/08/28, 15:35:43 »
Van een Arduino krijg ik volgende data binnen via de serial USB  in  een python programma


['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']


Python programma:

*****************************************************************
import serial
import time

arduinoData = serial.Serial('/dev/ttyUSB1', 115200)
time.sleep(1)

while True:
    while(not(arduinoData.inWaiting())):
        pass
    dataPacket = arduinoData.readline()     #formaat dataPacket:  b'255,255,255\r\n'
    dataPacket = str(dataPacket,'UTF-8')     #formaat dataPacket:  255,255,255
    splitPacket = dataPacket.split(',')             #formaat splitPacket: ['255', '255', '255\r\n']
    x = splitPacket[0]
    y = splitPacket[1]
    z = splitPacket[2]
    print(x)    <---------  :)               # 255 als resultaat
    print(y)    <---------  :(              # IndexError: list index out of range
    print(z)   <---------  :(               # IndexError: list index out of range
   
*****************************************************************

Kan splitPacket[1] en splitPacket[2] niet printen. ???
   
Miscere utile dulci. (Ter leering ende vermaeck)
http://henk.oegema.com  (On RaspberryPi2)
Registered linux user 520520.  In gebruik: Ubuntu  22.04.3 Hobby's: Radio Amateur callsign: PA2HO.  Interesses: Raspberry Pi & Arduino & Jetson Nano (voor AI & ML)

Re: IndexError:list index out of range.
« Reactie #1 Gepost op: 2021/08/28, 16:34:32 »
Van een Arduino krijg ik volgende data binnen via de serial USB  in  een python programma


['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']


Python programma:

*****************************************************************
import serial
import time

arduinoData = serial.Serial('/dev/ttyUSB1', 115200)
time.sleep(1)

while True:
    while(not(arduinoData.inWaiting())):
        pass
    dataPacket = arduinoData.readline()     #formaat dataPacket:  b'255,255,255\r\n'
    dataPacket = str(dataPacket,'UTF-8')     #formaat dataPacket:  255,255,255
    splitPacket = dataPacket.split(',')             #formaat splitPacket: ['255', '255', '255\r\n']
    x = splitPacket[0]
    y = splitPacket[1]
    z = splitPacket[2]
    print(x)    <---------  :)               # 255 als resultaat
    print(y)    <---------  :(              # IndexError: list index out of range
    print(z)   <---------  :(               # IndexError: list index out of range
   
*****************************************************************

Kan splitPacket[1] en splitPacket[2] niet printen. ???
   

De fout onstaal al bij:

y = splitPacket[1]
z = splitPacket[2]
Miscere utile dulci. (Ter leering ende vermaeck)
http://henk.oegema.com  (On RaspberryPi2)
Registered linux user 520520.  In gebruik: Ubuntu  22.04.3 Hobby's: Radio Amateur callsign: PA2HO.  Interesses: Raspberry Pi & Arduino & Jetson Nano (voor AI & ML)

Re: IndexError:list index out of range.
« Reactie #2 Gepost op: 2021/08/29, 13:17:50 »
Na 2 dagen zoeken, eindelijk de fout gevonden,  O0

Deze lijn (in de Arduino) was de oorzaak:
if (RGB_sensor.init())
  {
    Serial.println("Sensor Initialization Successful\n\r");
  }

Dit is natuurlijk geen getal. (int of float)   ;)

Na deze verandering:
if (RGB_sensor.init())
  {
    //Serial.println("Sensor Initialization Successful\n\r");
  }
werkte het wel.
Miscere utile dulci. (Ter leering ende vermaeck)
http://henk.oegema.com  (On RaspberryPi2)
Registered linux user 520520.  In gebruik: Ubuntu  22.04.3 Hobby's: Radio Amateur callsign: PA2HO.  Interesses: Raspberry Pi & Arduino & Jetson Nano (voor AI & ML)