简而言之,当一个即插即用的设备连接到一台机器上时,系统是如何实现它已经连接的呢?
基本上是否存在无限循环不断寻找设备?像这样的东西:
std::vector<string> device_array; //ID's of all connected devices
main(){
while(true){
SetDevices();
//Do whatever with the connected devices.
}
}
void SetDevices(){
int n = RS232_PollComport(cport_nr, buf, 4095); //get all connected devices
//Add or remove devices from device_array list
}
我只是以 USB 为例,我知道它不会对连接的设备使用 IRQ,但轮询似乎也不正确。所有其他 P&P 详细信息似乎都可用,但我找不到它如何知道设备已连接(或已断开连接)的逻辑。
可能没关系,但是...我的任务是创建一堆即插即用传感器,这些传感器将连接到 RaspberryPi 并使用标准 RX/TX 通信通过 rs232 连接与 P&P 设备的 pic16 通信。我正在接管的当前代码是通过不断轮询编写的,并且希望在继续之前确保没有更好的方法。
提前谢谢。