/********************************************************************************* * Copyright: (C) 2018 LingYun IoT System Studio * All rights reserved. * * Filename: comport.h * Description: This head file is for the common TTY/Serial port operator library * * Version: 1.0.0(10/17/2018~) * Author: Guo Wenxue * ChangeLog: 1, Release initial version on "10/17/2018 03:33:25 PM" * ********************************************************************************/ #ifndef __COMPORT_H_ #define __COMPORT_H_ #include #include #include #include #include #include #include #include #include #include #include #include #include #define BUF_64 64 #ifndef DEVNAME_LEN #define DEVNAME_LEN 64 #endif //#define COM_DEBUG #ifdef COM_DEBUG #define COM_PRINT(format,args...) printf(format, ##args) #else #define COM_PRINT(format,args...) do{} while(0); #endif //#define msleep(m) {struct timespec cSleep; cSleep.tv_sec = 0; cSleep.tv_nsec = m * 1000; nanosleep(&cSleep, 0);} typedef struct _st_comport { char dev_name[DEVNAME_LEN]; unsigned char databit, parity, stopbit, flowctrl; long baudrate; int fd; int frag_size; } st_comport; /* * description: initialise the comport structure * * input args: $dev_name: The comport device name path, such as '/dev/ttyS3' * $baudrate: The baudrate, such as 115200 * $settings: The databit,parity,stopbit,flowctrl settings, such as '8N1N' * * return value: The st_comport structure pointer, NULL means failure. */ st_comport *comport_init(const char *dev_name, int baudrate, const char *settings); /* * description: Open the comport specified by $comport * input args: $comport: corresponding comport point * return value: The comport opened file description, <0 means failure */ extern int comport_open(st_comport * comport); /* * description: read data from $comport in $timeout to $buf no more than $buf_size bytes * return value: the actual read data bytes, <0: read failure */ extern int comport_recv(st_comport * comport, char *buf, int buf_size, unsigned long timeout); /* * description: write $send_bytes bytes data from $buf to $comport * return value: 0: write ok <0: write failure */ extern int comport_send(st_comport * comport, char *buf, int send_bytes); /* * description: display current comport settings such as databit,parity,stopbit,flowctrl * input args: $comport: corresponding comport point */ //extern void disp_settings(st_comport * comport); /* * description: close comport * input args: $comport: corresponding comport point */ extern void comport_close(st_comport * comport); /* * description: terminat comport, close and free it * input args: $comport: corresponding comport point */ extern void comport_term(st_comport * comport); #endif