好几个月之前遇到的问题,nvr上鼠标拔下来再插进去就失效了。调试了下发现,鼠标拔出后,在nvr上,out集并不置位,但设备文件没了。
因此在每次收到鼠标事件都判断下设备文件是否存在,如果不存在就关掉套接字,让minigui在wait_event中尝试重连。
把minigui源码中src/ial/native/native.c的331~339行,替换为
if (kbddev == &kbddev_event && FD_ISSET (fd, out)){
// FD_CLR (fd, out);
// mousedev->Close();
// mouse_fd = -1;
// fprintf(stderr, "IAL Native Engine: mouse device has been disconnected.\n");
}else if (FD_ISSET (fd, in)) {
if(access(mouse_device, F_OK) != 0)
{
mousedev->Close();
mouse_fd = -1;
}
else
{
FD_CLR (fd, in);
retvalue |= IAL_MOUSEEVENT;
}
}
时间: 2024-10-23 14:30:41