- Q3
- 多段連続バーコードの読取り方法について教えて下さい。
- A3
- まず、OBR_modewt関数で 読取り方式の設定・・・連続(01h)、読取動作の設定・・・段数読み(01h)
に設定して下さい。 次にdat_system関数で OBR関連typedef struct sys_obr構造体に定義されている読取回数をn
(nは1から9の整数)に設定して下さい。 これでn段読みが可能になります。
N段目のバーコードを読み込んだ時点で、関数を抜けてきますので、OBR_gets関数をn回実行し、読み込んだバーコードを取得して下さい。
以下に2段連続読みの設定例を示します。構造体の定義についてはCMNDEF.hをご参照ください。
① 連続、段数読みの指定方法
M_TBL obr_mtbl;
OBR_moderd(&obr_mtbl);
obr_mtbl.Type = 1; /* Scan Type, 連続(01h)*/
obr_mtbl.Mode = 1; / 段数読み(01h)*/
OBR_modewt(&obr_mtbl);
② 読み取り回数の指定方法
DAT_OBR_SR sys_dt;
dat_system(SYSD_FNC_READ, SYSD_OBR, &sys_dt);
sys_dt.rd_ct = 2; /* 読み取り回数 2回 */
dat_system(SYSD_FNC_WRITE, SYSD_OBR, &sys_dt);
③ 読み取り方法
ercd = key_read(&key_inp);
if (ercd == E_KEY_OBR) {
OBR_gets(b_buf1, &b_rcd1, &b_lengs1);
OBR_gets(b_buf2, &b_rcd2, &b_lengs2);
}