![](/img/trans.png)
[英]why it is costing longer than the first time to open USB2Serial port
[英]Linux IOCTLs for USB2Serial
我正在Linux上用C ++開發一個程序,該程序可與USB2Serial適配器交互以從遠程終端獲取一些信息。 我可以使用以下代碼在Windows上將其設置為IOCTL:
#define IOCTL_SERIAL_XOFF_COUNTER CTL_CODE(FILE_DEVICE_SERIAL_PORT,28,METHOD_BUFFERED,FILE_ANY_ACCESS)
unsigned char xoff_counter[] = {0xd0,0x07,0x00,0x00,0x05,0x00,0x00,0x00,0x13,0x00,0x00,0x00};
bool result = DeviceIoControl(file,IOCTL_SERIAL_XOFF_COUNTER,
&xoff_counter, sizeof(xoff_counter),
NULL,0,
&junk,
&o);
我嘗試使用以下代碼在Linux上執行相同的操作:
#define SERIAL_XOFF_COUNTER 28
unsigned char xoff_counter[] = {0xd0,0x07,0x00,0x00,0x05,0x00,0x00,0x00,0x13,0x00,0x00,0x00};
int retVal = ioctl(fd,SERIAL_XOFF_COUNTER,xoff_counter);
if(retVal < 0){
cout << "Error while setting ioctl:"<<strerror(errno)<<endl;
}
當我運行程序時,這會引發錯誤:
Error while setting ioctl:Inappropriate ioctl for device
如果以前有人在這些ioctl中工作過,請讓我知道此標志的Linux等效版本。
TIA!
在Linux中沒有用於此的串行ioctl。 該ioctl特定於Windows串行驅動程序。 XON / XOFF協議沒有定義計數器,因此我無法想象這是用來做什么的。 (也許Windows正在計算接收到的XOFF字符的數量,但這只是一種推測)
請參閱linux的termios(3)手冊頁,以查看為rs232終端控制定義的ioctl。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.