修复一些小问题

This commit is contained in:
zhangzheng
2023-10-27 07:43:16 +08:00
parent 20f3c15bf5
commit 1da333503c
6 changed files with 61 additions and 37 deletions

4
.vscode/launch.json vendored
View File

@@ -25,14 +25,10 @@
"executable": "${workspaceFolder}/build/output/kernel.img.out",
"symbolFiles": [
"${workspaceFolder}/build/mkrtos/mkrtos_knl/mkrtos.elf",
// "${workspaceFolder}/build/mkrtos/mkrtos_user/server/app/app.elf",
],
"servertype": "jlink",
"cwd": "${fileDirname}",
// "miDebuggerPath": "/home/zhangzheng/gcc-arm-none-eabi-5_4-2016q3/bin/arm-none-eabi-gdb",
"device": "STM32F103RE",
// "serverpath": "/usr/local/bin/JLinkGDBServerCL",
// "runToMain": true,
"configFiles": [
"interface/jlink.cfg",
"${workspaceFolder}/mkrtos_cfg/stm32f103ret6.cfg",

View File

@@ -8,6 +8,7 @@
#include "u_env.h"
#include "u_sleep.h"
#include "e180-zg120.h"
#include "sysinfo.h"
#include <string.h>
#include <stdio.h>
@@ -336,22 +337,55 @@ static void cmd_local_parse(uint8_t *data)
break;
}
}
#pragma pack(1)
typedef struct dev_info
{
uint16_t head;
uint8_t dev_inx;
uint8_t dev_type;
uint8_t data[0];
} dev_info_t;
static void cmd_zcl_send_parse(uint8_t *data, int len)
{
uapp_sys_info_t *info = &sys_info;
switch (data[0])
{
case 0x0F:
{
printf("==========================================\n");
// printf("==========================================\n");
zcl_request_pack_t *pack = (zcl_request_pack_t *)(data + 1);
int data_len = len - 5 - 1 - sizeof(zcl_request_pack_t);
uint8_t *recv_data = data + 1 + sizeof(zcl_request_pack_t) + 1;
printf("recv data:\n");
print_hex(data + 1 + sizeof(zcl_request_pack_t) + 1, data_len);
printf("==========================================\n");
print_hex(recv_data, data_len);
dev_info_t *dev_info = (dev_info_t *)recv_data;
if (dev_info->head != 0xfffe)
{
break;
}
switch (dev_info->dev_type)
{
case 0: /*温度数据*/
{
int val = (((int *)(dev_info->data))[dev_info->dev_inx]) / 10;
info->zigbee_temp[0] = val;
}
break;
case 1:
{
int *val = (int *)(dev_info->data);
info->noise[dev_info->dev_inx] = val[0] / 10;
info->noise_temp[dev_info->dev_inx] = val[1];
}
break;
}
// printf("==========================================\n");
}
break;
}
@@ -679,7 +713,7 @@ int mod_reset(int reset_mode, uint16_t panid, uint8_t channel)
len = zigbee_gen_pack(data_cache, TYPE_CFG, 0x04, (uint8_t *)(&pack), sizeof(pack));
zigbee_send_bytes(data_cache, len);
wait_pack(100);
wait_pack(500);
queue_t *q = uart4_queue_get();
int ret;
while ((ret = zigbee_pack_get(q, data_cache)) > 0)
@@ -712,7 +746,7 @@ int mod_set_node_type(enum point_type p_type)
len = zigbee_gen_pack(data_cache, TYPE_CFG, 0x05, &p_type, 1);
zigbee_send_bytes(data_cache, len);
wait_pack(100);
wait_pack(500);
queue_t *q = uart4_queue_get();
int ret;
@@ -746,7 +780,7 @@ int mod_start_cfg_net(uint8_t mode)
len = zigbee_gen_pack(data_cache, TYPE_CFG, 0x02, &mode, 1);
zigbee_send_bytes(data_cache, len);
wait_pack(100);
wait_pack(500);
queue_t *q = uart4_queue_get();
int ret;

View File

@@ -2,6 +2,7 @@
#include "u_types.h"
#include "sysinfo.h"
#include "stm32_sys.h"
#include "relay.h"
#include <assert.h>
void relay_init(void)
@@ -23,6 +24,13 @@ void relay_init(void)
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
relay_ctrl(0, 0);
relay_ctrl(1, 0);
relay_ctrl(2, 0);
relay_ctrl(3, 0);
relay_ctrl(4, 0);
relay_ctrl(5, 0);
}
void relay_ctrl(uint8_t index, uint8_t state)
{

View File

@@ -17,6 +17,7 @@ typedef struct
float noise[3];
float noise_temp[3];
uint8_t relay[6];
int zigbee_temp[4];
uint8_t netID;
uint8_t devID;

View File

@@ -13,7 +13,7 @@
#include <stdlib.h>
// 刷新时间
#define HIM_LCD_TIME_100MS 200
#define HIM_LCD_TIME_100MS 500
// LCD串口接收BUF
uint8_t cmd_buffer[CMD_MAX_SIZE]; // 指令缓存
@@ -569,6 +569,10 @@ void UpdateUI(void)
SetSliderValue(0, 39, temp_val);
SetTextInt32(0, 41, (sys_info.noise_temp[2]), 1, 0); // 设置文本值
/*Zigbee温度*/
uapp_sys_info_t *info = &sys_info;
SetTextInt32(0, 64, info->zigbee_temp[0], 1, 0); // 设置文本值
// SetTextInt32(0, 100, ABS(sys_info.noise[0] - sys_info.noise[1]), 1, 0);
timer_tick_last_ui_update = sys_read_tick();

View File

@@ -35,17 +35,13 @@ int main(int argc, char *args[])
printf("argc:%d args[0]:%s\n", argc, args[0]);
u_sleep_ms(100);
drv_init();
// sys_info.devID = 12;
// sys_info_save();
// sys_info.devID = 0;
// assert(sys_info.devID == 12);
ulog_write_str(u_get_global_env()->log_hd, "app start..\n");
relay_test();
// relay_test();
if (mod_send_data(0x10de, 1, 0, 0, "hello world", strlen("hello world")) >= 0)
{
printf("send ok..\n");
}
// if (mod_send_data(0x10de, 1, 0, 0, "hello world", strlen("hello world")) >= 0)
// {
// printf("send ok..\n");
// }
while (1)
{
MDM_RTU_Loop();
@@ -54,22 +50,7 @@ int main(int argc, char *args[])
UpdateUI();
usart2_loop();
io_ctrl_loop();
e180_loop();
// if (uart4_cn > 0)
// {
// print_hex(uart4_data, uart4_cn);
// uart4_cn = 0;
// recv_flags = 0;
// }
// u_sleep_ms(10);
// printf("temp:%f press:%f\n", (sys_info.board_temp), (sys_info.pressure));
// for (int i = 0; i < 4; i++)
// {
// printf("tmp%d:%f\n", i, sys_info.temp[i]);
// }
// usart3_send_string("usart3..\n");
}
return 0;
}