1

iso 8583以下にメッセージを詰め込もうとしています

00 2F 60 01 23 06 00 08 00 20 20 01 00 00 c0 00 00 92 00 00 00 00 12 01 23 48 30 30 30 30 30 30 39 53 31 30 30 30 30 30 30 30 30 30 30 30 30 35

ここで、ビットマップからビットフィールドを抽出すると、フィールド3,11,24,41,423フィールドが11入っているフィールドが得られました。N6 format24N3 format41,42ANS format..

パケットを送信する前に、数値形式のフィールドを関数によって BCD 形式に変更する必要があります。

enter code here

void vAscii2BCD(unsigned char *pucSrc, unsigned char *pucDst, int inSize)
{
for (; inSize > 0; inSize -= 2, pucDst++) 
{
    if(!memcmp(pucSrc, "3D", 2))
    {
        pucSrc += 2;
        *pucDst = '=';

    }
    else
    {
        *pucDst = cHexDigit_to_Nibble1(*pucSrc++) << 4;
        *pucDst |= cHexDigit_to_Nibble1(*pucSrc++);
    }
}
printf("data is %s\n\n",pucDst);
}

しかし、すべての '00' を BCD に変換しようとして、この 00 を文字列の残りの部分に追加しようとすると、失敗します..メッセージに "00" の strcat を実行すると、受信側で " 3030"

受信側でも対応するすべての 00 を受信できるように 00 をエンコードする方法を教えてください。

4

1 に答える 1