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

📄 diag.c

📁 MOXA 串口驱动编程
💻 C
字号:
/*****************************************************************************//* DIAG.C                                                                    *//*									     *//* Copyright (c) Moxa Technologies Inc. 1999. All Rights Reserved.	     *//*									     *//* Revision history:							     *//*     8/5/99   Casper                                                       *//*     3/9/2001 Casper     add Industio                                      *//*****************************************************************************/#include <stdio.h>#include <fcntl.h>#define DIAG_VER "1.1"#include "../global.h"#define	MOXA_GET_MAJOR       (MOXA + 63)#define	MOXA_GET_CUMAJOR     (MOXA + 64)int main(){	int	fd;	int	i, j;	int	ports;        int     calloutmajor, major;	char    title_str[80];	struct mxser_hwconf mxsercfg[MXSER_BOARDS];	sprintf(title_str, "\n== MOXA Smartio/Industio Family Multiport Board Status Utility(%s) ==\n", DIAG_VER);	printf(title_str);	if((fd = open("/dev/mxser", O_RDWR)) < 0){	    printf("Open /dev/mxser fail\n");            printf("Please load driver first.\n");	    return 1;	}	if(ioctl(fd, MOXA_GET_MAJOR, &major)<0){            printf("Can't get tty major number.\n");            close(fd);            return 1;        }        printf("Tty Device Major Number= %d.\n", major);	if(ioctl(fd, MOXA_GET_CUMAJOR, &calloutmajor)<0){            printf("Can't get callout device major number.\n");            close(fd);            return 1;        }        printf("Callout device Major Number= %d.\n\n", calloutmajor);	if(ioctl(fd, MOXA_GET_CONF, mxsercfg)<0){            printf("Can't get driver configuration.\n");            close(fd);            return 1;        }	for(i=0; i<MXSER_BOARDS; i++){	    if(mxsercfg[i].board_type == -1)	        continue;	    	    ports = mxser_numports[mxsercfg[i].board_type-1];            if((mxsercfg[i].pciInfo.busNum==0) &&                (mxsercfg[i].pciInfo.devNum==0)){                //ISA board      	        printf("Board %d : %s\n", i+1, mxser_brdname[mxsercfg[i].board_type-1]);      	          	        for(j=0; j<ports && j<MXSER_PORTS_PER_BOARD; j++){      		    if( mxsercfg[i].baud[j] == 115200)       		        printf("\tPort %d: 0x%x, max. baud rate = %s bps.\n", j+1,      					mxsercfg[i].ioaddr[j], "115200");      		    else       		        printf("\tPort %d: 0x%x, max. baud rate = %s bps.\n", j+1,      					mxsercfg[i].ioaddr[j], "921600");                };            }else{      	        printf("Board %d : %s (BusNo=%d, DevNo=%d)\n",                              i+1, mxser_brdname[mxsercfg[i].board_type-1],                              mxsercfg[i].pciInfo.busNum,                              mxsercfg[i].pciInfo.devNum >> 3);                                    	        for(j=0; j<ports && j<MXSER_PORTS_PER_BOARD; j++){        		printf("\tPort %d: 0x%x, max. baud rate = %ld bps.\n", 		j+1,mxsercfg[i].ioaddr[j], mxsercfg[i].MaxCanSetBaudRate[j]);		};            }            printf("\n");            	}	close(fd);        return 0;}

⌨️ 快捷键说明

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