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

📄 main.c

📁 linux下串口的访问
💻 C
字号:
#include "CommSerial.h"
#include "global.h"
#include "stdio.h"
// #include "syslog.h"
// #include "wcommon.h"
// #include "stderr.h"

//*

//////////////////////////////////////////////////////////////////////////
typedef struct 
{
	char	devname[128];
	int	baudrate;
        int     flag;
        char    at[32];
}w_option_t;


static	w_option_t	g_para;
//////////////////////////////////////////////////////////////////////////


// receive data from use serial port
void OnReceive(void* userData, BYTE* rcvData, int len)
{
	printf( "%s", rcvData );
        // Print( "Rcv: %s", rcvData );
}


// open usb serial port
int OpenSerial( char *commPara )  // commPara[] = "/dev/usb/acm/0,460800,8,1,n";
{
	char		buf[1024];
	int		ret;
	SERIALPORT	sp = {0};

	if ( commPara==NULL )
		return -1;
		
	if (0 != (ret = ParseSerialCommParaStr(commPara, &sp)))	
	{
		Err( "ParseSerialCommParaStr error, ret=%d\n", ret );
		return -2;
	}

	Pt( "baudrate: %d, com: %s, databits: %d, parity: %c, stopbits: %d\n", 
		sp.baudrate, sp.scom, sp.databits, sp.parity, sp.stopbits );
	
	if (0 != (ret = SerialPortOpen(&sp, OnReceive, NULL, 0)))
	{
		Err( "open error ret=%d\n", ret );
		SerialPortClose();
		return -3;
	}
	return 0;
}

// int Init(void)
// {
// 	int ret;
// 	
// // open usb serial port
// 	char para[256] = "";
// 	sprintf( para, "%s,%d,8,1,n", g_para.devname, g_para.baudrate );
// 	ret = OpenSerial( para );
// 	if ( ret<0 )
// 	{
// 		Err("OpenSerial: ret=%d\n", ret);
// 		return -1;
// 	}
// 
// // open debug serial port
// 
// 	return 0;
// 
// }

// int ParseArgu( int argc, char * argv[] )
// {
// 	if ( argc<1 || argv==NULL )
// 	{
// 		Err( "para too less or error.\n" );
// 		return -1;
// 	}
//         if ( argc == 1 ) {
//                 g_para.flag = 1;
//                 strcpy( g_para.at, "at+cfun=0,0" );
//                 strcpy( g_para.devname, "/dev/usb/tts/1" );
// 	        g_para.baudrate = atoi( "115200" );
//                 return 0;
//                 }
//         
// 	strcpy( g_para.devname, argv[0] );
// 	//argv++;
// 	g_para.baudrate = atoi( argv[1] );
//         if ( argc == 3 ) {
//                 g_para.flag = 1;
//                 strcpy( g_para.at, argv[2] );
//                 }
//               
// 	return 0;
// }

//*/


// Command line:  
// Command line:  
// Command line:  


int main( int argc, char * argv[] )
{
	int	ret;

	// at+cmgs=16
	// 08 91 68 31 08 20 01 05 F0 11 
	// 00 0B 81 31 18 07 25 56 F4 00 
	// 00 FF 02 31 19
// 	BYTE	msgdata[] = { 
// 		0x08,0x91,0x68,0x31,0x08,0x20,0x01,0x05,0xF0,0x11, 
// 		0x00,0x0B,0x81,0x31,0x18,0x07,0x25,0x56,0xF4,0x00, 
// 		0x00,0xFF,0x02,0x31,0x19,0x1A,0x0D,0x0A };

	char	msgdata[256] = "0891683108200105F011000B813118072556F40000FF023119";

	printf( "Instant messages....\n" );

//*
// parse Arguments	
	// char ss[256] = ;
	if ( argv[1]!=NULL ) 
	{
		strcpy( g_para.devname, "/dev/usb/tts/" );
		strcat( g_para.devname, argv[1] );
	}
	else
		strcpy( g_para.devname, "/dev/usb/tts/1" );
	g_para.baudrate = 115200;

// open debug serial port & usb serial port	
	// open usb serial port
	char para[256] = "";
	sprintf( para, "%s,%d,8,1,n", g_para.devname, g_para.baudrate );

	PrintStr( para );
	ret = OpenSerial( para );
	if ( ret<0 )
	{
		Err("OpenSerial: ret=%d\n", ret);
		return -1;
	}
	

// receive data 
	char data[1024];
	int  len;
        printf("Open serial success.\nInput exit to quit program.\n");
        
	while (1)
	{
		//printf("input: ");
		scanf( "%s", data );
		if ( strcmp(data, "exit")==0 )
			break;
		else if ( strcmp(data, "msg")==0 ) {
			// strcat( msgdata, 0x1a );
			msgdata[strlen(msgdata)] = 0x1a;
			strcat( msgdata, "\r\n" );
			len = strlen(msgdata);
			memcpy( data, msgdata, len );
		}
		else {
			strcat( data, "\r\n" );
			len = strlen(data);
		}
		PrintStr( data );
		PrintInt( len );
		if (0 >= (ret = SerialPortSend(  data, len )) )
		{
			Err( "Send error ret=%d\n", ret );
			//break;
		}
	}
	SerialPortClose();

//*/
	return 0;
}

⌨️ 快捷键说明

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