Ondersteuning > Programmeren
Python --> C/C++
TopGear:
Wat was de uiteindelijke oplossing, Henk?
henkoegema:
--- Citaat van: TopGear op 2021/04/20, 15:23:20 ---Wat was de uiteindelijke oplossing, Henk?
--- Einde van citaat ---
--- Code: ---
void setup(){
Serial.begin(115200);
}
void loop(){
char dataPacket[] = "-0.01,0.55,-0.7,-1";
char delim[] = ",";
char *ptr = strtok(dataPacket, delim); <====== moest deze lijn weglaten. (zoals erik1984 al aangaf)
float q0 = atof(strtok(dataPacket, delim));
float q1 = atof(strtok(NULL, delim));
float q2 = atof(strtok(NULL, delim));
float q3 = atof(strtok(NULL, delim));
Serial.println(q0);
Serial.println(q1);
Serial.println(q2);
Serial.println(q3);
delay(1000);
}
--- Einde van code ---
bart85:
waarom niet onderstaande?
--- Code: ---float q[4];
q[0] = atof(strtok(dataPacket, delim));
for(int i=1;i<4;i++{
q[i]=atof(strtok(NULL, delim));
}
--- Einde van code ---
henkoegema:
--- Citaat van: bart85 op 2021/05/09, 11:05:59 ---waarom niet onderstaande?
--- Code: ---float q[4];
q[0] = atof(strtok(dataPacket, delim));
for(int i=1;i<4;i++{
q[i]=atof(strtok(NULL, delim));
}
--- Einde van code ---
--- Einde van citaat ---
Ja, had ook gekund. :)
bart85:
ik denk dat de python code wat mooier kan. Met onderstaande oneliner:
--- Code: ---q = [float(i) for i in str(ad.readline(), 'utf-8').split(",")]
--- Einde van code ---
Dit creeert een array met 4 elementen van het type float. Dat zijn 7 regels naar 1 regel gebracht.
Met een simpele for loop kun je q uitlezen.
Navigatie
[0] Berichtenindex
[#] Volgende pagina
[*] Vorige pagina
Naar de volledige versie