お世話になります。RFIDリーダーを利用してカードの数値を入力しようとしています。
このRFIDリーダーはキーボードとして機能しますので、GetInputChar()で数値を1文字づつ入力しようと考えています。
以下のプログラムで実験しているのですが、カードの数値が例えば「2841039731」の場合は問題なく読めます。
「1564479571」の場合は「156479571」となってしまい、連続する数値「44」が1文字「4」になってしまいます。
代わりにキーボードから手入力で「1564479571」と入力すると、きちんと読み込まれます。
また、メモ帳でカードリーダー経由で読み込んだ場合は、問題なく読み込めます。
アドバイスをいただけると助かります。
/////////////////////////////////////////////////////////////////////
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE hI, HINSTANCE hP, LPSTR lpC, int nC)
{
int timer = 0;
unsigned char c; //入力用
SetGraphMode(1366, 768, 32);
ChangeWindowMode(TRUE);
if (DxLib_Init() == -1) return -1;
SetBackgroundColor(0, 0, 0);
SetDrawScreen(DX_SCREEN_BACK);
ClearInputCharBuf();
while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0)
{
ClsDrawScreen();
timer++;
c = GetInputChar(true);
if (c != 0){
printfDx("%6d %4d %c\n",timer, c, c);
}
ScreenFlip();
}
DxLib_End();
return 0;
}
/////////////////////////////////////////////////////////////////////
**実行結果**
@カードリーダー正常
234 50 2
236 56 8
238 52 4
240 49 1
242 48 0
244 51 3
246 57 9
248 55 7
250 51 3
252 49 1
254 13 ←改行
Aカードリーダー44が4に
650 49 1
652 53 5
654 54 6
656 52 4
658 55 7
660 53 5
662 50 2
664 49 1
666 57 9
668 13 ←改行
B手入力正常
957 49 1
983 53 5
1012 54 6
1124 52 4
1153 52 4
1210 55 7
1254 53 5
1287 50 2
1311 49 1
1334 57 9
1363 13 ←改行
**カードリーダーをメモ帳で読み込み**正常
2841039731
1564479571