В настоящее время я пытаюсь интегрировать систему POS с контроллером Artema Hybrid CC. Мне интересно, работал ли кто-то еще над этим или чем-то подобным.
Я могу читать с устройства, то есть я получаю ENQ и отправляю обратно ACK в потоке, и я держу его открытым для чтения / записи, но все, что я пытаюсь записать с него, просто ничего не делает.
Вот код для функции записи данных:
void PayLife::sendPayLifeData(QString data) {
int len = data.length();
int i = 0;
char lrc = 0;
char stx = 0x02;
char etx = 0x03;
char ack = 0x06;
char * bytes;
int ret;
char buffer[132];
bytes = (char *) malloc(sizeof(char) * len + 10);
strcpy(bytes,data.toLatin1().data());
qDebug() << "PayLife Sending data: " << data << " of len " << QString::number(len) <<
" " << " Bytes is: " << bytes ;
while (i < len) {
lrc ^= bytes[i];
i++;
}
/* sprintf(buffer,"%c%c%s%c%c",ack,stx,bytes,etx,lrc);
for (i = 0; i < strlen(buffer); i++) {
printf("c: %X ", buffer[i]);
}
printf(" [[ %s ]] \n", buffer); */
qDebug() << "Starting";
write(this->descriptor,&ack,1);
usleep(100000);
write(this->descriptor,&stx,1);
usleep(100000);
ret = write(this->descriptor,bytes,132);
usleep(100000);
write(this->descriptor,&etx,1);
usleep(100000);
write(this->descriptor,&lrc,1);
qDebug() << "Done";
free(bytes);
}
Аргумент данных: E11U000008507000099VZ000000
Конечно, документация на немецком языке, на которой я не говорю, так что это насколько я получил. У меня в основном есть 1 месяц, чтобы реализовать это, затем я должен вернуть устройство.
Если у кого-то есть какие-нибудь указатели или какой-нибудь пример кода, который был бы замечательным.
/ * Ясон 1014 *