我想构建一个将在 unix (raspberry pi) 中运行的程序,它将简单地等待来自条形码阅读器的输入并将输入添加到 cURL 命令中,然后执行该命令。网址类似于:
输入在哪里123456789。
通常,当使用扫描仪读取条形码时,它会在读取代码后添加回车,这意味着如果您将其扫描到文本编辑器中,您会看到条形码并且光标将在下一行。我为我的编程无能而道歉——这是我父母的错;)
我打算在启动 Raspberry Pi 时运行该程序,而不是运行桌面 gui 程序,因此对此有所了解也会有所帮助。
我想构建一个将在 unix (raspberry pi) 中运行的程序,它将简单地等待来自条形码阅读器的输入并将输入添加到 cURL 命令中,然后执行该命令。网址类似于:
输入在哪里123456789。
通常,当使用扫描仪读取条形码时,它会在读取代码后添加回车,这意味着如果您将其扫描到文本编辑器中,您会看到条形码并且光标将在下一行。我为我的编程无能而道歉——这是我父母的错;)
我打算在启动 Raspberry Pi 时运行该程序,而不是运行桌面 gui 程序,因此对此有所了解也会有所帮助。
假设您的条形码阅读器通过键盘输入发送字符并且确实在条形码之后放置了一个 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);
}