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

📄 cmux.c

📁 辽阳本地网传输监测系统 Ver1.0
💻 C
📖 第 1 页 / 共 2 页
字号:
	  "MuxCom31:              ",
       };
  char *pps[16] =
       {
	  " Select:→ ← ↑ ↓ Enter Esc                                                   ",
	  " Select:→ ← ↑ ↓ Enter Esc                                                   ",
	  " Select:→ ← ↑ ↓ Enter Esc                                                   ",
	  " Select:→ ← ↑ ↓ Enter Esc                                                   ",
	  " Select:→ ← ↑ ↓ Enter Esc                                                   ",
	  " Select:→ ← ↑ ↓ Enter Esc                                                   ",
	  " Select:→ ← ↑ ↓ Enter Esc                                                   ",
	  " Select:→ ← ↑ ↓ Enter Esc                                                   ",
	  " Select:→ ← ↑ ↓ Enter Esc                                                   ",
	  " Select:→ ← ↑ ↓ Enter Esc                                                   ",
	  " Select:→ ← ↑ ↓ Enter Esc                                                   ",
	  " Select:→ ← ↑ ↓ Enter Esc                                                   ",
	  " Select:→ ← ↑ ↓ Enter Esc                                                   ",
	  " Select:→ ← ↑ ↓ Enter Esc                                                   ",
	  " Select:→ ← ↑ ↓ Enter Esc                                                   ",
	  " Select:→ ← ↑ ↓ Enter Esc                                                   "
       };
  unsigned int c = 0,wflag = 0;
  int x[16] = {  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1};
  int y[16] = {  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16};

  WINDOWSTRU winp  = { 3,  4, 28, 21, 0x7f,  6,  0,  1, NULL };
  WINDOWSTRU winps = {  1, 24, 80, 25, 0x74,  1,  0,  0, NULL };
  menu22.win = &winp;  menu22.winp = &winps;  menu22.pp = pp;
  menu22.x = x;        menu22.y = y;  menu22.pps = pps;
  save_win(&winp);  save_win(&winps);
  do{
      c = menu_run(&menu22,c,wflag);
      wflag = 1;
      if(c == LEFT || c == RIGHT || c == Esc){
	rest_win(&winp);  rest_win(&winps);
	return c;
      }
      switch(menu22.ch){
	  case  0  :  /*--西关*/
		      if(c == Enter || c == UEnter){
			cmux_cmd("1\x10\x0d");
			system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
			c = OUT;
		      }
		      else
			c = 0;
		      break;
	  case  1  :  /*--曙光*/
		      if(c == Enter || c == UEnter){
			cmux_cmd("1\x11\x0d");
			system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
			c = OUT;
		      }
		      else
			c = 0;
		      break;
	  case  2  :  /*--北门*/
		      if(c == Enter || c == UEnter){
			cmux_cmd("1\x12\x0d");
			system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
			c = OUT;
		      }
		      else
			c = 0;
		      break;
	  case  3  :  /*--东四*/
		      if(c == Enter || c == UEnter){
			cmux_cmd("1\x13\x0d");
			system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
			c = OUT;
		      }
		      else
			c = 0;
		      break;
	  case  4  :  /*--201 */
		      if(c == Enter || c == UEnter){
			cmux_cmd("1\x14\x0d");
			system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
			c = OUT;
		      }
		      else
			c = 0;
		      break;
	  case  5  :  /*--宏伟*/
		      if(c == Enter || c == UEnter){
			cmux_cmd("1\x15\x0d");
			system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
			c = OUT;
		      }
		      else
			c = 0;
		      break;
	  case  6  :  /*--光华*/
		      if(c == Enter || c == UEnter){
			cmux_cmd("1\x16\x0d");
			system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
			c = OUT;
		      }
		      else
			c = 0;
		      break;
	  case  7  :  /*--东京陵*/
		      if(c == Enter || c == UEnter){
			cmux_cmd("1\x17\x0d");
			system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
			c = OUT;
		      }
		      else
			c = 0;
		      break;
	  case  8  :  /*--弓长岭*/
		      if(c == Enter || c == UEnter){
			cmux_cmd("1\x18\x0d");
			system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
			c = OUT;
		      }
		      else
			c = 0;
		      break;
	  case  9  :  /*--辽阳县*/
		      if(c == Enter || c == UEnter){
			cmux_cmd("1\x19\x0d");
			system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
			c = OUT;
		      }
		      else
			c = 0;
		      break;
	  case 10  :  /*--灯塔县*/
		      if(c == Enter || c == UEnter){
			cmux_cmd("1\x1a\x0d");
			system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
			c = OUT;
		      }
		      else
			c = 0;
		      break;
	  case 11  :  /*--辽化厂*/
		      if(c == Enter || c == UEnter){
			cmux_cmd("1\x1b\x0d");
			system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
			c = OUT;
		      }
		      else
			c = 0;
		      break;
	  case 12  :  /*--长途局*/
		      if(c == Enter || c == UEnter){
			cmux_cmd("1\x1c\x0d");
			system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
			c = OUT;
		      }
		      else
			c = 0;
		      break;
	  case 13  :  /*--移动局*/
		      if(c == Enter || c == UEnter){
			cmux_cmd("1\x1d\x0d");
			system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
			c = OUT;
		      }
		      else
			c = 0;
		      break;
	  case 14  :  /*--移动局*/
		      if(c == Enter || c == UEnter){
			cmux_cmd("1\x1e\x0d");
			system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
			c = OUT;
		      }
		      else
			c = 0;
		      break;
	  case 15  :  /*--移动局*/
		      if(c == Enter || c == UEnter){
			cmux_cmd("1\x1f\x0d");
			system("MODE CO80"); system("WSMENU.EXE"); cursor(0);
			c = OUT;
		      }
		      else
			c = 0;
		      break;
	}
      if(c == Esc)  menu22.status = 0;
  }while(c != OUT);
  rest_win(&winp);  rest_win(&winps);
  return c;
}


/*=======================================*/
int sub_menu_12()
{
  char *pp[2] =
       {
	  " 系统自检 ",
	  " 系统复位 "
       };
  char *pps[2] =
       {
	  " Select:→ ← ↑ ↓ Enter Esc                                          系统自检 ",
	  " Select:→ ← ↑ ↓ Enter Esc                                          系统复位 "
       };
  unsigned int c = 0,wflag = 0;
  int x[2] = {  1,  1 };
  int y[2] = {  1,  2 };

  WINDOWSTRU winp  = { 20,  3, 31, 10, 0x7f,  6,  0,  1, NULL };
  WINDOWSTRU winps = {  1, 24, 80, 25, 0x70,  1,  0,  0, NULL };
  menu12.win = &winp;  menu12.winp = &winps;  menu12.pp = pp;
  menu12.x = x;        menu12.y = y;  menu12.pps = pps;
  save_win(&winp);  save_win(&winps);
  do{
      c = menu_run(&menu12,c,wflag);
      wflag = 1;
      if(c == LEFT || c == RIGHT || c == Esc){
	rest_win(&winp);  rest_win(&winps);
        return c;
      }
      switch(menu12.ch){
          case  0  :  /*系统自检  */
                      c = 0;
                      break;
          case  1  :  /*系统复位  */
                      c = 0;
		      break;
        }
      if(c == Esc)  menu12.status = 0;
  }while(c != OUT);
  rest_win(&winp);  rest_win(&winps);
  return c;
}

/*=======================================*/
int sub_menu_13()
{
  char *pp[6] =
       {
	  "主端口速率",
	  "DTR OFF",
	  "DSR OFF",
	  "CTS OFF",
	  "RST OFF",
	  "DCD OFF"
       };
  char *pps[6] =
       {

	  " Select:→ ← ↑ ↓ Enter Esc                                         主端口速率",
	  " Select:→ ← ↑ ↓ Enter Esc                                         DTR OFF",
	  " Select:→ ← ↑ ↓ Enter Esc                                         DSR OFF",
	  " Select:→ ← ↑ ↓ Enter Esc                                         CTS OFF",
	  " Select:→ ← ↑ ↓ Enter Esc                                         RST OFF",
	  " Select:→ ← ↑ ↓ Enter Esc                                         DCD OFF"
       };
  unsigned int c = 0,wflag = 0;
  int x[6] = {  1,  1,  1,  1,  1,  1 };
  int y[6] = {  1,  2,  3,  4,  5,  6 };

  WINDOWSTRU winp  = { 39,  3, 50, 10, 0x7f,  6,  0,  1, NULL };
  WINDOWSTRU winps = {  1, 24, 80, 25, 0x70,  1,  0,  0, NULL };
  menu13.win = &winp;  menu13.winp = &winps;  menu13.pp = pp;
  menu13.x = x;        menu13.y = y;  menu13.pps = pps;
  save_win(&winp);  save_win(&winps);
  do{
      c = menu_run(&menu13,c,wflag);
      wflag = 1;
      if(c == LEFT || c == RIGHT || c == Esc){
	rest_win(&winp);  rest_win(&winps);
        return c;
      }
      switch(menu13.ch){
          case  0  :  /*主端口速率*/
		      if(c == Enter || c == UEnter){
			c = OUT;
		      }
		      else
			c = 0;
		      break;
	  case  1  :  /*DTR OFF*/
		      c = 0;
                      break;
          case  2  :  /*DSR OFF*/
                      c = 0;
                      break;
          case  3  :  /*CTS OFF*/
                      c = 0;
		      break;
          case  4  :  /*RST OFF*/
		      c = 0;
		      break;
          case  5  :  /*DCD OFF*/
                      c = 0;
		      break;
        }
      if(c == Esc)  menu13.status = 0;
  }while(c != OUT);
  rest_win(&winp);  rest_win(&winps);
  return c;
}

/*=======================================*/
int sub_menu_14()
{
  char *pp[1] =
       {
	  "DOS SHELL "
       };
  char *pps[1] =
       {
	  " Select:→ ← ↑ ↓ Enter Esc        "
       };
  unsigned int c = 0,wflag = 0;
  int x[1] = {  1 };
  int y[1] = {  1 };

  WINDOWSTRU winp  = { 58,  3, 69, 10, 0x7f,  6,  0,  1, NULL };
  WINDOWSTRU winps = {  1, 24, 80, 25, 0x70,  1,  0,  0, NULL };
  menu14.win = &winp;  menu14.winp = &winps;  menu14.pp = pp;
  menu14.x = x;        menu14.y = y;  menu14.pps = pps;
  save_win(&winp);  save_win(&winps);
  do{
      c = menu_run(&menu14,c,wflag);
      wflag = 1;
      if(c == LEFT || c == RIGHT || c == Esc){
        rest_win(&winp);  rest_win(&winps);
	return c;
      }
      switch(menu14.ch){
	  case  0  :  /*DOS SHELL */
		      if(c == Enter || c == UEnter){
			system("\command.com");
			c = OUT;
		      }
		      else
			c = 0;
		      break;
	}
      if(c == Esc)  menu14.status = 0;
  }while(c != OUT);
  rest_win(&winp);  rest_win(&winps);
  return c;
}

#include <bios.h>
#include <dos.h>
#include <string.h>

void cmux_cmd(char *cmux_cmd)

{
   #define COM_PORT       1   /* 0:COM1   1:COM2 */
   #define DATA_READY 0x100
   #define SETTINGS ( _COM_2400 | _COM_CHR8 | _COM_NOPARITY | _COM_STOP1)
   int  status,i, j,m,n;
   char in,cmux_rec;
   char cmux_pwd[14]="PMUX-SWTO-";
   strcat(cmux_pwd,cmux_cmd);

   bioscom(0, SETTINGS, COM_PORT);
   for(j=0;j<13;j++)
   {
     bioscom(1, cmux_pwd[j], COM_PORT);
     delay(10);
   }

   status = bioscom(3, 0, COM_PORT);
   status &= DATA_READY;

   /*
   if (status)
   {
	  if ((cmux_rec = bioscom(2, 0, COM_PORT) & 0x7F) != 0)
	      putch(cmux_rec);
	  delay(4);    //Delay Range: 4--6ms/
   }
   */

}

⌨️ 快捷键说明

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