📄 diag.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 + -