void ModemBase::answer() { if (!_isRinging) { disconnect(); // This prints "NO CARRIER" return; } _isConnected = true; _isCommandMode = false; _isRinging = false; if (_baudRate == 38400) { printResponse("28", F("CONNECT 38400")); } else if (_baudRate == 19200) { printResponse("14", F("CONNECT 19200")); } else if (_baudRate == 14400) { printResponse("13", F("CONNECT 14400")); } else if (_baudRate == 9600) { printResponse("12", F("CONNECT 9600")); } else if (_baudRate == 4800) { printResponse("11", F("CONNECT 4800")); } else if (_baudRate == 2400) { printResponse("10", F("CONNECT 2400")); } else if (_baudRate == 1200) { printResponse("5", F("CONNECT 1200")); } else { if (!_verboseResponses) _serial->println('1'); else { _serial->print(F("CONNECT ")); _serial->println(_baudRate); } } digitalWrite(RTS, LOW); TerminalMode(); }
int main(int argc, char *argv[]) { char *infile = NULL, fullName[FILENAME_MAX]; int runFlags = 0; int terminalMode = FALSE; BoardConfig *config; char *port, *board; System sys; int i; /* get the environment settings */ if (!(port = getenv("PORT"))) port = DEF_PORT; if (!(board = getenv("BOARD"))) board = DEF_BOARD; /* get the arguments */ for(i = 1; i < argc; ++i) { /* handle switches */ if(argv[i][0] == '-') { switch(argv[i][1]) { case 'b': // select a target board if (argv[i][2]) board = &argv[i][2]; else if (++i < argc) board = argv[i]; else Usage(); break; case 'd': runFlags |= RUN_PAUSE; break; case 'p': if(argv[i][2]) port = &argv[i][2]; else if(++i < argc) port = argv[i]; else Usage(); if (isdigit((int)port[0])) { #if defined(CYGWIN) || defined(WIN32) static char buf[10]; sprintf(buf, "COM%d", atoi(port)); port = buf; #endif #ifdef LINUX static char buf[10]; sprintf(buf, "/dev/ttyUSB%d", atoi(port)); port = buf; #endif } break; case 's': runFlags |= RUN_STEP; break; case 't': terminalMode = TRUE; break; default: Usage(); break; } } /* handle the input filename */ else { if (infile) Usage(); infile = argv[i]; } } sys.ops = &myOps; ParseConfigurationFile(&sys, "xbasic.cfg"); /* make sure an input file was specified */ if (!infile) Usage(); ConstructFileName(infile, fullName, ".bai"); /* setup for the selected board */ if (!(config = GetBoardConfig(board))) Usage(); /* initialize the serial port */ if (!InitPort(port)) { fprintf(stderr, "error: opening serial port\n"); return 1; } /* load the compiled image */ if (!LoadImage(&sys, config, port, fullName)) { fprintf(stderr, "error: load failed\n"); return 1; } /* run the loaded image */ if (!RunLoadedProgram(runFlags)) { fprintf(stderr, "error: run failed\n"); return 1; } /* enter terminal mode if requested */ if (terminalMode) TerminalMode(); return 0; }
int main(int argc, char *argv[]) { XbeeAddrList addrs; char *infile = NULL; char *ipaddr = NULL; LoadType loadType = ltDownloadAndRun; int terminalMode = 0; int pstMode = 0; int ret, i; /* get the arguments */ for (i = 1; i < argc; ++i) { /* handle switches */ if (argv[i][0] == '-') { switch(argv[i][1]) { case 'e': loadType = ltDownloadAndProgramAndRun; break; case 'i': if (argv[i][2]) ipaddr = &argv[i][2]; else if (++i < argc) ipaddr = argv[i]; else Usage(); break; case 'r': if (argv[i][2]) resetPin = atoi(&argv[i][2]); else if (++i < argc) resetPin = atoi(argv[i]); else Usage(); break; case 't': terminalMode = 1; break; case 'v': verbose = 1; break; case '?': /* fall through */ default: Usage(); break; } } /* handle the input filename */ else { if (infile) Usage(); infile = argv[i]; } } if (infile) { if (!ipaddr) { printf("error: must specify IP address or host name with -i\n"); return 1; } if (fastLoad(ipaddr, infile, loadType) < 0) return 1; } else if (!terminalMode) { if ((ret = discover(addrs, 2000)) < 0) { printf("error: discover failed: %d\n", ret); return 1; } } if (terminalMode) { setBaudRate(ipaddr, terminalBaudRate); printf("[ Entering terminal mode. Type ESC or Control-C to exit. ]\n"); TerminalMode(ipaddr, pstMode); } return 0; }