Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Z
Z3dev-AllToOneFanPanel
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
limm
Z3dev-AllToOneFanPanel
Commits
5459550e
Commit
5459550e
authored
Dec 18, 2020
by
limm
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1,修复死机问题改为复位;
2,修复退出老化方式; 3,增加三个设备绑定,解绑操作;
parent
1de4b7b1
Changes
14
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
198 additions
and
177 deletions
+198
-177
Code/海顿-多合一新风面板/APP/User/inc/BL55072A.h
Code/海顿-多合一新风面板/APP/User/inc/BL55072A.h
+1
-1
Code/海顿-多合一新风面板/APP/User/inc/CC2530_transparent_analyze.h
Code/海顿-多合一新风面板/APP/User/inc/CC2530_transparent_analyze.h
+6
-11
Code/海顿-多合一新风面板/APP/User/inc/control_comm.h
Code/海顿-多合一新风面板/APP/User/inc/control_comm.h
+3
-2
Code/海顿-多合一新风面板/APP/User/inc/display_common.h
Code/海顿-多合一新风面板/APP/User/inc/display_common.h
+3
-0
Code/海顿-多合一新风面板/APP/User/inc/hardware_init.h
Code/海顿-多合一新风面板/APP/User/inc/hardware_init.h
+1
-1
Code/海顿-多合一新风面板/APP/User/inc/mfg_factory.h
Code/海顿-多合一新风面板/APP/User/inc/mfg_factory.h
+8
-12
Code/海顿-多合一新风面板/APP/User/src/BL55072A.c
Code/海顿-多合一新风面板/APP/User/src/BL55072A.c
+85
-74
Code/海顿-多合一新风面板/APP/User/src/CC2530_transparent_analyze.c
Code/海顿-多合一新风面板/APP/User/src/CC2530_transparent_analyze.c
+32
-23
Code/海顿-多合一新风面板/APP/User/src/Key.c
Code/海顿-多合一新风面板/APP/User/src/Key.c
+0
-0
Code/海顿-多合一新风面板/APP/User/src/VCNL3040.c
Code/海顿-多合一新风面板/APP/User/src/VCNL3040.c
+4
-3
Code/海顿-多合一新风面板/APP/User/src/ZH_protocol.c
Code/海顿-多合一新风面板/APP/User/src/ZH_protocol.c
+1
-1
Code/海顿-多合一新风面板/APP/User/src/control_comm.c
Code/海顿-多合一新风面板/APP/User/src/control_comm.c
+0
-0
Code/海顿-多合一新风面板/APP/User/src/display_common.c
Code/海顿-多合一新风面板/APP/User/src/display_common.c
+0
-0
Code/海顿-多合一新风面板/APP/User/src/mfg_factort.c
Code/海顿-多合一新风面板/APP/User/src/mfg_factort.c
+54
-49
No files found.
Code/海顿-多合一新风面板/APP/User/inc/BL55072A.h
View file @
5459550e
...
...
@@ -88,7 +88,7 @@ typedef enum{
#define DisplayCharB 0x73 // ???
#define DisplayCharE 0x79 // E
#define DisplayCharF 0x78 // F
#define DisplayCharr 0x
58
// r
#define DisplayCharr 0x
30
// r
#define DisplayCharL 0x51
#define DisplayCharo 0x33
...
...
Code/海顿-多合一新风面板/APP/User/inc/CC2530_transparent_analyze.h
View file @
5459550e
...
...
@@ -28,8 +28,6 @@
#include <stdint.h>
/* Exported macro ------------------------------------------------------------*/
//#define USATR_1_DEBUG 1
#if (USATR_1_DEBUG == 1)
...
...
@@ -68,7 +66,7 @@ typedef enum {TP_ERROR = 0, TP_SUCCESS = !TP_ERROR} TP_ErrorStatus;
#define SOF_LOW_BYTE_DEF 0X55
#define USART_RECIVE_LEN_DEF 40 //串口最多一次接受的数据量
#define USART_RECIVE_DEPTH
5
//缓存的深度
#define USART_RECIVE_DEPTH
3
//缓存的深度
//透传数据接受最大间隔时间,超时未接收到数据,停止一串数据接收
#define DEF_TRANSPARENT_MAXIMUM_INTERVAL 100 //(ms)
...
...
@@ -100,17 +98,14 @@ typedef struct _Recive_usart_data_deal
//homebuf buf缓存
#define _IO volatile
/*!< Defines 'read / write' permissions */
typedef
struct
_Recive_usart_buff
{
TP_u8
Usart_buff
[
USART_RECIVE_DEPTH
][
USART_RECIVE_LEN_DEF
];
//homebus 缓存存放区
TP_u8
Usart_buff_len
[
USART_RECIVE_DEPTH
];
//homebus 缓存区长度
TP_u8
Buff_send_serial_num
;
//BUFF发送序列
TP_u8
Download_serial_num
;
//BUFF缓存序列
TP_u8
Usart_buff
[
USART_RECIVE_DEPTH
][
USART_RECIVE_LEN_DEF
];
//homebus 缓存存放区
_IO
TP_u8
Usart_buff_len
[
USART_RECIVE_DEPTH
];
//homebus 缓存区长度
_IO
TP_u8
Buff_send_serial_num
;
//BUFF发送序列
_IO
TP_u8
Download_serial_num
;
//BUFF缓存序列
}
RECIVE_USART_BUFF
;
//协议中的功能码
...
...
Code/海顿-多合一新风面板/APP/User/inc/control_comm.h
View file @
5459550e
...
...
@@ -106,8 +106,8 @@ extern TIMEING_OPTION _Time_Power_Off;
#define ENABLE_FAST_AGING_TEST 0
#if ENABLE_FAST_AGING_TEST
#define FAST_AGING_STEP1_TIME
60
//1min
#define FAST_AGING_STEP2_TIME
150
//2.5min
#define FAST_AGING_STEP1_TIME
(60)
//1min
#define FAST_AGING_STEP2_TIME
(3*60)
//2.5min
#else
#define FAST_AGING_STEP1_TIME (15*60) //15min
#define FAST_AGING_STEP2_TIME (60*60*4) //4h
...
...
@@ -276,6 +276,7 @@ void delay_operate_calibrate_temper_Task_Stop(void);
void
delay_operate_delay_off_Task_Start
(
void
);
void
delay_operate_delay_off_Task_Stop
(
void
);
void
Reset_DelayOFF_timer
(
u8
device_type
);
void
task_exit_aging_test_start
(
void
);
#define Network_Control(join_or_leave) Send_Device_Data(0,_OPCODE_SET_NET_STATE,&join_or_leave,1)
#define proximity_triagger_report_zigbee() do{ uint8_t res = 1; \
...
...
Code/海顿-多合一新风面板/APP/User/inc/display_common.h
View file @
5459550e
...
...
@@ -54,6 +54,8 @@ typedef struct
u16
screen_save_time
;
//屏保时间 00 代表30
u16
filter_wash_time
;
//滤网清洗时间 3000
u8
no_disturb_mode
;
//勿扰模式 0
u8
air_product_id
;
u8
air_type
;
}
OLED_AIR_DSD
;
typedef
struct
{
...
...
@@ -173,6 +175,7 @@ void delay_confirm_fan_speed(void); //
void
Control_LED_ON_OFF
(
u8
onoff_bits
);
u8
Key_Operate_Config_Operation
(
u8
keyid
,
u8
keyEvent
);
u8
IsLocalConfigMode
(
void
);
u8
kAllLedIsBlinking
(
void
);
void
Display_Up_Contend
(
u8
device_type
);
void
Setup_Mode_Handle
(
void
);
...
...
Code/海顿-多合一新风面板/APP/User/inc/hardware_init.h
View file @
5459550e
...
...
@@ -2,7 +2,7 @@
#define __HARDWARE_INIT_H__
#include "Key.h"
#define Flash_Base_Addr 0x00007
0
00
#define Flash_Base_Addr 0x00007
4
00
#define NO_FMC_WRITE 0xFFFFFFFF
#define OFFSET_ADDR 4
#define BYTE_ADDR 8
...
...
Code/海顿-多合一新风面板/APP/User/inc/mfg_factory.h
View file @
5459550e
...
...
@@ -20,8 +20,8 @@
#define SOF_HIGH_BYTE_DEF 0XAA
#define SOF_LOW_BYTE_DEF 0X55
#define MAX_USART_RECIVE_LEN 5
0
//串口最多一次接受的数据量
#define USART_RECIVE_DEPTHS
5
//缓存的深度
#define MAX_USART_RECIVE_LEN 5
6
//串口最多一次接受的数据量
#define USART_RECIVE_DEPTHS
3
//缓存的深度
...
...
@@ -55,14 +55,10 @@ typedef struct
typedef
struct
{
TP_u8
Usart_buff
[
USART_RECIVE_DEPTH
][
MAX_USART_RECIVE_LEN
];
//homebus 缓存存放区
TP_u8
Usart_buff_len
[
USART_RECIVE_DEPTHS
];
//homebus 缓存区长度
TP_u8
Buff_send_serial_num
;
//BUFF发送序列
TP_u8
Download_serial_num
;
//BUFF缓存序列
TP_u8
Usart_buff
[
USART_RECIVE_DEPTHS
][
MAX_USART_RECIVE_LEN
];
//homebus 缓存存放区
_IO
TP_u8
Usart_buff_len
[
USART_RECIVE_DEPTHS
];
//homebus 缓存区长度
_IO
TP_u8
Buff_send_serial_num
;
//BUFF发送序列
_IO
TP_u8
Download_serial_num
;
//BUFF缓存序列
}
RECIVE_USART_DATA_BUFF
;
//协议中的功能码
typedef
struct
...
...
@@ -85,10 +81,10 @@ typedef struct
void
uart0_data_deal_init
(
void
);
void
uart_msg_deal
(
void
);
void
proximity_triagger_report
(
void
);
u8
Usart_recive_deal
(
TP_uc8
*
data
,
TP_uc
16
len
);
u8
Usart_recive_deal
(
TP_uc8
*
data
,
TP_uc
8
len
);
u8
uart_msg_recive
(
u8
RcvChar
);
void
ack_info
(
PROTOCOL_DEAL
recv_data
,
TP_uc8
*
arg
,
TP_u8
len
);
TP_u16
CreateCrc16_Self
(
const
u8
*
msg
,
TP_u
32
len
)
;
TP_u16
CreateCrc16_Self
(
const
u8
*
msg
,
TP_u
8
len
)
;
static
void
send_crc_error_data
(
TP_u16
seq_data
);
void
uart_protocol_send
(
PROTOCOL_SEND_MSG
send_protocol
,
TP_u16
SEQ
);
#endif
...
...
Code/海顿-多合一新风面板/APP/User/src/BL55072A.c
View file @
5459550e
...
...
@@ -75,6 +75,11 @@ Lcd_Status_Info_t LCDAutoSystemModeSettingIconCTR_t =
u16
guSetLCDShowTime
=
SysLCDShowTimer
;
#if 1 // add by dingmz_frc.20201215
extern
u8
g_u8Temp_Buffer
[];
extern
u8
g_u8Temp_Length
;
#endif
void
PWM_init
(
void
)
{
// PWM0 frequency is 100Hz, duty 30%,
...
...
@@ -102,113 +107,119 @@ u16 GetLCDShowTime( void )
void
BL55072A_Init
(
uint8_t
slaver_addr
,
u32
freq
)
{
u8
err
=
0xff
;
u8
Send_Buffer
[
10
]
=
{
0
};
u8
length
=
0
;
//
u8 Send_Buffer[10] = {0};
//
u8 length = 0;
g_u8slaver_addr
=
slaver_addr
;
I2C_SW_Open
(
freq
);
CLK_SysTickDelay
(
5000
);
//delay 5ms
Send_Buffer
[
length
++
]
=
BL55072A_CMD_APCTL_OFF
;
Send_Buffer
[
length
++
]
=
BL55072A_CMD_MODESET_ON
;
Send_Buffer
[
length
++
]
=
BL55072A_CMD_ICSET_RST
;
Send_Buffer
[
length
++
]
=
BL55072A_CMD_DISCTL_PSM1
;
Send_Buffer
[
length
++
]
=
BL55072A_CMD_ICSET
;
g_u8Temp_Length
=
0
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_APCTL_OFF
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_MODESET_ON
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_ICSET_RST
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_DISCTL_PSM1
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_ICSET
;
err
=
I2C_SW_Send
(
g_u8slaver_addr
,
Send_Buffer
,
l
ength
);
err
=
I2C_SW_Send
(
g_u8slaver_addr
,
g_u8Temp_Buffer
,
g_u8Temp_L
ength
);
printf
(
"Bl55072A init err = (%d),length = (%d)
\r\n
"
,
err
,
length
);
//
printf("Bl55072A init err = (%d),length = (%d)\r\n", err, length);
}
void
BL55072A_DisplayON
(
void
)
{
uint8_t
buffer
[
20
]
=
{
0
};
uint8_t
length
=
0
;
//
uint8_t buffer[20] = {0};
//
uint8_t length = 0;
buffer
[
length
++
]
=
BL55072A_CMD_APCTL_OFF
;
buffer
[
length
++
]
=
BL55072A_CMD_DISCTL_PSM1
;
buffer
[
length
++
]
=
BL55072A_CMD_ICSET
;
buffer
[
length
++
]
=
BL55072A_CMD_BLKCTL_OFF
;
buffer
[
length
++
]
=
0xFC
;
buffer
[
length
++
]
=
BL55072A_CMD_MODESET_ON
&
0x7F
;
g_u8Temp_Length
=
0
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_APCTL_OFF
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_DISCTL_PSM1
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_ICSET
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_BLKCTL_OFF
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0xFC
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_MODESET_ON
&
0x7F
;
I2C_SW_Send
(
g_u8slaver_addr
,
buffer
,
l
ength
);
I2C_SW_Send
(
g_u8slaver_addr
,
g_u8Temp_Buffer
,
g_u8Temp_L
ength
);
//printf("BL55072A Display ON err = (%d),length = (%d)\r\n", err, length);
}
void
BL55072A_Clear
(
void
)
{
uint8_t
buffer
[
20
]
=
{
0
};
uint8_t
length
=
0
;
//
uint8_t buffer[20] = {0};
//
uint8_t length = 0;
buffer
[
length
++
]
=
BL55072A_CMD_DISCTL_PSM1
;
buffer
[
length
++
]
=
BL55072A_CMD_BLKCTL_OFF
;
buffer
[
length
++
]
=
0xFC
;
buffer
[
length
++
]
=
BL55072A_CMD_MODESET_ON
;
buffer
[
length
++
]
=
BL55072A_CMD_ICSET
;
buffer
[
length
++
]
=
BL55072A_CMD_ADSET
;
buffer
[
length
++
]
=
0x00
;
buffer
[
length
++
]
=
0x00
;
buffer
[
length
++
]
=
0x00
;
buffer
[
length
++
]
=
0x00
;
buffer
[
length
++
]
=
0x00
;
buffer
[
length
++
]
=
0x00
;
buffer
[
length
++
]
=
0x00
;
buffer
[
length
++
]
=
0x00
;
buffer
[
length
++
]
=
0x00
;
buffer
[
length
++
]
=
0x00
;
buffer
[
length
++
]
=
0x00
;
buffer
[
length
++
]
=
0x00
;
g_u8Temp_Length
=
0
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_DISCTL_PSM1
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_BLKCTL_OFF
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0xFC
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_MODESET_ON
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_ICSET
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_ADSET
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0x00
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0x00
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0x00
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0x00
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0x00
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0x00
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0x00
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0x00
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0x00
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0x00
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0x00
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0x00
;
I2C_SW_Send
(
g_u8slaver_addr
,
buffer
,
l
ength
);
I2C_SW_Send
(
g_u8slaver_addr
,
g_u8Temp_Buffer
,
g_u8Temp_L
ength
);
//printf("BL55072A Display Test err = (%d),length = (%d)\r\n", err, length);
}
void
BL55072A_DisplayALL
(
void
)
{
u8
Send_Buffer
[
20
]
=
{
0
};
u8
length
=
0
;
//
u8 Send_Buffer[20] = {0};
//
u8 length = 0;
Send_Buffer
[
length
++
]
=
BL55072A_CMD_DISCTL_PSM1
;
Send_Buffer
[
length
++
]
=
BL55072A_CMD_BLKCTL_OFF
;
Send_Buffer
[
length
++
]
=
0xFE
;
Send_Buffer
[
length
++
]
=
BL55072A_CMD_MODESET_ON
;
Send_Buffer
[
length
++
]
=
BL55072A_CMD_ICSET
;
Send_Buffer
[
length
++
]
=
BL55072A_CMD_ADSET
;
Send_Buffer
[
length
++
]
=
0xFF
;
Send_Buffer
[
length
++
]
=
0xFF
;
Send_Buffer
[
length
++
]
=
0xFF
;
Send_Buffer
[
length
++
]
=
0xFF
;
Send_Buffer
[
length
++
]
=
0xFF
;
Send_Buffer
[
length
++
]
=
0xFF
;
Send_Buffer
[
length
++
]
=
0xFF
;
Send_Buffer
[
length
++
]
=
0xFF
;
Send_Buffer
[
length
++
]
=
0xFF
;
Send_Buffer
[
length
++
]
=
0xFF
;
g_u8Temp_Length
=
0
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_DISCTL_PSM1
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_BLKCTL_OFF
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0xFE
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_MODESET_ON
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_ICSET
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
BL55072A_CMD_ADSET
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0xFF
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0xFF
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0xFF
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0xFF
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0xFF
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0xFF
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0xFF
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0xFF
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0xFF
;
g_u8Temp_Buffer
[
g_u8Temp_Length
++
]
=
0xFF
;
I2C_SW_Send
(
g_u8slaver_addr
,
Send_Buffer
,
l
ength
);
I2C_SW_Send
(
g_u8slaver_addr
,
g_u8Temp_Buffer
,
g_u8Temp_L
ength
);
//printf("BL55072A Display Test err = (%d),length = (%d)\r\n", err, length);
}
static
u8
Buffer_Temp
[
5
]
=
{
0
};
u8
BL55072A_ReadByte
(
u8
addr
)
{
u8
buffer
[
4
]
=
{
0
};
u8
length
=
0
;
u8
tmp
;
buffer
[
length
++
]
=
BL55072A_CMD_ICSET
;
buffer
[
length
++
]
=
BL55072A_CMD_ADSET
|
addr
|
0x80
;
//cmd end
I2C_SW_Send
(
g_u8slaver_addr
,
buffer
,
length
);
static
u8
tmp
=
0
;
memset
(
Buffer_Temp
,
0
,
sizeof
(
Buffer_Temp
));
Buffer_Temp
[
0
]
=
BL55072A_CMD_ICSET
;
Buffer_Temp
[
1
]
=
BL55072A_CMD_ADSET
|
addr
|
0x80
;
//cmd end
I2C_SW_Send
(
g_u8slaver_addr
,
Buffer_Temp
,
2
);
I2C_SW_Get_Without_Delay
(
g_u8slaver_addr
,(
u8
*
)
&
tmp
,
1
);
return
(
tmp
&
0xff
);
}
void
BL55072A_DisplayGeneral
(
u8
addr
,
u8
control_bits
,
u8
display_bits
)
{
u8
buffer
[
6
]
=
{
0
};
u8
length
=
0
;
u8
Data
=
0
;
u8
i
=
0
;
u8
tmp
=
BL55072A_ReadByte
(
addr
);
static
u8
Data
=
0
;
static
u8
i
=
0
;
static
u8
tmp
=
0
;
memset
(
Buffer_Temp
,
0
,
sizeof
(
Buffer_Temp
));
i
=
Data
=
0
;
tmp
=
BL55072A_ReadByte
(
addr
);
//printf("BL55072A_DisplayGeneral,Process Before TMP DATA = %x\r\n", tmp);
buffer
[
length
++
]
=
BL55072A_CMD_ICSET
;
buffer
[
length
++
]
=
BL55072A_CMD_ADSET
|
addr
;
//cmd end
Buffer_Temp
[
0
]
=
BL55072A_CMD_ICSET
;
Buffer_Temp
[
1
]
=
BL55072A_CMD_ADSET
|
addr
;
//cmd end
for
(
i
=
0
;
i
<
4
;
i
++
)
{
...
...
@@ -228,8 +239,8 @@ void BL55072A_DisplayGeneral(u8 addr,u8 control_bits,u8 display_bits)
}
tmp
=
((
tmp
&
0x0f
)
|
(
Data
<<
4
)
);
//printf("BL55072A_DisplayGeneral,Process After TMP=%x, DATA = %x\r\n",tmp, Data);
buffer
[
length
++
]
=
tmp
;
//cmd end
I2C_SW_Send
(
g_u8slaver_addr
,
buffer
,
length
);
Buffer_Temp
[
2
]
=
tmp
;
//cmd end
I2C_SW_Send
(
g_u8slaver_addr
,
Buffer_Temp
,
3
);
//printf("BL55072A_DisplayGeneral,err = (%d),length = (%d)\r\n", err, length);
}
...
...
Code/海顿-多合一新风面板/APP/User/src/CC2530_transparent_analyze.c
View file @
5459550e
...
...
@@ -32,7 +32,6 @@ readme: 使
#include "hardware_init.h"
#include "Key.h"
/**************************************************************************************************************
此文件内部使用,不允许外部使用,不用更改
***************************************************************************************************************/
...
...
@@ -44,13 +43,13 @@ static TP_u32 status_check_time = 0x00;
static
void
send_crc_error
(
TP_u16
seq_data
);
static
TP_u8
Usart_recive_write_buff
(
TP_uc8
*
data
,
TP_uc16
len
);
TP_u16
CreateCrc16
(
TP_uc8
*
msg
,
TP_u
32
len
);
TP_u16
CreateCrc16
(
TP_uc8
*
msg
,
TP_u
8
len
);
static
void
(
*
uart_data_send
)(
TP_uc8
*
msg
,
TP_u32
len
);
static
void
(
*
non_permeable_opcode_analysis
)(
PROTOCOL_DEAL
protocol_data
);
static
void
(
*
transparent_opcode_analysis
)(
PROTOCOL_DEAL
protocol_data
);
static
TP_ErrorStatus
transparent_protocol_analysis
(
TP_uc8
*
data
,
TP_uc
32
len
);
static
TP_ErrorStatus
transparent_protocol_analysis
(
TP_uc8
*
data
,
TP_uc
8
len
);
/**************************************************************************************************************
全局变量,用于 transparent_protocol_send
...
...
@@ -67,6 +66,10 @@ const PROTOCOL_SEND opcode_force_assert = {0x00,0x0002,0x10,&opcode_force_assert
//SEQ
TP_u16
tp_report_seq_num
=
0
;
#if 1 // add by dingmz_frc.20201215
extern
u8
g_u8Temp_Buffer
[];
extern
u8
g_u8Temp_Length
;
#endif
#define EXAMPLE
/**************************************************************************************************************
...
...
@@ -346,27 +349,27 @@ void transparent_msg_deal(void)
void
transparent_protocol_send
(
PROTOCOL_SEND
send_protocol
,
TP_u16
SEQ
)
{
static
TP_u8
KK_Buf
[
125
]
=
{
0
};
//
static TP_u8 KK_Buf[125] = {0};
TP_u16
KK_CRC16_Num
=
0
;
//计算校验值
memset
(
KK_Buf
,
0
,
sizeof
(
KK_Buf
));
KK_Buf
[
0
]
=
0xAA
;
KK_Buf
[
1
]
=
0x55
;
KK_Buf
[
2
]
=
send_protocol
.
ARG_len
+
6
;
//长度 7
KK_Buf
[
4
]
=
(
SEQ
&
0xff
);
//序列号L
KK_Buf
[
3
]
=
send_protocol
.
ControlField
;
//控制域: 不需要ack
KK_Buf
[
5
]
=
send_protocol
.
ARG_len
+
3
;
KK_Buf
[
6
]
=
send_protocol
.
Channel_ID
;
//下行协议: 信道00
KK_Buf
[
7
]
=
((
send_protocol
.
Opcode
>>
8
)
&
0xff
);
//下行协议: Opcode_H
KK_Buf
[
8
]
=
(
send_protocol
.
Opcode
&
0xff
);
//下行协议: Opcode_L
memcpy
(
&
KK_Buf
[
9
],
send_protocol
.
ARG
,
send_protocol
.
ARG_len
);
//
memset(KK_Buf,0,sizeof(KK_Buf));
g_u8Temp_Buffer
[
0
]
=
0xAA
;
g_u8Temp_Buffer
[
1
]
=
0x55
;
g_u8Temp_Buffer
[
2
]
=
send_protocol
.
ARG_len
+
6
;
//长度 7
g_u8Temp_Buffer
[
4
]
=
(
SEQ
&
0xff
);
//序列号L
g_u8Temp_Buffer
[
3
]
=
send_protocol
.
ControlField
;
//控制域: 不需要ack
g_u8Temp_Buffer
[
5
]
=
send_protocol
.
ARG_len
+
3
;
g_u8Temp_Buffer
[
6
]
=
send_protocol
.
Channel_ID
;
//下行协议: 信道00
g_u8Temp_Buffer
[
7
]
=
((
send_protocol
.
Opcode
>>
8
)
&
0xff
);
//下行协议: Opcode_H
g_u8Temp_Buffer
[
8
]
=
(
send_protocol
.
Opcode
&
0xff
);
//下行协议: Opcode_L
memcpy
(
&
g_u8Temp_Buffer
[
9
],
send_protocol
.
ARG
,
send_protocol
.
ARG_len
);
//KK_Buf[9] = 0X00;
KK_CRC16_Num
=
CreateCrc16
((
TP_uc8
*
)
&
KK_Buf
[
3
],
KK_Buf
[
2
]);
KK_Buf
[
send_protocol
.
ARG_len
+
9
]
=
(
KK_CRC16_Num
>>
8
)
&
0xff
;
//校验值 CRC_H
KK_Buf
[
send_protocol
.
ARG_len
+
10
]
=
KK_CRC16_Num
&
0xff
;
//校验值 CRC_L
KK_CRC16_Num
=
CreateCrc16
((
TP_uc8
*
)
&
g_u8Temp_Buffer
[
3
],
g_u8Temp_Buffer
[
2
]);
g_u8Temp_Buffer
[
send_protocol
.
ARG_len
+
9
]
=
(
KK_CRC16_Num
>>
8
)
&
0xff
;
//校验值 CRC_H
g_u8Temp_Buffer
[
send_protocol
.
ARG_len
+
10
]
=
KK_CRC16_Num
&
0xff
;
//校验值 CRC_L
uart_data_send
(
KK_Buf
,
send_protocol
.
ARG_len
+
11
);
uart_data_send
(
g_u8Temp_Buffer
,
send_protocol
.
ARG_len
+
11
);
}
...
...
@@ -450,9 +453,15 @@ static TP_u8 Usart_recive_write_buff(TP_uc8 *data,TP_uc16 len)
*******************************************************************************/
//AA 55 07 80 01 04 00 10 11 01 F5 91
//0 1 2 3 4 5 6 7 8 9 10 11
static
TP_ErrorStatus
transparent_protocol_analysis
(
TP_uc8
*
data
,
TP_uc32
len
)
static
TP_ErrorStatus
transparent_protocol_analysis
(
TP_uc8
*
data
,
TP_uc8
len
)
{
PROTOCOL_DEAL
Usart_protocol_deal
=
{
0
};
if
((
data
==
NULL
)
||
(
len
<
5
)
||
(
len
>
USART_RECIVE_LEN_DEF
))
{
//printf("non valied msg,discard it all\r\n");
return
TP_ERROR
;
}
Usart_protocol_deal
.
SEQ
=
*
(
data
+
4
);
//记录 seq 的值
if
(
BYTE_MOVE
(
*
(
data
+
len
-
2
),
*
(
data
+
len
-
1
))
!=
CreateCrc16
(
data
+
3
,
len
-
5
))
//CRC校验
...
...
@@ -501,10 +510,10 @@ static void send_crc_error(TP_u16 seq_data)
/*
接收到的数据crc错误回复
*/
TP_u16
CreateCrc16
(
u8
*
msg
,
TP_u
32
len
)
TP_u16
CreateCrc16
(
u8
*
msg
,
TP_u
8
len
)
{
TP_u16
crc
=
0xFFFF
;
TP_u
32
i
,
j
=
0
;
TP_u
8
i
,
j
=
0
;
for
(
i
=
0
;
i
<
len
;
i
++
)
{
...
...
Code/海顿-多合一新风面板/APP/User/src/Key.c
View file @
5459550e
This diff is collapsed.
Click to expand it.
Code/海顿-多合一新风面板/APP/User/src/VCNL3040.c
View file @
5459550e
...
...
@@ -26,8 +26,9 @@ void VCNL3040_Init(u8 i2cAddress)
}
static
u32
VCNL3040_WriteCommand
(
ECommand_ID
command
,
u16
Data
)
{
u32
error
=
0
;
// error code
u8
cmd_buf
[
4
]
=
{
0
};
static
u32
error
=
0
;
// error code
static
u8
cmd_buf
[
4
]
=
{
0
};
error
=
0
;
cmd_buf
[
0
]
=
command
;
cmd_buf
[
1
]
=
Data
;
cmd_buf
[
2
]
=
Data
>>
8
;
...
...
@@ -37,7 +38,7 @@ static u32 VCNL3040_WriteCommand(ECommand_ID command,u16 Data)
}
u16
VCNL3040_ReadBytes
(
ECommand_ID
command
)
{
u8
cmd_buf
[
4
]
=
{
0
};
static
u8
cmd_buf
[
4
]
=
{
0
};
cmd_buf
[
0
]
=
command
;
I2C_SW_Send_Without_Stop
(
_VCNL3040_Addr
,
cmd_buf
,
1
);
memset
(
cmd_buf
,
0
,
sizeof
(
cmd_buf
));
...
...
Code/海顿-多合一新风面板/APP/User/src/ZH_protocol.c
View file @
5459550e
...
...
@@ -99,7 +99,7 @@ static void send_temperature(uint8_t state)
static
void
send_poll_check
(
void
)
{
uint8_t
data
[
FRAME_LEN
]
=
{
0x01
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
};
static
uint8_t
data
[
FRAME_LEN
]
=
{
0x01
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
};
data
[
9
]
=
CRC_check
(
data
,
9
);
...
...
Code/海顿-多合一新风面板/APP/User/src/control_comm.c
View file @
5459550e
This diff is collapsed.
Click to expand it.
Code/海顿-多合一新风面板/APP/User/src/display_common.c
View file @
5459550e
This diff is collapsed.
Click to expand it.
Code/海顿-多合一新风面板/APP/User/src/mfg_factort.c
View file @
5459550e
...
...
@@ -11,6 +11,11 @@ extern u8 boad_test_falg[6];
u16
g_u16
=
0
;
#if 1 // add by dingmz_frc.20201215
extern
u8
g_u8Temp_Buffer
[];
extern
u8
g_u8Temp_Length
;
#endif
void
uart0_data_deal_init
(
void
)
{
memset
(
&
static_transparent_msg_info
,
0
,
sizeof
(
RECIVE_USART_DATA_HANDLE
));
...
...
@@ -19,30 +24,26 @@ void uart0_data_deal_init(void)
static
TP_u8
uart_recive_write_buff
(
TP_uc8
*
data
,
TP_uc16
len
)
{
TP_u8
rem_serial
=
0
;
if
(
len
>
USART_RECIVE_LEN_DEF
)
{
//DEBUG_USATR1("data too long");
return
0
;
}
rem_serial
=
static_transprent_buff
.
Download_serial_num
;
if
(
static_transprent_buff
.
Download_serial_num
>
(
USART_RECIVE_DEPTHS
-
1
))
{
static_transprent_buff
.
Download_serial_num
=
0
;
if
(
len
<=
MAX_USART_RECIVE_LEN
)
{
rem_serial
=
static_transprent_buff
.
Download_serial_num
;
if
(
static_transprent_buff
.
Download_serial_num
>
(
USART_RECIVE_DEPTHS
-
1
))
{
static_transprent_buff
.
Download_serial_num
=
0
;
rem_serial
=
static_transprent_buff
.
Download_serial_num
;
//add by YWQ
}
rem_serial
=
static_transprent_buff
.
Download_serial_num
;
//add by YWQ
}
memcpy
(
&
static_transprent_buff
.
Usart_buff
[
rem_serial
][
0
],
data
,
len
);
static_transprent_buff
.
Usart_buff_len
[
static_transprent_buff
.
Download_serial_num
]
=
len
;
static_transprent_buff
.
Download_serial_num
++
;
if
(
static_transprent_buff
.
Download_serial_num
==
static_transprent_buff
.
Buff_send_serial_num
)
{
//printf("data deal too slow");
static_transprent_buff
.
Download_serial_num
=
rem_serial
;
return
0
;
memcpy
(
&
static_transprent_buff
.
Usart_buff
[
rem_serial
][
0
],
data
,
len
);
static_transprent_buff
.
Usart_buff_len
[
static_transprent_buff
.
Download_serial_num
]
=
len
;
static_transprent_buff
.
Download_serial_num
++
;
if
(
static_transprent_buff
.
Download_serial_num
==
static_transprent_buff
.
Buff_send_serial_num
)
{
//printf("data deal too slow");
static_transprent_buff
.
Download_serial_num
=
rem_serial
;
return
0
;
}
}
return
1
;
...
...
@@ -66,7 +67,7 @@ u8 uart_msg_recive(u8 RcvChar)
}
else
if
(
static_transparent_msg_info
.
Recive_len
==
3
)
{
if
((
RcvChar
<
(
USART_RECIVE_LEN_DEF
-
5
))
&&
(
RcvChar
>
4
))
//长度在正常值之间
if
((
RcvChar
<
(
MAX_USART_RECIVE_LEN
-
5
))
&&
(
RcvChar
>
4
))
//长度在正常值之间
{
static_transparent_msg_info
.
Data
[
static_transparent_msg_info
.
Recive_len
++
]
=
RcvChar
;
static_transparent_msg_info
.
Data_len
=
RcvChar
;
...
...
@@ -76,7 +77,7 @@ u8 uart_msg_recive(u8 RcvChar)
static_transparent_msg_info
.
Recive_len
=
0x00
;
//这串数据不对
}
}
else
if
((
static_transparent_msg_info
.
Recive_len
>
3
)
&&
(
static_transparent_msg_info
.
Recive_len
<
(
USART_RECIVE_LEN_DEF
-
2
)))
//接受数据
else
if
((
static_transparent_msg_info
.
Recive_len
>
3
)
&&
(
static_transparent_msg_info
.
Recive_len
<
(
MAX_USART_RECIVE_LEN
-
2
)))
//接受数据
{
static_transparent_msg_info
.
Data
[
static_transparent_msg_info
.
Recive_len
++
]
=
RcvChar
;
...
...
@@ -102,7 +103,7 @@ void uart_msg_deal(void)
if
(
static_transprent_buff
.
Buff_send_serial_num
!=
static_transprent_buff
.
Download_serial_num
)
{
if
(
static_transprent_buff
.
Buff_send_serial_num
>
5
)
if
(
(
static_transprent_buff
.
Buff_send_serial_num
>
USART_RECIVE_DEPTHS
)
||
(
static_transprent_buff
.
Download_serial_num
>
USART_RECIVE_DEPTHS
)
)
{
return
;
//防止内存溢出导致错误值
}
...
...
@@ -117,15 +118,19 @@ void uart_msg_deal(void)
static_transprent_buff
.
Buff_send_serial_num
++
;
}
}
u8
Usart_recive_deal
(
TP_uc8
*
data
,
TP_uc16
len
)
u8
Usart_recive_deal
(
TP_uc8
*
data
,
TP_uc8
len
)
{
PROTOCOL_DEAL
Usart_protocol_deal
=
{
0
};
u8
arg_data
[
20
]
=
{
0
};
if
(
(
data
==
NULL
)
||
(
len
>
40
))
//printf("66:len = %d\r\n", len);
if
((
data
==
NULL
)
||
(
len
<
6
)
||
(
len
>
MAX_USART_RECIVE_LEN
))
{
//printf("non valied msg,discard it all\r\n");
return
0
;
return
DEAL_ERROR
;
}
//printf("77\r\n");
Usart_protocol_deal
.
SEQ
=
BYTE_MOVE
(
*
(
data
+
5
),
*
(
data
+
6
));
// for(i = 0;i<len;i++)
// printf("data[%d] = %x",i,data[i] );
...
...
@@ -135,7 +140,7 @@ u8 Usart_recive_deal(TP_uc8 *data,TP_uc16 len)
send_crc_error_data
(
Usart_protocol_deal
.
SEQ
);
return
DEAL_ERROR
;
}
Usart_protocol_deal
.
Opcode
=
BYTE_MOVE
(
*
(
data
+
9
),
*
(
data
+
10
));
//赋值功能码
Usart_protocol_deal
.
Channel_ID
=
*
(
data
+
8
);
Usart_protocol_deal
.
ControlField
=
0x20
;
...
...
@@ -257,30 +262,30 @@ void proximity_triagger_report(void)
void
uart_protocol_send
(
PROTOCOL_SEND_MSG
send_protocol
,
TP_u16
SEQ
)
{
TP_u8
KK_Buf
[
125
]
=
{
0
};
//
TP_u8 KK_Buf[125] = {0};
TP_u16
KK_CRC16_Num
=
0
;
//计算校验值
memset
(
KK_Buf
,
0
,
sizeof
(
KK_Buf
));
KK_Buf
[
0
]
=
0xAA
;
KK_Buf
[
1
]
=
0x55
;
KK_Buf
[
2
]
=
(
send_protocol
.
ARG_len
+
7
)
>>
8
;
//长度 7
KK_Buf
[
3
]
=
(
send_protocol
.
ARG_len
+
7
)
&
0xff
;
//长度 7
KK_Buf
[
5
]
=
(
SEQ
>>
8
)
&
0xff
;
//序列号H
KK_Buf
[
6
]
=
(
SEQ
&
0xff
);
//序列号L
KK_Buf
[
4
]
=
send_protocol
.
ControlField
;
//控制域: 不需要ack
//
memset(KK_Buf,0,sizeof(KK_Buf));
g_u8Temp_Buffer
[
0
]
=
0xAA
;
g_u8Temp_Buffer
[
1
]
=
0x55
;
g_u8Temp_Buffer
[
2
]
=
(
send_protocol
.
ARG_len
+
7
)
>>
8
;
//长度 7
g_u8Temp_Buffer
[
3
]
=
(
send_protocol
.
ARG_len
+
7
)
&
0xff
;
//长度 7
g_u8Temp_Buffer
[
5
]
=
(
SEQ
>>
8
)
&
0xff
;
//序列号H
g_u8Temp_Buffer
[
6
]
=
(
SEQ
&
0xff
);
//序列号L
g_u8Temp_Buffer
[
4
]
=
send_protocol
.
ControlField
;
//控制域: 不需要ack
KK_Buf
[
7
]
=
send_protocol
.
ARG_len
+
3
;
//长度
KK_Buf
[
8
]
=
send_protocol
.
Channel_ID
;
//下行协议: 信道00
KK_Buf
[
9
]
=
((
send_protocol
.
Opcode
>>
8
)
&
0xff
);
//下行协议: Opcode_H
KK_Buf
[
10
]
=
(
send_protocol
.
Opcode
&
0xff
);
//下行协议: Opcode_L
memcpy
(
&
KK_Buf
[
11
],
send_protocol
.
ARG
,
send_protocol
.
ARG_len
);
g_u8Temp_Buffer
[
7
]
=
send_protocol
.
ARG_len
+
3
;
//长度
g_u8Temp_Buffer
[
8
]
=
send_protocol
.
Channel_ID
;
//下行协议: 信道00
g_u8Temp_Buffer
[
9
]
=
((
send_protocol
.
Opcode
>>
8
)
&
0xff
);
//下行协议: Opcode_H
g_u8Temp_Buffer
[
10
]
=
(
send_protocol
.
Opcode
&
0xff
);
//下行协议: Opcode_L
memcpy
(
&
g_u8Temp_Buffer
[
11
],
send_protocol
.
ARG
,
send_protocol
.
ARG_len
);
//KK_Buf[9] = 0X00;
KK_CRC16_Num
=
CreateCrc16_Self
((
TP_uc8
*
)
&
KK_Buf
[
4
],
send_protocol
.
ARG_len
+
7
);
KK_Buf
[
send_protocol
.
ARG_len
+
11
]
=
(
KK_CRC16_Num
>>
8
)
&
0xff
;
//校验值 CRC_H
KK_Buf
[
send_protocol
.
ARG_len
+
12
]
=
KK_CRC16_Num
&
0xff
;
//校验值 CRC_L
KK_CRC16_Num
=
CreateCrc16_Self
((
TP_uc8
*
)
&
g_u8Temp_Buffer
[
4
],
send_protocol
.
ARG_len
+
7
);
g_u8Temp_Buffer
[
send_protocol
.
ARG_len
+
11
]
=
(
KK_CRC16_Num
>>
8
)
&
0xff
;
//校验值 CRC_H
g_u8Temp_Buffer
[
send_protocol
.
ARG_len
+
12
]
=
KK_CRC16_Num
&
0xff
;
//校验值 CRC_L
UART0_Send_Bytes
(
KK_Buf
,
send_protocol
.
ARG_len
+
13
);
UART0_Send_Bytes
(
g_u8Temp_Buffer
,
send_protocol
.
ARG_len
+
13
);
}
/*
接收到的数据crc错误回复
...
...
@@ -305,7 +310,7 @@ static void send_crc_error_data(TP_u16 seq_data)
/*
接收到的数据crc错误回复
*/
TP_u16
CreateCrc16_Self
(
const
u8
*
msg
,
TP_u
32
len
)
TP_u16
CreateCrc16_Self
(
const
u8
*
msg
,
TP_u
8
len
)
{
TP_u16
crc
=
0xFFFF
;
TP_u32
i
,
j
=
0
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment