Cześć,
dodaje do mojego projektu w cpp barcoder M800D (połączony seregowo do pinów w raspberry) i wszystko działa
poprawnie [gdy pracuje tylko wątek z barcoderem to wszystko działa ok]
Gdy uruchamiam reszte wątków dla aplikacji to czytnik przyjmuje "Krzaki" dla tych samych kodów. Aplikacja obsługuje PWM, 3 przyciski przez wiringpi.
Kod czytnika kodów: wiringPiSetup() - jest wywołane wczesniej przy starcie aplikacji
int barcode_read(char* buffer) {
int fd;
unsigned int nextTime;
if ((fd = serialOpen("/dev/ttyS0", 9600)) < 0)
{
fprintf(stderr, "Unable to open serial device: %s\n", strerror(errno));
throw 1;
}
char dat;
int i = 0;
int counter = 0;
while (true)
{
if (counter > 100) i = 0;
if(i>0) counter++;
delay(5);
while (serialDataAvail(fd))
{
if (i == 0) counter = 0;
dat = serialGetchar(fd); /* receive character serially*/
printf("%c", dat);
//serialPutchar(fd, dat);
buffer[i] = dat;
if (i == 16) {
serialClose(fd);
return 1;
}// poprawnie zaczytany kod
i++;
fflush(stdout);
}
}
}
Proszę o pomoc, już kilka dni spędziłem nad szukaniem rozwiązania :(