Files
checker_slave/source/task/handle.h
2023-06-10 11:52:00 +08:00

83 lines
1.7 KiB
C
Raw 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 handle_h__
#define handle_h__
#include "rtthread.h"
#include "signal.h"
#include "list.h"
#include "bytearray.h"
typedef struct{
}mcu_data;
struct _port_mcu;
typedef struct _port_mcu port_mcu;
// 管理通信逻辑
typedef struct _handle_def{
const char *name;
int static_;
int interval;
port_mcu *p;
void (*del)(struct _handle_def *h);
void (*start)(struct _handle_def *h);
void (*dolater)(struct _handle_def *h,uint8_t src,uint8_t cmd,array_def *data,char *err_str);
void (*timeout)(struct _handle_def *h);
}handle_def;
typedef int (*port_read_fun)(int off,uint8_t *buff,int size);
int port_init(void);
port_mcu *port_creat(uint8_t addr,sig_thread t);
void port_delete(port_mcu **p);
// 开始定时器,重复调用会重新开始
void port_timer_start(port_mcu *p);
// 停止定时器
void port_timer_stop(port_mcu *p);
// 开始一个通信操作h是此项操作的类
int port_start(port_mcu *p,handle_def *h);
// 设置忙状态
void port_set_busy(port_mcu *p,int busy);
// 获取忙状态
int port_get_busy(port_mcu *p);
// 获取通信地址
uint8_t port_get_addr(port_mcu *p);
//signal port_send_signal(void *obj,list_def *addrs,uint8_t cmd,list_def *comp_cmd,array_def *data);
signal port_send_signal(port_mcu *obj,uint8_t addr,uint8_t cmd,list_def *comp_cmd,array_def *data,int timeout_ms,int retry);
void port_recv_call(port_mcu *obj,uint8_t src,uint8_t cmd,array_def *data,char *err_str);
// 结束信号ack=0成功-1失败
signal port_end_signal(port_mcu *obj,port_mcu *src,void *data,int ack,char *err_str);
handle_def *updata_creat(const uint8_t *data,int size);
handle_def *updata_scheme_creat(const uint8_t *data,int size);
handle_def *usercmd_creat(uint8_t cmd,array_def *data);
#endif