我需要在 Linaro/Debian 操作系统上通过 USB 读卡器读取一些 NFC 卡。
USB 读卡器具有 HID 配置文件。
出示一张 13.56 MHz 的卡,键盘会返回一个代码。
我阅读了有关发送到设备的命令,但是由于它是一个(虚拟)键盘,我无法发送命令,向哪个设备发送命令?
如何转储卡的内存?
谢谢
我需要在 Linaro/Debian 操作系统上通过 USB 读卡器读取一些 NFC 卡。
USB 读卡器具有 HID 配置文件。
出示一张 13.56 MHz 的卡,键盘会返回一个代码。
我阅读了有关发送到设备的命令,但是由于它是一个(虚拟)键盘,我无法发送命令,向哪个设备发送命令?
如何转储卡的内存?
谢谢
我正在为嵌入式板上的 Linux 操作系统编写 GTK C 应用程序。
第一个主窗口打开一个串行(虚拟)端口,用于从条形码阅读器接收数据。我正在使用标准的 open() 函数(在我的 OpenPort() 函数中)。然后我调用 g_io_channel_new_file() 和 g_io_add_watch() 来处理 rx 信号。
我真的需要标准的 open() 调用吗?
if (g_config.fdRfid==-1)
g_config.fdRfid = OpenPort( g_config.portRfid, B115200);
if (g_config.fdRfid!=-1)
{
ShowMainMessage();
GError *error = NULL;
g_ioChannel = g_io_channel_new_file( g_config.portRfid, "r", &error);
if (g_ioChannel)
{
guint source = g_io_add_watch( g_ioChannel, G_IO_IN | G_IO_PRI, serialRfidWatcher, &g_config);
printf("> set watch ioCh: %p - source: %d\n", g_ioChannel, source);
}
else
gtk_label_set_text( GTK_LABEL(g_labelMsg2), error->message);
当我按下一个按钮时,我打开一个对话框子窗口:在此之前,我通过 close() 函数关闭串行端口,并通过 g_io_channel_shutdown() 函数断开信号。返回的状态为 1 = G_IO_STATUS_NORMAL。
GIOStatus status = g_io_channel_shutdown( g_ioChannel, TRUE, NULL);
g_io_channel_unref(g_ioChannel);
if (g_config.fdRfid != -1)
{
ClosePort(&g_config.fdRfid);
}
启动对话窗口,我再次打开相同的端口(这是一个用于测试的窗口),并以与之前相同的方式重新连接 rx 信号。
现在,如果我在调试输出中读取条形码(通过 printf),我会看到主窗口的信号处理程序和对话框中的处理程序都被调用。
关闭对话框(关闭端口和通道...)我返回到主窗口。如果我读取条形码,将触发三个处理程序,两个在主窗口上,一个在对话框上。
我怎样才能断开信号处理程序?我认为我的方法不完整..
谢谢!
我正在开发基于 Linux Linaro (Debian) OS 9.3 的嵌入式板 (Tinkerboard)。
该板基本上是一个(网页)信息亭,其中浏览器由 sh 脚本运行,包括启动时的自动脚本。kiosk 需要播放几个由 js 事件触发的 mp3 文件。
大多数情况下,音频不会被复制:如果我手动运行浏览器,音频总是可以的。
到目前为止,我发现 chromium 进程在 pulseaudio 进程之前运行(基于 PID 值),所以我认为浏览器不会“连接”音频进程导致丢失。
我修改了脚本,例如:
# Script.sh
pulseaudio
sleep 4s
chromium -kiosk ....
这样音频还可以,但我不喜欢它..首先因为我不确定问题的原因。
有没有办法以正确的顺序排列流程?
关于音频问题的任何其他原因?