int tyGSAsynInit(char *port, char *moduleName, int channel, int baud, char parity, int sbits, int dbits, char handshake, char *inputEos, char *outputEos) { char *deviceName; int status; #define SIZE 80 char buffer[SIZE]; deviceName = tyGSOctalDevCreate(port, moduleName, channel, tyGSAsynInitBuffsize, tyGSAsynInitBuffsize); if (deviceName == NULL) return(ERROR); drvAsynSerialPortConfigure(port, port, 0, 0, 0); asynOctetConnect(port, port, 0, 0, 128, NULL); asynOctetSetInputEos(port, 0, inputEos, NULL); asynOctetSetOutputEos(port, 0, outputEos, NULL); /* Port options */ sprintf(buffer, "%d", baud); status = asynSetOption(port, 0, "baud", buffer); if (status != 0) return(status); if (parity == 'N') strcpy(buffer,"none"); if (parity == 'E') strcpy(buffer,"even"); if (parity == 'O') strcpy(buffer,"odd"); status = asynSetOption(port, 0, "parity", buffer); if (status != 0) return(status); sprintf(buffer, "%d", sbits); status = asynSetOption(port, 0, "stop", buffer); if (status != 0) return(status); sprintf(buffer, "%d", dbits); status = asynSetOption(port, 0, "bits", buffer); if (status != 0) return(status); if (handshake == 'H') strcpy(buffer,"N"); if (handshake == 'N') strcpy(buffer,"Y"); status = asynSetOption(port, 0, "clocal", buffer); return(status); }
static void asynSetOptionCall(const iocshArgBuf * args) { asynSetOption(args[0].sval,args[1].ival,args[2].sval,args[3].sval); }