⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 config.c

📁 linux下串口开发调试工具
💻 C
📖 第 1 页 / 共 4 页
字号:
char *J_col[] =  { N_("BLACK"), N_("RED"), N_("GREEN"), N_("YELLOW"),    N_("BLUE"), N_("MAGENTA"), N_("CYAN"), N_("WHITE") };static char *speeds[] =   { "300", "1200", "2400", "4800" ,      "9600", "19200", "38400", "57600", "115200", "230400", "Curr" };/* * Ask user for Baudrate, Bits and Parity */void get_bbp(ba, bi, pa, stopb, curr_ok)char *ba;char *bi;char *pa;char *stopb;int curr_ok;{  int c;  WIN *w;  int x, y;  int max = m_getmaxspd();  w = wopen(21, 3, 60, 20, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1);  wtitle(w, TMID, _("Comm Parameters"));  dirflush = 0;  wlocate(w, 0, 3);  wputs(w, _("   Speed          Parity          Data\n\n"));  wputs(w, _(" A: 300           L: None         S: 5\n"));  wputs(w, _(" B: 1200          M: Even         T: 6\n"));  wputs(w, _(" C: 2400          N: Odd          U: 7\n"));  wputs(w, _(" D: 4800          O: Mark         V: 8\n"));  wputs(w, _(" E: 9600          P: Space\n"));  if (max > 96)	wputs(w, _(" F: 19200                      Stopbits\n"));  else	wputs(w, "                               Stopbits\n");  if (max > 192)	wputs(w, _(" G: 38400                         W: 1\n"));  else	wputs(w, _("                                    W: 1\n"));  if (max > 384)	wputs(w, _(" H: 57600                         X: 2\n"));  else	wputs(w, "                                    X: 2\n");  if (max > 576)	wputs(w, _(" I: 115200        Q: 8-N-1\n"));  else	wputs(w, _("                  Q: 8-N-1\n"));  if (max > 1152)	wputs(w, _(" J: 230400        R: 7-E-1\n"));  else	wputs(w, _("                  R: 7-E-1\n"));  if (curr_ok)	wputs(w, _(" K: Current\n"));  else	wputs(w, "\n");  wputs(w, _("\n Choice, or <Enter> to exit? "));  x = w->curx;  y = w->cury;  bi[1] = 0;  pa[1] = 0;  wredraw(w, 1);  while(1) {  	wlocate(w, 1, 1);  	wprintf(w, _("Current: %5s %s%s%s  "), ba, bi, pa, stopb);  	wlocate(w, x, y);  	wflush();  	c = wxgetch();  	if (c >= 'a') c -= 32;  	switch(c) {  		case 'J':			if (max < 2304) break;  		case 'I':			if (max < 1152) break;  		case 'H':			if (max < 576) break;		case 'G':			if (max < 384) break;  		case 'F':			if (max < 192) break;  		case 'A':  		case 'B':  		case 'C':  		case 'D':  		case 'E':  		case 'K':			if (c == 'K' && !curr_ok) break;  			strcpy(ba, speeds[c - 'A']);  			break;  		case 'L':  			pa[0] = 'N';  			break;  		case 'M':  			pa[0] = 'E';  			break;  		case 'N':  			pa[0] = 'O';  			break;		case 'O':			pa[0] = 'M';			break;		case 'P':			pa[0] = 'S';			break;  		case 'Q':  			pa[0] = 'N';  			bi[0] = '8';			stopb[0] = '1';  			break;  		case 'R':  			pa[0] = 'E';  			bi[0] = '7';			stopb[0] = '1';  			break;  		case 'S':  			bi[0] = '5';  			break;  		case 'T':  			bi[0] = '6';  			break;  		case 'U':  			bi[0] = '7';  			break;  		case 'V':  			bi[0] = '8';  			break;  		case 'W':  			stopb[0] = '1';			break;  		case 'X':  			stopb[0] = '2';			break;  		case 27:  		case '\n':  		case '\r':  			dirflush = 1;  			wclose(w, 1);  			return;  		default:  			break;  	}  }}#if _HAVE_MACROS/* * fmg - part of the Macros menu, "[none]" beats (null) :-) */static void out_mac(w, s, n)WIN *w;char *s;char n;{  wprintf(w, " %c : %.67s\n", n, s ? s : "[none]");}/* * fmg - Macros editing window */void domacros(){  WIN   *w;  int   clr = 1;  int   Jch='1', Jm=0; /* fmg - ok, so I was lazy.. */  char* question = _("Change which setting?  (Esc to exit)");  w = wopen(3, 6, 75, 21 , BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1);  wtitle(w, TMID, _("F1 to F10 Macros"));  wprintf(w, "\n");  out_mac(w,mmacs[Jm++].value, Jch++);  out_mac(w,mmacs[Jm++].value, Jch++);  out_mac(w,mmacs[Jm++].value, Jch++);  out_mac(w,mmacs[Jm++].value, Jch++);  out_mac(w,mmacs[Jm++].value, Jch++);  out_mac(w,mmacs[Jm++].value, Jch++);  out_mac(w,mmacs[Jm++].value, Jch++);  out_mac(w,mmacs[Jm++].value, Jch++);  out_mac(w,mmacs[Jm++].value, Jch++);  Jch = 'A'; /* fmg - ran out of single digits... */  out_mac(w,mmacs[Jm++].value, Jch++);  wredraw(w, 1);  while(1) {        wlocate(w, 1, 14);        wputs(w, _(" (LEGEND: ^M = C-M, ^L = C-L, ^G = C-G, ^R = C-R, ^~ = pause 1 second,"));	wlocate(w, 1, 15);	wputs(w, _("  \\u = username, \\p = password, \\\\ = \\)"));        if (clr) {                wlocate(w, 1, 12);                wprintf(w, "%s ", question);                wclreol(w);                clr = 0;        } else wlocate(w, strlen (question) + 2, 12);        switch(rwxgetch()) {                case '\n': wclose(w, 1); return;                case '1':                        mgets(w, 5, 1, P_MAC1, 72, MAC_LEN);                        strcpy(P_MACCHG,_("CHANGED")); /* fmg - ...I'm ashamed */                        wlocate(w, 0, 1);                        out_mac(w,P_MAC1, '1');                        break;                case '2':                        mgets(w, 5, 2, P_MAC2, 72, MAC_LEN);                        strcpy(P_MACCHG,"CHANGED"); /* fmg - ... really, I am */                        wlocate(w, 0, 2);                        out_mac(w,P_MAC2, '2');                        break;                case '3':                        mgets(w, 5, 3, P_MAC3, 72, MAC_LEN);                        strcpy(P_MACCHG,"CHANGED"); /* fmg - ... this is the */                        wlocate(w, 0, 3);                        out_mac(w,P_MAC3, '3');                        break;                case '4':                        mgets(w, 5, 4, P_MAC4, 72, MAC_LEN);                        strcpy(P_MACCHG,"CHANGED"); /* fmg - ... first entry on */                        wlocate(w, 0, 4);                        out_mac(w,P_MAC4, '4');                        break;                case '5':                        mgets(w, 5, 5, P_MAC5, 72, MAC_LEN);                        strcpy(P_MACCHG,"CHANGED"); /* fmg - ... my TODO list. */                        wlocate(w, 0, 5);                        out_mac(w,P_MAC5, '5');                        break;                case '6':                        mgets(w, 5, 6, P_MAC6, 72, MAC_LEN);                        strcpy(P_MACCHG,"CHANGED"); /* fmg - ... and, come to think */                        wlocate(w, 0, 6);                        out_mac(w,P_MAC6, '6');                        break;                case '7':                        mgets(w, 5, 7, P_MAC7, 72, MAC_LEN);                        strcpy(P_MACCHG,"CHANGED"); /* fmg - ... of it, I no longer */                        wlocate(w, 0, 7);                        out_mac(w,P_MAC7, '7');                        break;                case '8':                        mgets(w, 5, 8, P_MAC8, 72, MAC_LEN);                        strcpy(P_MACCHG,"CHANGED"); /* fmg - ... even use this... */                        wlocate(w, 0, 8);                        out_mac(w,P_MAC8, '8');                        break;                case '9':                        mgets(w, 5, 9, P_MAC9, 72, MAC_LEN);                        strcpy(P_MACCHG,"CHANGED"); /* fmg - ... [sigh] */                        wlocate(w, 0, 9);                        out_mac(w,P_MAC9, '9');                        break;                case 'A':                        mgets(w, 5, 10, P_MAC10, 72, MAC_LEN);                        strcpy(P_MACCHG,"CHANGED"); /* fmg - ... [sigh] */                        wlocate(w, 0, 10);                        out_mac(w,P_MAC10, 'A');                        break;        }  }}/* is this *REALLY* a printable or non-printable character? * the isprint() function seems to consider all chars > 127d non-printable.. * jl 10.03.1998 */int prch(int c){  if (c < 32 || c == 127 || c == 155)    return (' ');  else    return (c);}/* Edit the character conversion tables. jl 04.09.97 */void doconv(){  WIN *w;  int i, j, k, l,    offs=32,    ymax=22,    h,    redraw=1;  char buf[64];  char *prompt;  h = 16;  w = wopen (1, 1, 77, ymax, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1);  wtitle(w, TMID, _("Character conversion"));  while(1) {    if (redraw) {      winclr(w);      wprintf(w,	      _(" char    in out    char    in out    char    in out    char    in out\n"));      for (i=offs,j=i+h,k=j+h,l=k+h ;	   i<offs+h && i<256 ; i++,j++,k++,l++){	wprintf(w, "%3d (%c) %3d %3d   ",		i, prch(i), (int) vt_inmap[i], (int) vt_outmap[i]);	if (j<256)	  wprintf(w, "%3d (%c) %3d %3d   ",		  j, prch(j), (int) vt_inmap[j], (int) vt_outmap[j]);	else	  wprintf(w, "                  ");	if (k<256)	  wprintf(w, "%3d (%c) %3d %3d   ",		  k, prch(k), (int) vt_inmap[k], (int) vt_outmap[k]);	else	  wprintf(w, "                  ");	if (l<256)	  wprintf(w, "%3d (%c) %3d %3d\n",		  l, prch(l), (int) vt_inmap[l], (int) vt_outmap[l]);	else	  wprintf(w, "               \n");      }      wprintf(w, _("\n A - load table\tB - save table"));      if (P_CONVF[0])	wprintf(w, _("\tfile:%s"),P_CONVF);      wprintf(w, _("\n C - edit char\tD - next screen\tE - prev screen\n"));      wprintf(w, _(" F - convert capture: %s\n"), _(P_CONVCAP));            wredraw(w, 1);      redraw=0;    }    wlocate(w, 1, ymax - 1);    wclreol(w);    wflush();    switch (toupper(rwxgetch())) {    case '\n':      wclose(w, 1); return;      break;    case 'A':      strcpy(buf,P_CONVF);      prompt=_("Load file: %s");      wprintf(w, prompt, buf);      pgets(w, strlen(prompt) - 1, ymax - 1, P_CONVF, 64, 64);      if (loadconv(P_CONVF) == 0) {	if(strcmp(P_CONVF,buf))	  markch(P_CONVF);	redraw=1;      } else	strcpy(P_CONVF,buf);      break;    case 'B':      strcpy(buf,P_CONVF);      prompt=_("Save as file: %s");      wprintf(w, prompt, buf);      pgets(w, strlen(prompt) - 1, ymax - 1, P_CONVF, 64, 64);      if (saveconv(P_CONVF) == 0) {	if(strcmp(P_CONVF,buf))	  markch(P_CONVF);	redraw=1;      } else	strcpy(P_CONVF,buf);      break;    case 'C':      prompt=_("Character to be edited: ");      wprintf(w, prompt);      buf[0]=0; i=-1;      wlocate(w, strlen(prompt), ymax - 1);      wgets(w, buf, 4, 4);      sscanf(buf,"%d",&i);      if (i>255 || i<0) {	werror(_("Input character ascii value 0-255"));	break;      }      sprintf(buf,"%u",(unsigned int) vt_inmap[i]);      wlocate(w, 30, ymax - 1);      prompt=_("Change input to: %s");      wprintf(w, prompt,buf);      wlocate(w, strlen(prompt) + 28, ymax - 1);      wgets(w, buf, 4, 4);      sscanf(buf,"%d",&j);      if (j>255 || j<0) {        werror(_("Input character ascii value 0-255"));        break;      }      else vt_inmap[i] = j;      sprintf(buf,"%u",(unsigned int) vt_outmap[i]);      wlocate(w, 54, ymax - 1);      prompt=_("Change output to: %s");      wprintf(w, prompt, buf);      wlocate(w, strlen(prompt) + 52, ymax - 1);      wgets(w, buf, 4, 4);      sscanf(buf,"%d",&j);      if (j>255 || j<0) {        werror(_("Input character ascii value 0-255"));        break;      }      else vt_outmap[i] = j;      redraw=1;      break;    case 'D':      offs += 4 * h;      if (offs > 255)	offs = 0;      redraw=1;      break;    case 'E':      offs -= 4 * h;      if (offs < 0)	offs = 0;      redraw=1;      break;    case 'F':      strcpy(P_CONVCAP, yesno(P_CONVCAP[0] == 'N'));      markch(P_CONVCAP);      redraw=1;      break;    }  }}int loadconv(char *buf){  FILE *fp;  if ((fp = sfopen(pfix_home(buf), "rb")) == (FILE *)NULL) {    werror(_("Cannot open conversion table %s"),pfix_home(buf));    return 1;  }  fread(vt_inmap, sizeof(vt_inmap), (size_t)1, fp);  fread(vt_outmap, sizeof(vt_outmap), (size_t)1, fp);  fclose(fp);  return 0;}int saveconv(char *buf){  FILE *fp;  if ((fp = sfopen(pfix_home(buf), "wb")) == (FILE *)NULL) {    werror(_("Cannot write conversion table %s"),pfix_home(buf));    return 1;  }  fwrite(vt_inmap, sizeof(vt_inmap), (size_t)1, fp);  fwrite(vt_outmap, sizeof(vt_outmap), (size_t)1, fp);  fclose(fp);  return 0;}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -