acdt/CH395Q/ch395cmd.h

123 lines
7.3 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef __CH395CMD_H__
#define __CH395CMD_H__
#include "ch395inc.h"
//#include "./SYSTEM/sys/sys.h"
void ch395_cmd_reset(void); /* 复位 */
void ch395_cmd_sleep(void); /* 睡眠 */
uint8_t ch395_cmd_get_ver(void); /* 获取芯片及固件版本号 */
uint8_t ch395_cmd_check_exist(uint8_t testdata); /* 测试命令 */
void ch395_cmd_set_phy(uint8_t phystat); /* 设置phy状态 */
uint8_t ch395_cmd_get_phy_status(void); /* 获取phy状态 */
uint8_t ch395_cmd_get_glob_int_status(void); /* 获取ch395全局中断状态 */
uint8_t ch395_cmd_init(void); /* 初始化ch395 */
void ch395_cmd_set_uart_baud_rate(uint32_t baudrate); /* 设置波特率 */
uint8_t ch395_get_cmd_status(void); /* 获取命令执行状态 */
void ch395_cmd_set_ipaddr(uint8_t *ipaddr); /* 设置ch395的ip地址 */
void ch395_cmd_set_gw_ipaddr(uint8_t *gwipaddr); /* 设置ch395的网关ip地址 */
void ch395_cmd_set_maskaddr(uint8_t *maskaddr); /* 设置子网掩码 */
void ch395_cmd_set_macaddr(uint8_t *amcaddr); /* 设置ch395的mac地址 */
void ch395_cmd_get_macaddr(uint8_t *amcaddr); /* 获取mac地址 */
void ch395_cmd_set_macfilt(uint8_t filtype, uint32_t table0, uint32_t table1); /* 设置ch395的mac过滤 */
void ch395_cmd_get_unreachippt(uint8_t *list); /* 获取不可达地址以及端口 */
void ch395_cmd_get_remoteipp(uint8_t sockindex, uint8_t *list); /* 获取远端ip和端口一般在tcp server下使用 */
void ch395_set_socket_desip(uint8_t sockindex, uint8_t *ipaddr); /* 设置scoket n的目的ip地址 */
void ch395_set_socket_prot_type(uint8_t sockindex, uint8_t prottype); /* 设置socket n的协议类型 */
void ch395_set_socket_desport(uint8_t sockindex, uint16_t desprot); /* 设置socket n的目的端口 */
void ch395_set_socket_sourport(uint8_t sockindex, uint16_t surprot); /* 设置socket n的源端口 */
void ch395_set_socket_ipraw_proto(uint8_t sockindex, uint8_t prototype); /* 在ipraw模式下设置socket n的ip包协议字段 */
void ch395_set_recv_threslen(uint8_t sockindex, uint16_t len); /* 设置socket n的接收中断阀值 */
void ch395_send_data(uint8_t sockindex, uint8_t *databuf, uint16_t len); /* 向socket n的发送缓冲区写数据 */
uint16_t ch395_get_recv_length(uint8_t sockindex); /* 获取socket n的接收长度 */
void ch395_clear_recv_buf(uint8_t sockindex); /* 清除socket n的接收缓冲区 */
void ch395_get_recv_data(uint8_t sockindex, uint16_t len, uint8_t *pbuf); /* 获取接收数据 */
void ch395_cmd_set_retry_count(uint8_t count); /* 设置最大重试次数 */
void ch395_cmd_set_retry_period(uint16_t period); /* 设置最大重试周期 单位 毫秒 */
void ch395_cmd_get_socket_status(uint8_t sockindex, uint8_t *status) ; /* 获取socket n的状态 */
uint8_t ch395_open_socket(uint8_t sockindex); /* 打开socket n*/
uint8_t ch395_close_socket(uint8_t sockindex); /* 关闭socket n*/
uint8_t ch395_tcp_connect(uint8_t sockindex); /* tcp连接 */
uint8_t ch395_tcp_listen(uint8_t sockindex); /* tcp监听 */
uint8_t ch395_tcp_disconnect(uint8_t sockindex); /* tcp断开连接 */
uint8_t ch395_get_socket_int(uint8_t sockindex); /* 获取socket n的中断状态 */
uint8_t ch395_crcret_6bit(uint8_t *mac_addr); /* 多播地址crc32用于hash过滤 function count = 36 */
void ch395_get_ipinf(uint8_t *addr); /* 获取ip子网掩码和网关地址 */
uint8_t ch395_get_dhcp_status(void); /* 获取dhcp状态 */
uint8_t ch395_dhcp_enable(uint8_t flag); /* 启动/停止dhcp */
void ch395_write_gpio_addr(uint8_t regadd, uint8_t regval); /* 写gpio寄存器 */
uint8_t ch395_read_gpio_addr(uint8_t regadd); /* 读gpio寄存器 */
uint8_t ch395_eeprom_erase(void); /* 擦除eeprom */
uint8_t ch395_eeprom_write(uint16_t eepaddr, uint8_t *buf, uint8_t len); /* 写eeprom */
void ch395_eeprom_read(uint16_t eepaddr, uint8_t *buf, uint8_t len); /* 读eeprom */
void ch395_set_tcpmss(uint16_t tcpmss); /* 设置tcp mss值 */
void ch395_set_socket_recv_buf(uint8_t sockindex, uint8_t startblk, uint8_t blknum); /* 设置socket接收缓冲区 */
void ch395_set_socket_send_buf(uint8_t sockindex, uint8_t startblk, uint8_t blknum); /* 设置socket发送缓冲区 */
void ch395_udp_send_data(uint8_t *buf, uint32_t len, uint8_t *ip, uint16_t port, uint8_t sockindex); /* udp向指定的ip和端口发送数据 */
void ch395_set_start_para(uint32_t mdata); /* 设置ch395启动参数 */
uint16_t ch395_cmd_get_glob_int_status_all(void); /* 获取全局中断状态收到此命令ch395自动取消中断,0x44及以上版本使用 */
void ch395_keeplive_idle(uint32_t idle); /* 设置keeplive空闲 */
void ch395_keeplive_intvl(uint32_t intvl); /* 设置keeplive间隔时间 */
void ch395_keeplive_cnt(uint8_t cnt); /* 设置keepalive重试次数 */
void ch395_set_keeplive(uint8_t sockindex, uint8_t cmd); /* 设置ttl */
void ch395_setttl_num(uint8_t sockindex, uint8_t ttlnum); /* 设置ttl */
#endif