簡體   English   中英

USB2Serial的Linux IOCTL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM