1

バーコード リーダーからの入力を待機し、その入力を cURL コマンドに追加してから、そのコマンドを実行する、UNIX (ラズベリー パイ) で実行されるプログラムを構築したいと考えています。URL は次のようなものです。

http://www.xyz.com/test/order/complete?barcode=123456789

入力はどこ123456789になりますか。

通常、バーコードをスキャナーで読み取ると、コードを読み取った後にキャリッジ リターンが追加されます。つまり、バーコードをテキスト エディターでスキャンすると、バーコードが表示され、カーソルが次の行に表示されます。私のプログラミングの不手際をお詫びします - それは私の両親のせいです ;)

デスクトップGUIプログラムを実行する代わりに、Raspberry Piの起動時にこのプログラムを実行するつもりなので、それに関する洞察も役立ちます.

4

1 に答える 1

0

バーコードリーダーがキーボード入力を介して文字を送信し、実際にバーコードの後に​​ CR を配置すると仮定すると、このようなものが機能すると思います。gcc でコンパイル:

gcc -o runcurl runcurl.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc,char *argv[])

    {
    while (1)
        {
        char buf[256],syscmd[512];
        int i;

        /* Get next barcode */
        printf("Waiting for bar code [q=quit]:  ");
        if (fgets(buf,255,stdin)==NULL)
            break;

        /* Clean CR/LF off of string */
        for (i=0;buf[i]!='\0' && buf[i]!='\r' && buf[i]!='\n';i++);
        buf[i]='\0';

        /* q = quit */
        if (!strcmp(buf,"q"))
            break;

        /* Build into curl command */
        sprintf(syscmd,"curl \"http://www.xyz.com/test/order/complete?barcode=%s\"",buf);

        /* Execute--this will wait for command to complete before continuing. */
        system(syscmd);
        }
    return(0);
    }
于 2013-09-28T03:40:51.887 に答える