2024-08-31 10:27:58 +08:00
|
|
|
|
/*
|
|
|
|
|
* @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__
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-31 10:27:58 +08:00
|
|
|
|
#include "rtthread.h"
|
|
|
|
|
#include "rtdef.h"
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
2024-08-31 10:27:58 +08:00
|
|
|
|
#define HR_THREAD_STACK_SIZE (1536)
|
|
|
|
|
#define HR_THREAD_PRIORITY (10)
|
|
|
|
|
#define HR_THREAD_TIMESLICE (5)
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
|
|
|
|
|
2024-08-31 10:27:58 +08:00
|
|
|
|
/*一组数据帧:帧头(1字节) + 控制码(2字节) + 帧长度(1字节) + 数据(n字节) + 校验码 + 帧尾(1字节)*/
|
|
|
|
|
/*帧头:0xAA*/
|
|
|
|
|
/*帧尾:0x55*/
|
|
|
|
|
/*控制码:帧类型*/
|
|
|
|
|
/*帧长度:数据域长度*/
|
|
|
|
|
/*数据域:数据*/
|
|
|
|
|
/*校验码:数据域的校验和*/
|
|
|
|
|
#define FRAME_HEADER (0xAA)
|
|
|
|
|
#define FRAME_TAIL (0x55)
|
|
|
|
|
#define HOST_FRAME_MIN_LEN (6U)
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
2024-09-02 15:12:26 +08:00
|
|
|
|
#define FRAME_DATA_LEN (7U)
|
2024-08-31 10:27:58 +08:00
|
|
|
|
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,
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
2024-08-31 10:27:58 +08:00
|
|
|
|
// 以下是在国标原基础上所扩展的
|
|
|
|
|
kGetCurrentTimeSecond, // include second
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
2024-08-31 10:27:58 +08:00
|
|
|
|
kSetCurrentTime,
|
|
|
|
|
kSetFactoryTime,
|
|
|
|
|
kSetExpirationTime,
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
2024-08-31 10:27:58 +08:00
|
|
|
|
kSetAlarmValue,
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
2024-08-31 10:27:58 +08:00
|
|
|
|
kOutSysStatus, // 0x0E 不能动,因为说明书里面写好了
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
2024-08-31 10:27:58 +08:00
|
|
|
|
kGetAlarmValue,
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
2024-08-31 10:27:58 +08:00
|
|
|
|
kGetMqVoltage,
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
2024-08-31 10:27:58 +08:00
|
|
|
|
kSetSysStatus,
|
|
|
|
|
kGetSysStatus,
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
2024-08-31 10:27:58 +08:00
|
|
|
|
kEraseRecords,
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
2024-08-31 10:27:58 +08:00
|
|
|
|
kGetFactoryTime,
|
|
|
|
|
kGetExpirationTime,
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
2024-08-31 10:27:58 +08:00
|
|
|
|
// kGetEsig,
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
2024-08-31 10:27:58 +08:00
|
|
|
|
kReboot,
|
|
|
|
|
} TeFrameC2;
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
2024-09-02 15:12:26 +08:00
|
|
|
|
#pragma pack(1)
|
|
|
|
|
typedef struct
|
2024-08-31 10:27:58 +08:00
|
|
|
|
{
|
|
|
|
|
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;
|
2024-09-02 15:12:26 +08:00
|
|
|
|
#pragma pack()
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
2024-09-02 15:12:26 +08:00
|
|
|
|
#pragma pack(1)
|
|
|
|
|
typedef struct
|
2024-08-31 10:27:58 +08:00
|
|
|
|
{
|
|
|
|
|
rt_uint8_t c1;
|
|
|
|
|
TeFrameC2 c2;
|
|
|
|
|
rt_uint8_t len;
|
|
|
|
|
rt_uint8_t data[];
|
|
|
|
|
} TsFrameData;
|
2024-09-02 15:12:26 +08:00
|
|
|
|
#pragma pack()
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
2024-09-02 15:12:26 +08:00
|
|
|
|
#pragma pack(1)
|
|
|
|
|
typedef struct
|
2024-08-31 10:27:58 +08:00
|
|
|
|
{
|
|
|
|
|
rt_uint8_t len;
|
|
|
|
|
rt_uint8_t buf[256];
|
|
|
|
|
} TsRawFrameData;
|
2024-09-02 15:12:26 +08:00
|
|
|
|
#pragma pack()
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-31 10:27:58 +08:00
|
|
|
|
extern rt_sem_t hr_rx_sem;
|
|
|
|
|
int BSP_HR_Init(void);
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
2024-08-31 14:50:41 +08:00
|
|
|
|
// 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);
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
2024-08-31 14:50:41 +08:00
|
|
|
|
// rt_uint8_t HR_GenerateRawFrame(TsRawFrameData *pRawData, rt_uint8_t c1, TeFrameC2 c2, const rt_uint8_t *p_src, rt_uint8_t src_len);
|
2024-08-23 11:16:27 +08:00
|
|
|
|
|
2024-08-31 10:27:58 +08:00
|
|
|
|
#endif // !__BSP_HISTORY_H__
|