問題: 私は、すべてのパッケージのグラフィック カラー バーコードをスキャンするハンドヘルド デバイスを持っています。デバイスを自動的にスライドさせる、使用できるトラック デバイスがあります。このトラック デバイスは、シリアル ポートを介して ascii コードを取得することによって機能します。これを Mac 上の FileMaker で動作させる必要があります。したがって、端末プログラムなどはありません...
これまでに得たもの: Keyspan USB/Serial アダプターを購入しました。ZTerm というプログラムを使用して、デバイスにコマンドを送信することに成功しました。例: "C,7^M^J"
また、次のコマンドを使用してターミナルで同じことを行うこともできました: screen /dev/tty.KeySerial1 57600 そして、上記の同じコマンドを入力します (ただし、入力したときに、キャリッジの Control-M と Control-J を押しただけです)。改行)
現在、FileMaker 用のプラグインを作成しています (もちろん C++ で)。上で行ったことを C++ で実現したいので、そのプラグインを FileMaker にインストールすると、これらの関数の 1 つを呼び出すだけで、プロセス全体をその場で実行できます。
デバイスに接続できますが、話しかけることができません。何にも反応しません。
これらを使用して(成功して)デバイスに接続しようとしました:
FILE *comport;
if ((comport = fopen("/dev/tty.KeySerial1", "w")) == NULL){...}
と
int fd;
fd = open("/dev/tty.KeySerial1", O_RDWR | O_NOCTTY | O_NDELAY);
これは、デバイスと通信する方法でこれまでに試したことです。
fputs ("C,7^M^J",comport);
また
fprintf(comport,"C,7^M^J");
また
char buffer[] = { 'C' , ',' , '7' , '^' , 'M' , '^' , 'J' };
fwrite (buffer , 1 , sizeof(buffer) , comport );
また
fwrite('C,7^M^J', 1, 1, comport);
質問: ターミナルからデバイスに接続し、ZTerm を使用すると、ボー レートを 57600 に設定できました。しかし、私はここでそれを行う方法がわかりません....誰もそれを行う方法を知っていますか? 私はこれを試しましたが、うまくいきませんでした:
comport->BaudRate = 57600;
多くのクラス ソリューションがありますが、それらはすべて、termios.h や stdio.h などのインクルード ファイルを呼び出します。私はこれらを持っていません。何らかの理由で、ダウンロードするものを見つけることができません。いくつかの例をダウンロードしましたが、それらには 20 個ほどのファイルがあり、それらはすべて、見つけられない他のファイル (上記のファイルなど) を呼び出しています。これらを見つける必要はありますか?C++ について十分な知識がありません。ライブラリをダウンロードできる Web サイトはありますか?
別の解決策は、これらの端末コマンドを C++ に入れることです。それを行う方法はありますか?
だから、これは私を夢中にさせてきました。私は C++ の専門家ではありません。基本的なプログラミングの概念しか知りません。C++ の専門家はいますか? 理想的には、fwrite や fputs など、既に持っている関数を使用してこれを機能させたいと考えています。ありがとう!