/********************************************************************************* * Copyright: (C) 2023 LingYun IoT System Studio. * All rights reserved. * * Filename: comport.c * Description: This file is linux comport common API functions * * Version: 1.0.0(11/08/23) * Author: Guo Wenxue * ChangeLog: 1, Release initial version on "11/08/23 16:18:43" * ********************************************************************************/ #ifndef _COMPORT_H_ #define _COMPORT_H_ #include #include #include #include #include #include #include #include #include #include #include #include #include #define CONFIG_DEF_FRAGSIZE 128 typedef struct comport_s { char devname[32]; unsigned char databit, parity, stopbit, flowctrl; long baudrate; int fd; int fragsize; /* frag size when do large data send */ } comport_t; /* * description: Open the comport and returned by $comport * * input args: $comport: corresponding comport handler * $devname: 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 comport opened file description, <0 means failure */ extern int comport_open(comport_t *comport, const char *devname, long baudrate, const char *settings); /* * description: close comport * input args: $comport: corresponding comport handler */ extern void comport_close(comport_t *comport); /* * description: write $bytes $data to $comport * return value: 0: write ok <0: write failure */ extern int comport_send(comport_t *comport, char *data, int data_bytes); /* * 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 */ #define TIMEOUT_NONE 0 extern int comport_recv(comport_t *comport, char *buf, int buf_size, unsigned long timeout); #endif