- 
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