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

📄 ecusetup.c

📁 一个通讯程序源码
💻 C
📖 第 1 页 / 共 2 页
字号:
/*+-------------------------------------------------------------------------	ecusetup.c -- ecu visual "argv"	wht@n4hgf.Mt-Park.GA.US  0000000000111111111122222222223333333333444444444455555555556666  012345678901234567890123456789012345678901234567890123456789012300.--[ ecu rev ]-------------------------------------------------.01|                                                              |02|  Destination   .......................................       |03|    Telephone     ....................                        |04|    Description   ........................................    |05|                                                              |06|  tty: /dev/........   (opened)                               | 07|                                                              |08|  duplex: .  baud: .....  parity: . (data bits .)             |09|  add NL to transmitted CR: .                                 |10|  add NL to received CR:    .                                 |11|                                                              |12|                                                              |13|   TAB:next ^B:prev END:proceed ^D:phone dir  ESC:quit ecu    |14`--------------------------------------------------------------'  Defined functions:	setup_display_baud()	setup_display_name()	setup_display_screen(write_lits)	setup_display_single_char()	setup_display_tty()	setup_line_open()	setup_screen(argv_logical)	setw_bot_msg(msg)	setw_err_msg(msg)	setw_get_single(nondelim_list)	setw_msg(msg,y,fillch,last_msglen)--------------------------------------------------------------------------*//*+:EDITS:*//*:09-10-1992-13:58-wht@n4hgf-ECU release 3.20 *//*:09-05-1992-14:49-wht@n4hgf-parity field was one to the left of proper pos *//*:08-22-1992-15:38-wht@n4hgf-ECU release 3.20 BETA *//*:04-28-1992-01:34-wht@n4hgf-default tty in tty prompt had slash *//*:04-24-1992-21:59-wht@n4hgf-more SCO tty name normalizing *//*:08-28-1991-14:07-wht@n4hgf2-SVR4 cleanup by aega84!lh *//*:08-25-1991-14:39-wht@n4hgf-SVR4 port thanks to aega84!lh *//*:08-12-1991-00:58-wht@n4hgf-ISC tty names *//*:07-25-1991-12:56-wht@n4hgf-ECU release 3.10 *//*:07-17-1991-07:04-wht@n4hgf-avoid SCO UNIX nap bug *//*:06-05-1991-18:07-wht@n4hgf-rework *//*:04-27-1991-01:52-wht@n4hgf-overhaul revision numbers *//*:08-14-1990-20:40-wht@n4hgf-ecu3.00-flush old edit history */#include "ecucurses.h"#define STDIO_H_INCLUDED#define OMIT_TERMIO_REFERENCES#include "ecu.h"#include "ecukey.h"#include "ecuxkey.h"#include "ecupde.h"#include "pc_scr.h"PDE *logical_telno_to_pde();#define SETW_LINES	15#define SETW_COLS	64#define SETW_TLY	1#define SETW_TLX	((80 - SETW_COLS) / 2)#define NAME_Y		2#define NAME_X		17#define NAME_LEN	DESTREF_LEN#define NAME_LX		3#define PHNUM_Y		3#define PHNUM_X		19#define PHNUM_LEN	DESTREF_LEN#define PHNUM_LX	5#define DESCR_Y		4#define DESCR_X		19#define DESCR_LEN	PDE_DESCR_LEN#define DESCR_LX	5#define TTY_Y		6#define TTY_X		13#define TTY_LEN		8#define TTY_LX		3#define TTYOPN_LY	6#define TTYOPN_LX	24#define DPX_Y		8#define DPX_X		11#define DPX_LX		3#define BAUD_Y		8#define BAUD_X		20#define BAUD_LEN	5#define BAUD_LX		14#define PAR_Y		8#define PAR_X		35#define PAR_LX		27#define DB_Y		8#define DB_X		48#define DB_LX		37#define DB_LX2		49#define XADDNL_Y	9#define XADDNL_X	29#define XADDNL_LX	3#define RADDNL_Y	10#define RADDNL_X	29#define RADDNL_LX	3extern char *revstr;	/* ecunumrev.c */extern char errmsg[];WINDOW *setw;#define SETW_MSG_LEFTX 2#define SETW_MSG_MAXLEN	(SETW_COLS - SETW_MSG_LEFTX - 8)#define SETW_MSG_BOT_Y  (SETW_LINES - 1)#define SETW_MSG_ERR_Y  (SETW_LINES - 3)/*+-------------------------------------------------------------------------	setw_msg(msg,y,fillch)--------------------------------------------------------------------------*/voidsetw_msg(msg,y,fillch,last_msglen)char *msg;int y;char fillch;int *last_msglen;{	register itmp;	register itmp2;	char msg2[80];	if(!*last_msglen && !strlen(msg))		return;	wmove(setw,y,SETW_MSG_LEFTX);	if((itmp = strlen(msg)) == 0)	{		itmp2 = *last_msglen + 2;#if defined(SVR4)		whline(setw, (unsigned long)(fillch & 0x00ff), itmp2);#else  		for(itmp = 0; itmp < itmp2; itmp++)			waddch(setw,fillch & 0xFF); #endif		*last_msglen = 0;	}	else	{		waddch(setw,' ');		if(itmp > SETW_MSG_MAXLEN)		{			strncpy(msg2,msg,SETW_MSG_MAXLEN);			msg2[SETW_MSG_MAXLEN + 1] = 0;			waddstr(setw,msg2);			itmp = strlen(msg2);		}		else		{			waddstr(setw,msg);			itmp = strlen(msg);		}		waddch(setw,' ');		if((itmp2 = *last_msglen - itmp) > 0)		{#if defined(SVR4)			whline(setw, (unsigned long)(fillch & 0x00ff), itmp2);#else			while(itmp2--)  				waddch(setw,fillch & 0xFF); #endif		}		*last_msglen = itmp;		/* remember last message length */	}	wrefresh(setw);}	/* end of setw_msg *//*+-------------------------------------------------------------------------	setw_bot_msg(msg)--------------------------------------------------------------------------*/voidsetw_bot_msg(msg)char *msg;{	static int last_msglen = 0;	setw_msg(msg,SETW_MSG_BOT_Y,sHR,&last_msglen);}	/* end of setw_bot_msg *//*+-------------------------------------------------------------------------	setw_err_msg(msg)--------------------------------------------------------------------------*/voidsetw_err_msg(msg)char *msg;{	static int last_msglen = 0;	setw_msg(msg,SETW_MSG_ERR_Y,' ',&last_msglen);}	/* end of setw_err_msg *//*+-------------------------------------------------------------------------	setup_display_name()--------------------------------------------------------------------------*/voidsetup_display_name(){	clear_area(setw,NAME_Y,NAME_X,NAME_LEN);	waddstr(setw,shm->Llogical);#if 0	if(!shm->Llogical[0] && (shm->Liofd < 0))	{		clear_area(setw,PHNUM_Y,PHNUM_X,PHNUM_LEN);		clear_area(setw,DESCR_Y,DESCR_X,DESCR_LEN);		return;	}#endif	wmove(setw,PHNUM_Y,PHNUM_LX);	if(shm->Ltelno[0])		waddstr(setw,"Telephone");	else		waddstr(setw,"         ");	clear_area(setw,PHNUM_Y,PHNUM_X,PHNUM_LEN);#if 0	if(!shm->Ltelno[0])	{		if(!isdigit(shm->Llogical[0]) && find_procedure(shm->Llogical))			waddstr(setw,"<procedure connect>");		else			waddstr(setw,"<direct connect>");	}	else#endif		waddstr(setw,shm->Ltelno);	wmove(setw,DESCR_Y,DESCR_LX);	if(shm->Ldescr[0])		waddstr(setw,"Description");	else		waddstr(setw,"           ");	clear_area(setw,DESCR_Y,DESCR_X,DESCR_LEN);	waddstr(setw,shm->Ldescr);}	/* end of setup_display_name *//*+-------------------------------------------------------------------------	setup_display_tty()     00000000     01234567/dev/........--------------------------------------------------------------------------*/voidsetup_display_tty(){	char s[TTY_LEN + 1];	strncpy(s,shm->Lline + 5,TTY_LEN);	s[TTY_LEN] = 0;	clear_area(setw,TTY_Y,TTY_X,TTY_LEN);	waddstr(setw,s);	wmove(setw,TTYOPN_LY,TTYOPN_LX);	if(shm->Liofd >= 0)		waddstr(setw,"(opened)");	else		waddstr(setw,"        ");	wrefresh(setw);}	/* end of setup_display_tty *//*+-------------------------------------------------------------------------	setup_display_single_char()--------------------------------------------------------------------------*/voidsetup_display_single_char(){	wmove(setw,DPX_Y,DPX_X);	waddch(setw,(shm->Lfull_duplex) ? 'F' : 'E');	wmove(setw,PAR_Y,PAR_X);	waddch(setw,(shm->Lparity) ? to_upper(shm->Lparity) : 'N');	wmove(setw,DB_Y,DB_X);	waddch(setw,(shm->Lparity) ? '7' : '8');	wmove(setw,XADDNL_Y,XADDNL_X);	waddch(setw,(shm->Ladd_nl_outgoing) ? 'Y' : 'N');	wmove(setw,RADDNL_Y,RADDNL_X);	waddch(setw,(shm->Ladd_nl_incoming) ? 'Y' : 'N'); }	/* end of setup_display_single_char *//*+-------------------------------------------------------------------------	setup_display_baud()--------------------------------------------------------------------------*/voidsetup_display_baud(){	char s8[8];	clear_area(setw,BAUD_Y,BAUD_X,BAUD_LEN);	sprintf(s8,"%u",shm->Lbaud);	waddstr(setw,s8);}	/* end of setup_display_baud *//*+-------------------------------------------------------------------------	setup_display_screen(write_lits)--------------------------------------------------------------------------*/voidsetup_display_screen(write_lits)int write_lits;{	if(write_lits)	{		wmove(setw,NAME_Y,NAME_LX);		waddstr(setw,"Destination");		wmove(setw,TTY_Y,TTY_LX);		waddstr(setw,"tty: /dev/");		wmove(setw,DPX_Y,DPX_LX);		waddstr(setw,"duplex:");		wmove(setw,BAUD_Y,BAUD_LX);		waddstr(setw,"baud:");		wmove(setw,PAR_Y,PAR_LX);		waddstr(setw,"parity:");		wmove(setw,DB_Y,DB_LX);		waddstr(setw,"(data bits");		wmove(setw,DB_Y,DB_LX2);		waddch(setw,')');		wmove(setw,XADDNL_Y,XADDNL_LX);		waddstr(setw,"add NL to transmitted CR:");		wmove(setw,RADDNL_Y,RADDNL_LX);		waddstr(setw,"add NL to received CR:");		wmove(setw,SETW_LINES - 2,1);		wstandout(setw);		waddstr(setw,		/* kludge -- must change if setw width does */			"   TAB:next ^B:prev END:proceed ^D:phone dir  ESC:quit ecu    ");		wstandend(setw);	}	setup_display_name();

⌨️ 快捷键说明

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