[BS/C]キーは処理中断で、[ENT]キーは処理続行としています。処理を中断しようとして[BS/C]キーを押すのですが、中断できない場合があるとの現象が発生しました。ソース的には以下の様な組み方で、[BS/C][ENT]キーのどちらかのキーのみの反応行う様にしています。'入力されたキーを取得して戻す。深く考えずに「BS」のみで中断処理をしていました。バグの連絡を受けたので、少し調べてみました。なんと、「BHT1300_Programmers_Manual_J1.pdf」にはちゃんと説明がされていました。「付録Eキーボードとキー番号」のページからの引用ですが、以下の通りです。BSはバックスペース(08h)、CRはキャリッジリターン(0Dh)、Cはキャンセル(18h)、SPはスペース(20h)コードを表します。一定時間(デフォルト500ms)以上長押しでキャンセル(18h)コードを返します。==========================[BS/C]キーの長押しだとキャンセル(18h)コードが返ってくるのでした。そこで、中止の判定をキャンセル(18h)コードでも行う様に変更し、バグを解消しました。'入力されたキーを取得して戻す。USB-COMポートドライバ)私事なのですが、最近更新したシステムで客先より「データファイルをハンディへ送信できない」との連絡が在りました。1か月以上は問題なく稼働していたのですが、ある日送信できなくなった様です。午後での送信でエラーが発生しました。原因がすぐには分かりませんでした。原因がはっきりしませんでした。去年の2016年にはOSがWindows7だったものをWindows10にアップされたとのことでした。最新バージョンが「2.1.0.0」でWindows10に対応となっていました。去年の「2.0.1.8」からは既にWindows10対応だった様です。再インストールしてもらい、通信が出来る様になりました。途中までは何とか動いていたが、ついに限界が来たんでしょうか?とにかく、ドライバのバージョンアップで事無き得て良かったというところでしょうか。ドライバのアップをお勧めします。この言語について全く知識が在りませんでした。そこで、入門書的なものが無いかを調べたのですが、ネットでも全く検索できませんでした。どの様にプログラムするのが最適なのかを勉強するはずです。入門と言うかプログラムの基本的組み方の本を出してほしいものです。このBHT-BASICですが命令語をみると昔のBASIC、おそらくMS-BASICを元にしていると思われます。それらのパソコン上にはBASICが搭載されていました。そのBASICはMicrosoftのMS-BASICが元になっていました。(この辺りの話は確かでは無いかもしれませんが、その様に記憶しています。)思い起こせば、PC-8001MkII・PC9801などでよく制御関係のシステムを作成したものです。昔のパソコンはBASICから全てのI/Oを制御できたので、結構細かい処理もやれたのです。昔のBASICの本としては以下の様なものあります。BHT-BASICとは言語仕様的に拡張されているのですが、基本的な部分は参考になると思います。プログラミングのマニュアルであるDENSO提供の「BHT1300_Programmers_Manual_J1.pdf」は全て目を通しました。それでも足りない分はDENSOのサイトのサンプルプログラムを参考にしました。後は試行錯誤して実際に組んでみてだとは思います。(月)BHT-BASIC4.0:配列のリサイズについてBHT-BASICでは、直接配列のサイズを変更することはできません。なく配列のサイズを変更する命令を持っていません。組み合わせて行うしかありません。同じところでやります。以下にサンプルのソースを記します。再度、ワークファイルからの逆コピーを行っています。エミュレートしてやった方がすっきりするかもしれません。次回は、データファイルで行う方法を考えてみたと思います。「エラーコードが3DHが表示されてデータが登録できない」との連絡在りました。ステートメントで指定されたフィールド幅が、ファイルと異なっています。」とのこと、こちらでいくら再現しようとしてもエラーが発生しませんでした。データファイルのフォーマットが昔のままで、そのためにエラーが発生している様でした。機能せずにエラーが発生します。エラーが発生するソースを記します。ENDこのプログラムを実行すると以下の画面になります。エラーであることがわかります。行う必要があると思います。(金)BHT-BASIC4.0:Bluetoothデバイスアドレス取得等についてBluetooth通信を備えたハンディスキャナではその通信でプリンタなどへのデータの送受信ができます。■Bluetooth機器との送受信についてBluetooth通信で外部機器とデータの送受信を行う場合は、以下の一連の命令の実行で行います。・OPEN命令によりBluetoothデバイスファイルをオープンする。(リモートデバイスへのシリアルポート接続が行われる)・シリアル通信処理を行う。#命令)(受信処理:INPUT$関数、LOC関数、EOF関数などを使用)・CLOSE命令によりBluetoothデバイスファイルをクローズする。4:シンプルペアリング上記の他の詳しい内容については各BHTの取説を見てください。接続タイムアウトは30秒です。各機器に合わせてシリアル送受信処理は組む必要があります。Bluetoothデバイスから通信で取得できた方がいいと思います。Bluetoothデバイスアドレス取得を行う簡単なプログラムを以下に示します。ENDBluetooth機器が複数あった場合にはその台数分のアドレスが検出できます。1台だけに絞る場合は、対象Bluetooth機器のみを電源投入し検出すればできるとは思います。ハンディターミナルの相手側としてのパソコン側のプログラムが必要になります。パソコン側のファイル送受信用のツールがDLLの形でDENSOさんの方から提供されています。以下の所にDENSOのURLを貼っておきますので、そちらを参照下さい。・BHT-BASIC4.0転送ユーティリティこのユーティリティを購入して、送受信を行うパソコンにライセンス登録が必要です。プログラムのインストールなどは無く、必要なDLL等を実行プログラムのフォルダに登録します。この辺りのことは購入後、取説をDENSOからダウンロードし確認してみて下さい。■VB.NETプログラムの場合の必要なDLLVB.NETのプログラムの実行フォルダ内に以下のDLL等が必要です。BHT-Irプロトコルライブラリ実際の転送処理で呼出すのはBhtprtdm.dllで、その中の送受信関数(ExecProtocol)を呼出して処理をさせます。(エラー内容はDENSO提供のBASICソースを参照)上記のほかにいろんな指定がありますが、それは各BHTの取説を見てください。CR-LFをレコードの区切り"-C"オプション文字列の一般的な例としては以下の様になります。なったので"P5"としています。フィールド指定は以下の記事のデータファイルを使っています。・BHT-BASIC4.0:データファイルの取り扱いについてその2(書込み・読込みの実用的な関数)■VB.NETの送受信テストプログラム上記のオプション例を使った簡単なVB.NETのテストプログラムを以下に示します。Classフォームの画面表示は以下の感じです。送信ボタンと受信ボタンをフォームに配置しそれぞれのボタンクリックで送受信処理を行っているだけです。受信時のオプションはフィールド指定が無い違いがあります。■BHT-BASICの送受信テストプログラム(ハンディ側)ハンディターミナル側の簡単な受信・送信テストプログラムを以下に示します。件数の様な数字がカウントアップします。ファイルが作られているのがわかります。ファイルの内容は以下の様にフィールドの定義ファイルの様です。12受信時の画面は、以下の様な表示になります。ファイルが生成される様です。(木)BHT-BASIC4.0:バーコードの読込み(バーコードスキャン)についてハンディターミナルを使用する最大の要因は、バーコードの読込みを行うことです。いろいろな作業を行います。(JAN-8)、NW-7、Code39、Code93、Code128等があります。バーコードを読込む処理は以下の一連の命令の実行で行います。・OPEN命令によりバーコードデバイスをオープンする。・バーコードが読込まれるのを待つ。・バーコードバッファから読込まれた文字列を取得する。・CLOSE命令によりバーコードデバイスをクローズする。バーコードを読み取ることができる。