12-26-2019, 04:30 PM
Pozdrav,
pravim neki desktop program za Linux u C++ koji treba da prica sa nekim USB periferijama (seriski terminali, USB->serial) i trenutno imam potrebu da simuliram to ponasanje periferija jer trenutno nemam te uredjaje, imam samo protokol kako radi i koji cu da isprogramiram u simulatoru.
Interesuje me kako da simuliram /dev/NESTO da bude istog tipa/osobina kao i ovi USB-seriski konverteri?
Trenutno koristim ovako nesto za pisanje na "pravi" device iz glavnog programa:
Kako mogu tu u simulatoru da se "podmetnem" a da ne menjam osnovni code-e za komunikaciju (eventulano promenim samo ime uredjaja) ?
pravim neki desktop program za Linux u C++ koji treba da prica sa nekim USB periferijama (seriski terminali, USB->serial) i trenutno imam potrebu da simuliram to ponasanje periferija jer trenutno nemam te uredjaje, imam samo protokol kako radi i koji cu da isprogramiram u simulatoru.
Interesuje me kako da simuliram /dev/NESTO da bude istog tipa/osobina kao i ovi USB-seriski konverteri?
Trenutno koristim ovako nesto za pisanje na "pravi" device iz glavnog programa:
Code:
// ...
//open port
cout << "Opening MCU on " << dev_mcu << endl;
fd_mcu = open(dev_mcu.c_str(), O_RDWR);
if (fd_mcu < 0) {
std::cerr << "ERROR opening MCU on " << dev_mcu << std::endl;
} else {
struct termios options;
tcgetattr(fd_mcu, &options);
options.c_cflag = B9600 | CS8 | CLOCAL | CREAD; //<Set baud rate
options.c_iflag = IGNPAR;
options.c_oflag = 0;
options.c_lflag = 0;
tcflush(fd_mcu, TCIFLUSH);
tcsetattr(fd_mcu, TCSANOW, &options);
std::cout << "Configured MCU on " << dev_mcu << " as B9600 CS8 IGNPAR" << std::endl;
}
// ...
//write to port
if (write(fd_mcu, cmd_buff_mcu, cmd_buff_mcu_len) != cmd_buff_mcu_len) {
std::cerr << "ERROR writing CMD to MCU device!" << std::endl;
}
Kako mogu tu u simulatoru da se "podmetnem" a da ne menjam osnovni code-e za komunikaciju (eventulano promenim samo ime uredjaja) ?