私は現在、Artema Hybrid CCハンドヘルドとPOSシステムを統合しようとしています。他の誰かがこれに似たようなことをしているのか、それとも似たようなことをしているのだろうか。ArtemaハイブリッドコミュニケーションとLinux上のC++
私は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ヶ月持っている、私はデバイスを戻す必要があります。
誰かがポインタを持っていたり、すばらしいコード例があれば。
/ジェイソン
これは多かれ少なかれ本質的に私が思い付いたものです。 ETXがLRCに参加している必要があることが判明したので、現在Linuxで作業していますが、Windowsで動作させるつもりはないので、このQSerialPortが答えになるかもしれません。ありがとう! –