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) ?
