CIU32_L051_M307R/bsp/inc/bsp_history.h

110 lines
2.5 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.

/*
* @Author: MBW
* @Date: 2024-03-20 17:12:31
* @LastEditors: MBW
* @LastEditTime: 2024-03-27 09:57:40
* @FilePath: \CX32L003_PROJECT\bsp\inc\bsp_history.h
* @Description:
*
*/
#ifndef __BSP_HISTORY_H__
#define __BSP_HISTORY_H__
#include "rtthread.h"
#include "rtdef.h"
#define HR_THREAD_STACK_SIZE (1536)
#define HR_THREAD_PRIORITY (10)
#define HR_THREAD_TIMESLICE (5)
/*一组数据帧:帧头(1字节) + 控制码(2字节) + 帧长度(1字节) + 数据(n字节) + 校验码 + 帧尾(1字节)*/
/*帧头0xAA*/
/*帧尾0x55*/
/*控制码:帧类型*/
/*帧长度:数据域长度*/
/*数据域:数据*/
/*校验码:数据域的校验和*/
#define FRAME_HEADER (0xAA)
#define FRAME_TAIL (0x55)
#define HOST_FRAME_MIN_LEN (6U)
#define FRAME_DATA_LEN (7U)
typedef enum
{
kNumOfRecords = 0U,
kAlarmRecord, // at least 200
kAlarmRcyRecord, // at least 200
kFaultRecord, // at least 100
kFaultRcyRecord, // at least 100
kPowerFailureRecord, // at least 50
kPowerOnRecord, // at least 50
kSensorFailureRecord, // at least 1
kGetCurrentTime,
/*扩展指令*/
// 以下是在国标原基础上所扩展的
kGetCurrentTimeSecond, // include second
kSetCurrentTime,
kSetFactoryTime,
kSetExpirationTime,
kSetAlarmValue,
kOutSysStatus, // 0x0E 不能动,因为说明书里面写好了
kGetAlarmValue,
kGetMqVoltage,
kSetSysStatus,
kGetSysStatus,
kEraseRecords,
kGetFactoryTime,
kGetExpirationTime,
} TeFrameC2;
#pragma pack(1)
typedef struct
{
rt_uint8_t year_h;
rt_uint8_t year_l;
rt_uint8_t month;
rt_uint8_t day;
rt_uint8_t hour;
rt_uint8_t minute;
} TsRecordsTime;
#pragma pack()
#pragma pack(1)
typedef struct
{
rt_uint8_t c1;
TeFrameC2 c2;
rt_uint8_t len;
rt_uint8_t data[];
} TsFrameData;
#pragma pack()
#pragma pack(1)
typedef struct
{
rt_uint8_t len;
rt_uint8_t buf[256];
} TsRawFrameData;
#pragma pack()
extern rt_sem_t hr_rx_sem;
int BSP_HR_Init(void);
TsFrameData *HR_GetFrameData(const rt_uint8_t *p_src, const rt_uint8_t src_len);
std_status_t HR_ProcessData(const TsFrameData *pHostFrameData);
uint8_t HR_ProcessData(const TsFrameData *pHostFrameData);
rt_uint8_t HR_ProcessData(const TsFrameData *pHostFrameData);
rt_uint8_t HR_GenerateRawFrame(TsRawFrameData *pRawData, rt_uint8_t c1, TeFrameC2 c2, const rt_uint8_t *p_src, rt_uint8_t src_len);
#endif // !__BSP_HISTORY_H__