Coaxial switch with remote control C++ example code
Coaxial switch with remote control C++ example code
Code can be compiled with wxDev C++
https://wxdsgn.sourceforge.net/
//****************************************************// // LinkBone test program example // // Coaxial switch with remote control example // // www.linkbone.com // //****************************************************// #include <stdlib.h> #include <stdio.h> #include <string.h> #include <windows.h> #include <conio.h> HANDLE connectToSwitch(char *com) { HANDLE port; DCB portConfig; char portName[32]; COMMTIMEOUTS timeout; // open serial port snprintf(portName,32, "\\\\.\\%s", com); port=CreateFileA(portName, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0); if (port == INVALID_HANDLE_VALUE) { printf("Cannot open COM port"); getch(); return INVALID_HANDLE_VALUE; } // set transmission parameters to coaxial switch with remote serial port if (!GetCommState(port,&portConfig)) return INVALID_HANDLE_VALUE; portConfig.BaudRate = CBR_9600; portConfig.StopBits = ONESTOPBIT; portConfig.Parity = NOPARITY; portConfig.ByteSize = 8; if (!SetCommState(port,&portConfig)) return INVALID_HANDLE_VALUE; // set the read/write timeouts to serial port of coaxial switch timeout.ReadIntervalTimeout = 1; timeout.ReadTotalTimeoutMultiplier = 1; timeout.ReadTotalTimeoutConstant = 1; timeout.WriteTotalTimeoutMultiplier = 1; timeout.WriteTotalTimeoutConstant = 1; if (!SetCommTimeouts(port, &timeout)) return INVALID_HANDLE_VALUE; return port; } void sendToSwitch(HANDLE port,char cmd[]) { char bufferIn[100]; DWORD length, done=0; // send data to serial port of coaxial switch WriteFile(port, cmd, strlen(cmd),&length, NULL); // wait for "Done." reply from coaxial switch while(done<sizeof("Done.\n")) { ReadFile(port, bufferIn,sizeof(bufferIn),&length,NULL); done+=length; } } //////////////////////////////////////////////////////////// // the main test program using coaxial switch with remote // //////////////////////////////////////////////////////////// int main(int argc, char *argv[]) { //open to serial port connected to LinkBone coaxial switch HANDLE port = connectToSwitch("COM4"); if (port==INVALID_HANDLE_VALUE) // if error exit the program return 0; //send control commands to LinkBone coaxial switch with remote control sendToSwitch(port, "reset\n"); //multiplexer mode of switch box sendToSwitch(port, "mode single\n"); //enable A input/output path sendToSwitch(port, "on a\n"); //doSomething(); //enable B input/output path sendToSwitch(port, "on b\n"); //doSomething(); //close the port serial connection to LinkBone coaxial switch with remote control CloseHandle(port); printf("Test script completed. Press an key to continue.\n"); getch(); return 0; }