最近、誰かがエクスプレスキャビネットソフトウェアの開発について尋ねました。何もすることがないときに考えてみてください。まず、エクスプレスキャビネットの電子部品の構成を理解します。
ハードウェアのシンプルな機能は、メインコントロールコンピュータがディスプレイタッチスクリーンを介して外部と対話し、監視を介して画像をキャプチャおよび記録し、ネットワークモジュールを介してサーバーと通信し、ロックコントロールパネルを介してロックスイッチのステータスをロック解除および検出することです。
現在は主にマスターコンピューターのソフトウェアであり、産業用マザーボード用のウィンドウやその他のオペレーティングシステムを実行できます。
ソフトウェアの主な機能は次のとおりです
。1。ユーザーポート
1.速達2.速達3.パーソナルセンター
2、宅配便ポート
1、エクスプレスストレージ2、エクスプレスピックアップ
第三に、管理ポート
は複雑に見えません。ただし、ハードウェア部分のロック制御盤はこれまで使用されていませんでした。eコマースプラットフォームで検索したところ、一部のメーカーが販売していることがわかりました。はじめにを読んだ後、基本的にすべてのコマンドはシリアルポートを介して送信され、ロック制御ボードのロックが解除されるか、ロックの開閉について問い合わせられます。一部のコマンドはネットワークポートを介してロック制御ボードに送信されますが、形式は似ています。ネットワークポートの価格は高くなります。
このロック制御ボードのドライバープログラミングを調べてみましょう。
シリアルポートは、データの送受信に使用されます。数年前に行われ、機器からコンピュータにデータを収集しました。当時はVbで開発され、インターフェースは非常によく設計されており、シリアル通信では制御mscommを使用していたことを覚えています。パラメータを設定し、シリアルポートを開くだけで、データの送受信、プロトコルに従ってデータの分析を行い、使用しないときはシリアルポートを閉じることができます。MFCではシリアル通信は使用されていません。まず、ロックコントロールパネルを見てください。比較の結果、この種のロック制御ボードが選択されました。
モデルは、8、12、16、20、および24のドアを含め、かなり完成しています。トレジャーリンクhttps://item.taobao.com/item.htm?id=581917013199
は、シリアル通信を介してロックを解除し、ロックステータスを照会します。VSシリアル通信の記事についてインターネットで検索しました。ActiveXコントロールを介した通信や、WindowsAPI関数パッケージクラスの呼び出しなどの多くのメソッドもあります。Windows API関数パッケージクラスを呼び出す方法はより柔軟であり、インターネット上で他の人のコードを組み合わせる方が便利です。16進データの文字列を送信するために簡略化できるロック制御ボードのコマンド形式を見てみましょう。形式は次のとおりです。
ここに記載されているロック制御ボードのアドレスは通常1です。複数のブロックがある場合、DIPスイッチを介してハードウェアを他の値2、3などに設定できます。ここでNを入力すると、ハードウェアがNに設定されている回路基板に命令が送信されます。ロック番号は、ロック制御ボードでロックされているチャネル番号です。Mを入力してMロックを開き、データの最後の2バイトはチェックサムです。このように、異なるボードが「ロック制御ボードアドレス」によって区別され、次にロックボードに接続されている異なるロックが「ロック番号」によって区別されることは明らかです。この場合、60ドアのキャビネットであれば、12ドアのロックコントロールパネルを5枚使用すると、簡単に指示を送信できます。まず、ドアロックに接続されているボードの番号を確認してから、ロックに接続されているボードの番号を修正して、上記のデータを入力します。フォーマットのデータフレームでは、チェックが計算されてシリアルポートを介して送信された後、チェックデータが更新され、対応するドアが開かれます。
ボタンコントロールグループ方式を使用して、VS2010MFCプログラミングを使用します。ビューは次のとおりです。
コードは以下のように表示されます
void CrockdemoDlg::OnButton(UINT nID)
{
DWORD rtlen;
BOOL fright=TRUE;
UINT CrcCheck,temp1;
BYTE rbuf[100]={0};
BYTE sbuf[] = {0xAA,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x0A};
if(f_common)
{
UpdateData(TRUE);
sbuf[1]=setadd;//锁控板的地址
sbuf[3]=nID-IDC_BUTTON1+1; //开锁控板的第几个锁
CrcCheck=Crc16(sbuf,7);
sbuf[7]=BYTE(CrcCheck%256);
sbuf[8]=BYTE(CrcCheck/256);
serial.SendData(sbuf,9);
}
else
{
MessageBox(_T("数据接收错误,请检查线有没连接好"),_T("提示"), MB_OK);
}
}
テスト後、スムーズにロックを解除できます。上記の実験の後、コントロールボードのロックを解除するためのドライバーのロックが解除され、ソフトウェア開発全体がより身近になりました。
シリアル通信については、インターネット上にいくつかの良い情報があります、あなたは以下を参照することができます
Windowsシリアル通信の簡単な例
https://blog.csdn.net/horizons_kong/article/details/54412339
シリアル通信のアプリケーション設計を実現するVC ++
https://blog.csdn.net/crjmail/article/details/91043991
さて、今日ここに書きます。