-
AM_BarcodeBuffer構造体を定義し、読み取ったバーコードデータを格納するためのバッファを指定しておきます。
サンプル
char barcodebuff[13+1]; AM_BarcodeBuffer buffer; buffer.dataBuf = barcodebuff; buffer.dataBufLength = sizeof(barcodebuff);
-
AM_ConfigBarcodeReader関数を呼び出して、上記のAM_BarcodeBuffer構造体の情報とバーコードリーダの初期化コマンドをメニューリソースに登録します。
サンプル
hMenu = AM_CreateMenu(Task1MenuTable, (const pAM_Option)&TaskOption); // Set option commands // B0: Disable all symbology // R1: Enable UPC // R4: Enable EAN/JAN AM_ConfigBarcodeReader(hMenu, &buffer, "B0R1R4");
-
AM_EnableBarcodeReader関数を呼び出して、バーコードの読み取りを許可します。
サンプル
AM_ShowMenu(hMenu, AM_SELECT_NO_ID); AM_EnableBarcodeReader(hMenu);
- バーコードの読み取りが許可されている場合、AM_ExecMenu関数で入力を待機している間に[SCAN]キーが押されるとバーコードの読み取りを開始します。
- バーコードの読み取りが成功したらAM_ExecMenu関数がAMENU_BARCODE_READイベントを返します。
- このイベントを受け取ったら、いったんAMenu_AM_DisableBarcodeReader関数でバーコードリーダを停止させます。
-
読み取ったバーコードデータの処理が終了し、引き続きバーコードを読み取る場合は、再びAM_EnableBarcodeReader関数を呼び出して次のバーコードの読み取りを許可します。
サンプル
while(1){ event = AM_ExecMenu(hMenu); // Waiting scan if (event == AMENU_BARCODE_READ){ AM_DisableBarcodeReader(hMenu); // Got result AM_SetText(hMenu, TASK1_ID_RESULT, barcodebuff); AM_EnableBarcodeReader(hMenu); continue; }else if (event == CLR_KEY){ //Exit break; } }
- バーコードを読み取りを停止する場合は、AMenu_AM_DisableBarcodeReader関数を呼び出します。
サンプル
...
void task1(void)
{
MENU_HANDLE hMenu;
int event;
char barcodebuff[13+1];
AM_BarcodeBuffer buffer;
buffer.dataBuf = barcodebuff;
buffer.dataBufLength = sizeof(barcodebuff);
hMenu = AM_CreateMenu(Task1MenuTable, (const pAM_Option)&TaskOption);
// Set option commands
// B0: Disable all symbology
// R1: Enable UPC
// R4: Enable EAN/JAN
AM_ConfigBarcodeReader(hMenu, &buffer, "B0R1R4");
AM_ShowMenu(hMenu, AM_SELECT_NO_ID);
AM_EnableBarcodeReader(hMenu);
while(1){
event = AM_ExecMenu(hMenu);
// Waiting scan
if (event == AMENU_BARCODE_READ){
AM_DisableBarcodeReader(hMenu);
// Got result
AM_SetText(hMenu, TASK1_ID_RESULT, barcodebuff);
AM_EnableBarcodeReader(hMenu);
continue;
}else if (event == CLR_KEY){
//Exit
break;
}
}
AM_DisableBarcodeReader(hMenu);
AM_ReleaseMenu(hMenu);
return;
}
関連事項
最終更新日:2020/10/12