亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mon_p.c

?? isa總線設備
?? C
字號:
/*****************************************************************************//* MON_P.C                                                                   *//*									     *//* Copyright (c) Moxa Technologies Inc. 1999. All Rights Reserved.	     *//*									     *//* Revision history:							     *//*	12/95	JOSE							     *//*	12/96	Hsu	Modify for Linux 2.0.0 (C168/C104 ADM)	             *//*     8/5/99   Casper                                                       *//*     3/9/2001 Casper  add Industio                                         *//*     03/20/03 George  Modified to support PC104 Communication Module       *//*****************************************************************************/#include	<time.h>#include	<errno.h>#include	"../mxwinlib/win.h"#include	"../mxlib/declare.h"#include	"../global.h"#include        "mon.h"#define	MOXA_GETDATACOUNT	(MOXA + 23)#define	MOXA_GET_MAJOR		(MOXA + 63)#define Total_Item	7#define Max_Row 	16#define Row_Space	10#define Min_Val 	3#define Max_Val 	10#define Card		0#define CBox		1struct	Moniter_str {	int	tick;	int	rxcnt[MXPCDRV_MAXPORT];	int	txcnt[MXPCDRV_MAXPORT];};typedef struct	Moniter_str	Moniter_t;typedef struct	Moniter_str *	f_Moniter_t;/*****************************************************************************//* GLOBAL FUNCTIONS							     *//*****************************************************************************/int	mon_p_setup(int boards);/*****************************************************************************//* STATIC FUNCTIONS							     *//*****************************************************************************/static	int	init_menu(int now_board);static	void	flush_menu_data(int now_board);static	void	show_timer(int now_board);static	void	reset_count();static int	getdatacnt(struct Moniter_str *logdata);/*****************************************************************************//* STATIC VARIABLES							     *//*****************************************************************************/static	int		row_space[Total_Item] = { 10, 10, 8, 8, 10, 8, 8 };static	int		itemflag[Total_Item] = {	F_Return,	F_Readonly,	F_Readonly,	F_Readonly,	F_Readonly,	F_Readonly,	F_Readonly};static	char		*itemdes[Total_Item] = {	"",	"",	"",	"",	"",	"",	""};static	struct	GEdit3	menu3 = {	Edit3Type0 | Edit3Type3 | Edit3Type5, -1, -1, Total_Item,	0, 0, 0,	{ "PgUp,PgDn:More Ports Home:Reset Count  Esc:Exit  Enter:Port Status"},	0};static	char	*subt_des[] = {	"           ----------- Rx ------------- ----------- Tx ------------",	" Device    Char Count  Throughput(BPS)  Char Count  Throughput(BPS)",	"  name       (bytes)  Interval  Average   (bytes)  Interval  Average"};static  char    GTtyName[(MXPCDRV_PORTS_PER_BOARD * MXPCDRV_BOARDS)][30];static struct mxpcdrv_hwconf	Gmxpcdrvcfg[MXPCDRV_BOARDS];static	int	card_type[MXPCDRV_BOARDS], total_card;static	int	maxrow = 0;static	struct	Moniter_str	slog_old, slog_s, slog_e;static	int	interval;static	time_t	t1, t2, t3;static	int	port_enable;/*****************************************************************************//*	FUNCTIONS							     *//*****************************************************************************/int	mon_p_setup(int boards){	int	i, c, exit_flag=0, flag;	int	need_prepare = 1, old_space_ndx;	int	key;        int     now_board= 0;	interval = 3;	t1 = time((time_t *)&t3);	if ( (old_space_ndx = init_menu(now_board)) < 0 ) {	    confirm("No monitor message is available");	    return (-1);	}	mw_edit3init(&menu3);	for ( i=0; i<3; i++ ) {	    mw_wgotoxy(menu3.wid, 1, i + 2);	    mw_wputsc(menu3.wid, (uchar *)subt_des[i], strlen(subt_des[i]),		      menu3.wid->norm_c);	}	while ( exit_flag == 0 ) {	    if ( need_prepare ) {		flush_menu_data(now_board);		edit3_flush_data(&menu3);		show_timer(now_board);		need_prepare = 0;	    }	    switch ( mw_edit3() ) {	    case K_ESC:		exit_flag = 1;		break;	    case K_ENTER:		c = menu3.item[menu3.act_item].act_item;		if ( c == 0 )		    flag = MON_TOP;		else if ( c == (maxrow - 1) )		    flag = MON_BOTTOM;		else		    flag = MON_NORMAL;		while ( (i = mon_pa_setup(menu3.item[0].str[c],                        interval, flag, now_board, c)) != 0 ) {		    if ( i < 0 && c > 0 )			c--;		    if ( i > 0 && c < maxrow - 1 )			c++;		    if ( c == 0 )			flag = MON_TOP;		    else if ( c == (maxrow - 1) )			flag = MON_BOTTOM;		    else			flag = MON_NORMAL;		}		menu3.item[menu3.act_item].act_item = c;		need_prepare = 1;		break;            case K_PGUP:                if(now_board!=0){                    now_board--;		    reset_count();                    need_prepare = 1;	            release_space(old_space_ndx);	            mw_edit3end();	            old_space_ndx = init_menu(now_board);	            mw_edit3init(&menu3);	            for ( i=0; i<3; i++ ) {	                mw_wgotoxy(menu3.wid, 1, i + 2);	                mw_wputsc(menu3.wid, (uchar *)subt_des[i], strlen(subt_des[i]),		        menu3.wid->norm_c);                    }                }                break;                            case K_PGDOWN:                if(now_board < boards-1){                    now_board++;		    reset_count();                    need_prepare = 1;	            release_space(old_space_ndx);	            mw_edit3end();	            old_space_ndx = init_menu(now_board);	            mw_edit3init(&menu3);	            for ( i=0; i<3; i++ ) {	                mw_wgotoxy(menu3.wid, 1, i + 2);	                mw_wputsc(menu3.wid, (uchar *)subt_des[i], strlen(subt_des[i]),		        menu3.wid->norm_c);                    }                }                break;            	    case '+':		if ( interval < Max_Val )		    interval++;		show_timer(now_board);		break;	    case '-':		if ( interval > Min_Val )		    interval--;		show_timer(now_board);		break;	    case K_HOME :		reset_count();		need_prepare = 1;		break;	    default:		if ( time((time_t *)&t3) - t2 < interval )		    break;		flush_menu_data(now_board);		edit3_flush_data(&menu3);		show_timer(now_board);		break;	    }	}	release_space(old_space_ndx);	mw_edit3end();	return(0);}static int init_menu(int now_board){	int	i, j, k, old_space_ndx, bits;        int     ports;        ports = mxpcdrv_numports[Gmxpcdrvcfg[now_board].board_type-1];	maxrow = ports;	if ( getdatacnt(&slog_old) < 0 )	    return(-1);	slog_s = slog_old;	old_space_ndx = get_space_ndx();	j = sizeof(struct GItem3) * Total_Item;	menu3.item = (struct GItem3 *)get_space(j);	menu3.x = 5;	menu3.y = 5;	for ( i=0; i<Total_Item; i++ ) {	    menu3.item[i].flag = itemflag[i];	    menu3.item[i].des = itemdes[i];	    menu3.item[i].act_item = 0;	    menu3.item[i].total = maxrow;	    /* jose: to fit for each column space */	    for ( j=0; j<maxrow; j++ ) {		menu3.item[i].len[j] = row_space[i];		menu3.item[i].str[j] = get_space(row_space[i] + 1);		for ( k=0; k<row_space[i]; k++ )		    menu3.item[i].str[j][k] = ' ';		menu3.item[i].str[j][k] = 0;	    }	}	menu3.act_item = 1;        for (j=0; j<maxrow; j++){	    sprintf(menu3.item[0].str[j], "%s", GTtyName[now_board * 8 + j]);        }	return(old_space_ndx);}static void flush_menu_data(int now_board){	int	i, j, b;        int     ports,id;        ports = mxpcdrv_numports[Gmxpcdrvcfg[now_board].board_type-1];        	getdatacnt(&slog_e);	t2 = time((time_t *)&t3);	for ( i=0, j=0; i<ports, j<maxrow; i++ ) {	    b = t2 - t1;	    if ( b == 0 )		b = 1;            id = now_board * MXPCDRV_PORTS_PER_BOARD + i;	    sprintf(menu3.item[1].str[j], "%10d",		    slog_e.rxcnt[id] - slog_old.rxcnt[id]);	    sprintf(menu3.item[2].str[j], "%8d",		    (slog_e.rxcnt[id] - slog_s.rxcnt[id]) / interval);	    sprintf(menu3.item[3].str[j], "%8d",		    (slog_e.rxcnt[id] - slog_old.rxcnt[id]) / b);	    sprintf(menu3.item[4].str[j], "%10d",		    slog_e.txcnt[id] - slog_old.txcnt[id]);	    sprintf(menu3.item[5].str[j], "%8d",		    (slog_e.txcnt[id] - slog_s.txcnt[id]) / interval);	    sprintf(menu3.item[6].str[j], "%8d",		    (slog_e.txcnt[id] - slog_old.txcnt[id]) / b);	    j++;	}	slog_s = slog_e;}static int getdatacnt(logdata)struct	Moniter_str	*logdata;{	int	fd, i;	fd = open("/dev/mxpcdrv", O_RDWR);	if ( fd < 0 )	    return(-1);	ioctl(fd, MOXA_GETDATACOUNT, logdata);	close(fd);	return(0);}static void show_timer(int now_board){	char	tmp[80], str[60];	time_t	i;	int	hr, min, sec;        int     w;	i = time((time_t *)&t3) - t1;	sec = i % 60;	min = i / 60;	hr = min / 60;	min = min % 60;	mw_wcolor(menu3.wid, D_A_Normal);        sprintf(str, "     Board #%d :%s",                     now_board+1,                     mxpcdrv_brdname[Gmxpcdrvcfg[now_board].board_type-1]);	w = menu3.wid->w - 2;	for ( i=0; i<w; i++ )		tmp[i] = ' ';	tmp[i] = 0;	mw_wcputs(menu3.wid, 1, (uchar *)tmp);	sprintf(tmp, "Time[%02d:%02d:%02d]%-32s Interval %d sec <+/->", 		hr, min, sec, str, interval); 	mw_wcputs(menu3.wid, 1, (uchar *)tmp);}static void reset_count(){	getdatacnt(&slog_old);	slog_s = slog_old;	t1 = time((time_t *)&t3);}void read_tty(int now_major){        FILE    *fd;        char    ttystr[40];        char    s1[20],s2[20],s3[20],s4[20],s7[20],s8[20],s9[20];        char    tmp[100];        int     major, minor;        int     i,ch;			for(i=0; i<(MXPCDRV_PORTS_PER_BOARD * MXPCDRV_BOARDS); i++){		sprintf( GTtyName[i], "port %d", i+1);	}        sprintf(tmp,"ls -al /dev | grep %d > /tmp/mon.tmp 2> /dev/null",                        now_major);        system(tmp);        fd = fopen("/tmp/mon.tmp", "r");	if(fd<0) {		return;	}        do{            i = 0;            do{                ch = fgetc(fd);                if((ch==-1) || (ch=='\n')){                    tmp[i] = 0;                    break;                }else{                    tmp[i++] = ch;                }            }while(1);            if(ch==-1)                break;            sscanf(tmp,"%s %s %s %s %d, %d %s %s %s %s",                      s1,s2,s3,s4,&major,&minor,s7,s8,s9,ttystr);	    if(s1[0] != 'c')		continue;            if(major!=now_major)                continue;            if(minor>=(MXPCDRV_PORTS_PER_BOARD * MXPCDRV_BOARDS))                continue;            if(strlen(ttystr) >= 10)                ttystr[9] = 0;            strcpy(GTtyName[minor], ttystr);        }while(1);        fclose(fd);        system("rm -f /tmp/mon.tmp 2> /dev/null");        }void main_end(){	mw_wend();}int main(){	int	fd, ret;        int     i;        int     boards;        int     major;        	if((fd = open("/dev/mxpcdrv", O_RDWR)) < 0){	    printf("open /dev/mxpcdrv fail\n");	    return 1;	}	ret = ioctl(fd, MOXA_GET_CONF , Gmxpcdrvcfg);	if(ret != 0){	    printf("ioctl fail,ret=%d\n",ret);	    return 1;	}	ioctl(fd, MOXA_GET_MAJOR, &major);	close(fd);        read_tty(major);        boards = 0;	for(i=0; i<MXPCDRV_BOARDS; i++){	    if(Gmxpcdrvcfg[i].board_type!=-1)                boards++;	}	if(!boards){	    printf("No any MOXA PC104 Communication Module installed.\n");	    return 1;	}	space_init();		mw_winit();        	mon_p_setup(boards);		mw_wend();        return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆精品蜜桃视频网站| 在线精品亚洲一区二区不卡| 色哦色哦哦色天天综合| 欧美一区二区高清| 亚洲黄色录像片| 国产成人在线影院| 欧美日韩在线综合| 中文欧美字幕免费| 看电影不卡的网站| 欧美午夜精品电影| 国产精品欧美一级免费| 久88久久88久久久| 欧美一区二区在线视频| 亚洲在线成人精品| 91在线码无精品| 国产欧美一区二区三区网站| 麻豆成人av在线| 制服.丝袜.亚洲.中文.综合| 洋洋成人永久网站入口| 99国产精品视频免费观看| 亚洲精品一区二区三区影院 | 欧美日韩黄色影视| 亚洲免费观看高清完整版在线观看| 国产一区日韩二区欧美三区| 欧美精品三级日韩久久| 亚洲午夜精品一区二区三区他趣| 91在线码无精品| 亚洲欧洲三级电影| av在线不卡电影| 国产精品久久影院| 99v久久综合狠狠综合久久| 国产精品婷婷午夜在线观看| 国产高清视频一区| 国产欧美日韩精品a在线观看| 蜜桃av一区二区三区电影| 日韩欧美一区电影| 久久国产福利国产秒拍| 日韩欧美在线不卡| 九九国产精品视频| 久久亚洲影视婷婷| 国产成人高清视频| 国产精品三级电影| 99久久精品一区| 亚洲精品写真福利| 欧美激情在线免费观看| 国产99精品国产| 日韩一区在线看| 在线欧美日韩精品| 午夜精品久久一牛影视| 日韩欧美国产1| 国产91富婆露脸刺激对白| 国产精品乱码久久久久久| 99视频精品免费视频| 夜夜精品视频一区二区| 欧美一区二区黄| 高清不卡一二三区| 亚洲乱码一区二区三区在线观看| 欧美午夜片在线观看| 毛片av一区二区| 中文天堂在线一区| 欧美少妇bbb| 国产精品一区二区无线| 中文字幕亚洲电影| 欧美老女人第四色| 国产精品一级二级三级| 亚洲精品国产品国语在线app| 欧美剧在线免费观看网站| 美女国产一区二区三区| 亚洲国产精品高清| 欧美精品久久久久久久多人混战| 国产尤物一区二区| 一区二区欧美国产| 久久亚洲精华国产精华液 | 有码一区二区三区| 欧美一区二区成人| 99re热视频精品| 久久99在线观看| 一区二区三区精密机械公司| 精品国产伦一区二区三区免费| aa级大片欧美| 国产乱码精品一品二品| 天堂va蜜桃一区二区三区| 国产拍欧美日韩视频二区| 欧美日韩视频一区二区| 成人在线综合网站| 美女久久久精品| 亚洲午夜激情av| 中文字幕精品—区二区四季| 91精品国产综合久久久久| 92精品国产成人观看免费| 久88久久88久久久| 午夜不卡av免费| 亚洲精品视频在线看| 欧美国产欧美综合| 2020国产精品| 91精品国产欧美一区二区| 一本久久综合亚洲鲁鲁五月天 | 欧美精品v日韩精品v韩国精品v| www.成人网.com| 国产乱一区二区| 久久国产尿小便嘘嘘尿| 亚洲成a人片在线不卡一二三区| 中文字幕一区二区视频| 国产性色一区二区| 亚州成人在线电影| 一区二区三区精品| 亚洲精品五月天| 亚洲精品国产一区二区精华液| 中文字幕人成不卡一区| 国产亚洲一二三区| 国产亚洲欧美中文| 26uuu久久天堂性欧美| 欧美一区二区三区在线观看视频| 欧美三级日韩三级国产三级| 欧美午夜精品久久久久久超碰 | 国产亚洲一区二区三区四区 | 97久久久精品综合88久久| 国产一区二区三区av电影| 精品一区二区三区av| 久久成人综合网| 狠狠色丁香久久婷婷综| 韩国一区二区视频| 国产成人免费视| 91在线国产福利| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 一区二区理论电影在线观看| 亚洲桃色在线一区| 亚洲最色的网站| 视频一区视频二区在线观看| 日本强好片久久久久久aaa| 美女网站色91| 国产福利一区在线观看| 懂色av一区二区三区免费看| 91免费在线看| 717成人午夜免费福利电影| 日韩欧美国产成人一区二区| 久久美女艺术照精彩视频福利播放| 国产亚洲1区2区3区| 亚洲视频香蕉人妖| 亚洲国产毛片aaaaa无费看| 免费成人深夜小野草| 国产在线看一区| 不卡的电影网站| 欧美色综合久久| 久久亚洲精品国产精品紫薇 | 久久免费视频色| 自拍偷自拍亚洲精品播放| 午夜欧美大尺度福利影院在线看| 免费观看一级特黄欧美大片| 成熟亚洲日本毛茸茸凸凹| 欧美性猛交xxxx乱大交退制版| 欧美刺激午夜性久久久久久久| 国产精品你懂的在线欣赏| 丝袜诱惑亚洲看片| 高清国产一区二区三区| 欧美日本在线播放| 久久久久久久久久久久电影| 亚洲综合图片区| 国产成a人亚洲| 欧美日韩中文字幕一区二区| 久久久久国产一区二区三区四区| 一区二区欧美国产| 国产+成+人+亚洲欧洲自线| 欧美日韩不卡视频| 亚洲男人的天堂网| 国产一区二区视频在线| 欧美日韩视频在线观看一区二区三区 | 99精品热视频| 精品国产免费人成电影在线观看四季| 国产精品久久久久影院老司 | 日韩av电影一区| 91视频一区二区| 日本一区二区动态图| 美腿丝袜亚洲色图| 欧美三日本三级三级在线播放| 国产精品水嫩水嫩| 精品在线免费观看| 欧美日韩一区二区三区视频| 中文字幕制服丝袜一区二区三区| 青草国产精品久久久久久| 91成人免费电影| 国产精品成人一区二区艾草| 国产精品夜夜嗨| 精品美女一区二区三区| 日韩经典中文字幕一区| 色噜噜狠狠一区二区三区果冻| 中文字幕国产一区二区| 老司机一区二区| 欧美一区二区在线免费播放| 亚洲一区二区美女| 欧美中文字幕一区| 一级日本不卡的影视| 色哟哟国产精品| 亚洲精品国产无套在线观| 91视视频在线观看入口直接观看www| 国产精品色在线观看| 丁香天五香天堂综合| 欧美国产精品专区| 成人18精品视频| 亚洲欧美在线aaa|