[Upload Code]:Add Mattress Com Message
This commit is contained in:
parent
e6b87cf8bc
commit
ca2eb69045
@ -57,6 +57,7 @@
|
||||
| 2025-05-16 | 更换芯片STM32F405 | 重新构建 |
|
||||
| 2025-05-19 | AI算法融合完毕,验证数据集可行 | 文件更新 |
|
||||
| 2025-05-20 | 新建AI线程 算法功能验证完成 修改串口 | 线程增加 |
|
||||
| | 增加床垫部分的协议 | |
|
||||
|
||||
---
|
||||
|
||||
|
3
XM-01/.vscode/settings.json
vendored
3
XM-01/.vscode/settings.json
vendored
@ -4,6 +4,7 @@
|
||||
"myedge_ai_app.h": "c",
|
||||
"app_x-cube-ai.h": "c",
|
||||
"usart.h": "c",
|
||||
"main.h": "c"
|
||||
"main.h": "c",
|
||||
"mymattress_ctrl.h": "c"
|
||||
}
|
||||
}
|
@ -42,6 +42,8 @@ extern "C"
|
||||
float ai_output[3]; // 结果数组
|
||||
} model_t;
|
||||
|
||||
extern model_t model;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
56
XM-01/Core/Inc/myMattress_ctrl.h
Normal file
56
XM-01/Core/Inc/myMattress_ctrl.h
Normal file
@ -0,0 +1,56 @@
|
||||
#ifndef MYMATTRESS_CTRL_H
|
||||
#define MYMATTRESS_CTRL_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
#include "main.h"
|
||||
|
||||
|
||||
/*
|
||||
* 数据包格式说明(十六进制表示):
|
||||
*
|
||||
* ┌────────┬─────┬────────────────────────────┬────────────┬────────┬──────┬───────┐
|
||||
* │ 0xAA │ LEN │ 0x01 ~ 0x06 │ STATUS │ p1~p12 │ CRC │ 0D 0A │
|
||||
* └────────┴─────┴────────────────────────────┴────────────┴────────┴──────┴───────┘
|
||||
* ↑ ↑ ↑ ↑ ↑ ↑ ↑
|
||||
* 起始字节 数据长度 设备标识(6字节) 状态位 12字节参数 CRC校验 尾部结束符
|
||||
*
|
||||
* 字段说明:
|
||||
* 0xAA :帧头,固定为 0xAA
|
||||
* LEN :总数据长度 全部数据
|
||||
* 0x01~0x06 :设备地址/ID(共6字节)
|
||||
* STATUS :状态码(功能/命令编号)
|
||||
* p1~p12 :参数字段(此处均为 0x00,共12字节)
|
||||
* CRC :CRC16-Modbus 校验码(高字节在前,低字节在后)起始字节 ~ 数据区
|
||||
* 0x0D 0x0A :帧尾,表示结束
|
||||
*
|
||||
* 示例数据帧(全部字段展开):
|
||||
* AA | 19 | 01 02 03 04 05 06 | XX | 00 00 00 00 00 00 00 00 00 00 00 00 | CRC_H CRC_L | 0D 0A
|
||||
*
|
||||
* 说明:
|
||||
* - XX 为具体的状态码(例如 0xA1 表示防褥疮模式等)
|
||||
* - CRC_H CRC_L 由 CRC16-Modbus 算法计算得出
|
||||
*/
|
||||
|
||||
|
||||
|
||||
// Mattress control modes
|
||||
#define MODE_MANUAL 0xA0 // 手动压力控制
|
||||
#define MODE_PREVENTION 0xA1 // 防褥疮
|
||||
#define MODE_ADAPTIVE 0xA2 // 自适应模式
|
||||
#define MODE_ABAB 0xA3 // ABAB 交替充放气
|
||||
#define MODE_TURNING 0xA4 // 左右翻身
|
||||
#define MODE_FLOATING 0xA5 // 悬浮模式
|
||||
|
||||
// Softness settings
|
||||
#define SOFTNESS_SOFT 0xB1 // 软
|
||||
#define SOFTNESS_MEDIUM 0xB2 // 中
|
||||
#define SOFTNESS_HARD 0xB3 // 硬
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // MYEDGE_AI_APP_H
|
@ -167,12 +167,12 @@ int AiModel(uint8_t *input)
|
||||
}
|
||||
res = predicted_class;
|
||||
model.result = predicted_class;
|
||||
model.confidence = max_confidence;
|
||||
model.status = AI_STATUS_COMPLETED;
|
||||
model.confidence = max_confidence * 100.0f;
|
||||
// Map class to posture name for debugging
|
||||
const char *posture_names[] = {"Supine", "Left Side", "Right Side"};
|
||||
rt_kprintf("Detected posture: %s (confidence: %d%%)\n",
|
||||
posture_names[predicted_class], (int)(model.confidence * 100.0f));
|
||||
posture_names[predicted_class], (int)(model.confidence));
|
||||
rt_memcpy(model.ai_output, aiOutData, sizeof(aiOutData));
|
||||
return res;
|
||||
}
|
||||
|
188
XM-01/Core/Src/myMattress_ctrl.c
Normal file
188
XM-01/Core/Src/myMattress_ctrl.c
Normal file
@ -0,0 +1,188 @@
|
||||
#include "myMattress_ctrl.h"
|
||||
#include "myEdge_ai_app.h"
|
||||
#include < rtthread.h>
|
||||
|
||||
/**
|
||||
* 计算 Modbus CRC16 校验值
|
||||
* @param data 指向数据的指针
|
||||
* @param length 数据长度(字节数)
|
||||
* @return 16位 CRC 值(低字节在前)
|
||||
*/
|
||||
uint16_t crc16_modbus(const uint8_t *data, uint16_t length)
|
||||
{
|
||||
uint16_t crc = 0xFFFF;
|
||||
|
||||
for (uint16_t i = 0; i < length; i++)
|
||||
{
|
||||
crc ^= data[i]; // 将数据字节与 CRC 的低字节异或
|
||||
for (uint8_t j = 0; j < 8; j++)
|
||||
{
|
||||
if (crc & 0x0001)
|
||||
crc = (crc >> 1) ^ 0xA001; // 多项式为 0xA001(即 0x8005 反转)
|
||||
else
|
||||
crc >>= 1;
|
||||
}
|
||||
}
|
||||
|
||||
return crc;
|
||||
}
|
||||
/**
|
||||
* Send command to the mattress controller
|
||||
*/
|
||||
bool send_mattress_command(uint8_t mode_byte, uint8_t *args, size_t args_length)
|
||||
{
|
||||
rt_uint8_t len = 0;
|
||||
uint16_t crc16 = 0;
|
||||
// Create command packet
|
||||
uint8_t packet[20]; // Allocate enough space for command
|
||||
size_t packet_index = 0;
|
||||
|
||||
// Start byte
|
||||
packet[packet_index++] = 0xAA;
|
||||
|
||||
// Add Length
|
||||
len = 1 + 1 + 6 + 13 + 2 + 2;
|
||||
packet[packet_index++] = len;
|
||||
|
||||
// Add ID bytes
|
||||
for (int i = 1; i < 7; i++)
|
||||
{
|
||||
packet[packet_index++] = i;
|
||||
}
|
||||
|
||||
// Mode byte
|
||||
packet[packet_index++] = mode_byte;
|
||||
|
||||
// Parameter bytes
|
||||
for (size_t i = 0; i < args_length; i++)
|
||||
{
|
||||
packet[packet_index++] = args[i];
|
||||
}
|
||||
|
||||
// CRC16 增加
|
||||
crc16 = crc16_modbus(packet, (1 + 1 + 6 + 13));
|
||||
packet[packet_index++] = crc16 >> 8;
|
||||
packet[packet_index++] = crc16 & 0xff;
|
||||
|
||||
// End byte
|
||||
packet[packet_index++] = 0x0D;
|
||||
packet[packet_index++] = 0x0A;
|
||||
|
||||
rt_kprintf("--------------------------------\n");
|
||||
for (int i = 0; i < packet_index; i++)
|
||||
rt_kprintf("packet[%d] = %x\n", i, packet[i]);
|
||||
return true;
|
||||
|
||||
// Send packet
|
||||
// TODO:增加串口发送
|
||||
}
|
||||
/// @brief 漂浮模式
|
||||
/// @param duration_sec
|
||||
/// @return 成功 失败
|
||||
int run_floating_mode(void)
|
||||
{
|
||||
if (!(model.status == AI_STATUS_COMPLETED && model.result == POSTURE_SUPINE && model.confidence >= 70.0f))
|
||||
{
|
||||
return 0; // 条件不满足
|
||||
}
|
||||
// 发送“漂浮模式”指令
|
||||
uint8_t parm[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
return send_mattress_command(MODE_FLOATING, parm, 12);
|
||||
}
|
||||
|
||||
/// @brief 翻转模式
|
||||
/// @param duration_sec
|
||||
/// @return 成功 失败
|
||||
int run_turning_cycle(void)
|
||||
{
|
||||
if (!(model.status == AI_STATUS_COMPLETED && model.result == POSTURE_SUPINE && model.confidence >= 70.0f))
|
||||
{
|
||||
return 0; // 条件不满足
|
||||
}
|
||||
// 发送 MODE_TURNING 命令
|
||||
uint8_t parm[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
return send_mattress_command(MODE_TURNING, parm, 12);
|
||||
}
|
||||
|
||||
/// @brief 运行防褥疮模式
|
||||
/// @return 1=成功,0=失败
|
||||
int run_prevention_mode(void)
|
||||
{
|
||||
uint8_t parm[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
return send_mattress_command(MODE_PREVENTION, parm, 12);
|
||||
}
|
||||
|
||||
/// @brief 运行 ABAB 交替充气循环
|
||||
/// @return 1=成功,0=失败
|
||||
int run_abab_cycle(void)
|
||||
{
|
||||
uint8_t parm[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
return send_mattress_command(MODE_ABAB, parm, 12);
|
||||
}
|
||||
|
||||
/// @brief 运行自适应模式
|
||||
/// @return 1=成功,0=失败
|
||||
int run_adaptive_mode(void)
|
||||
{
|
||||
uint8_t parm[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
return send_mattress_command(MODE_ADAPTIVE, parm, 12);
|
||||
}
|
||||
|
||||
/// @brief 设置床垫软模式
|
||||
/// @return 1=成功,0=失败
|
||||
int run_soft_mode(void)
|
||||
{
|
||||
uint8_t parm[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
return send_mattress_command(SOFTNESS_SOFT, parm, 12);
|
||||
}
|
||||
|
||||
/// @brief 设置床垫中等模式
|
||||
/// @return 1=成功,0=失败
|
||||
int run_medium_mode(void)
|
||||
{
|
||||
uint8_t parm[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
return send_mattress_command(SOFTNESS_MEDIUM, parm, 12);
|
||||
}
|
||||
|
||||
/// @brief 设置床垫硬模式
|
||||
/// @return 1=成功,0=失败
|
||||
int run_hard_mode(void)
|
||||
{
|
||||
uint8_t parm[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
return send_mattress_command(SOFTNESS_HARD, parm, 12);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/* 定义线程栈与控制块(静态分配) */
|
||||
#define REMOTE_THREAD_STACK_SIZE 1024
|
||||
static struct rt_thread remote_thread;
|
||||
static rt_uint8_t remote_thread_stack[REMOTE_THREAD_STACK_SIZE];
|
||||
|
||||
/* 线程入口函数 */
|
||||
static void remote_thread_entry(void *parameter)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
// 等待接收433数据
|
||||
// 如果接收到执行相关指令
|
||||
rt_thread_mdelay(100); // 可调整周期
|
||||
}
|
||||
}
|
||||
|
||||
/* 初始化函数,使用静态线程启动遥控处理 */
|
||||
int remote_thread_init(void)
|
||||
{
|
||||
rt_thread_init(&remote_thread, // 线程控制块
|
||||
"remote_task", // 名称
|
||||
remote_thread_entry, // 入口函数
|
||||
RT_NULL, // 参数
|
||||
&remote_thread_stack[0], // 栈起始地址
|
||||
sizeof(remote_thread_stack), // 栈大小
|
||||
18, // 优先级(比 ai_thread 高一点)
|
||||
10); // 时间片
|
||||
rt_thread_startup(&remote_thread); // 启动线程
|
||||
return 0;
|
||||
}
|
||||
INIT_APP_EXPORT(remote_thread_init); // 启动自动初始化
|
File diff suppressed because one or more lines are too long
@ -311,6 +311,18 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>8</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Core\Src\myMattress_ctrl.c</PathWithFileName>
|
||||
<FilenameWithoutPath>myMattress_ctrl.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
@ -321,7 +333,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>8</FileNumber>
|
||||
<FileNumber>9</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -333,7 +345,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>9</FileNumber>
|
||||
<FileNumber>10</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -345,7 +357,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>10</FileNumber>
|
||||
<FileNumber>11</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -357,7 +369,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>11</FileNumber>
|
||||
<FileNumber>12</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -369,7 +381,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>12</FileNumber>
|
||||
<FileNumber>13</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -381,7 +393,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>13</FileNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -393,7 +405,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -405,7 +417,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -417,7 +429,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -429,7 +441,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -441,7 +453,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -453,7 +465,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -465,7 +477,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -477,7 +489,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileNumber>22</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -497,7 +509,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>22</FileNumber>
|
||||
<FileNumber>23</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -517,7 +529,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>23</FileNumber>
|
||||
<FileNumber>24</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -529,7 +541,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>24</FileNumber>
|
||||
<FileNumber>25</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -549,7 +561,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>25</FileNumber>
|
||||
<FileNumber>26</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -561,7 +573,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>26</FileNumber>
|
||||
<FileNumber>27</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -573,7 +585,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>27</FileNumber>
|
||||
<FileNumber>28</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -585,7 +597,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>28</FileNumber>
|
||||
<FileNumber>29</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -597,7 +609,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>29</FileNumber>
|
||||
<FileNumber>30</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -609,7 +621,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>30</FileNumber>
|
||||
<FileNumber>31</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -621,7 +633,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>31</FileNumber>
|
||||
<FileNumber>32</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -633,7 +645,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>32</FileNumber>
|
||||
<FileNumber>33</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -645,7 +657,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>33</FileNumber>
|
||||
<FileNumber>34</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -657,7 +669,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>34</FileNumber>
|
||||
<FileNumber>35</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -677,7 +689,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>35</FileNumber>
|
||||
<FileNumber>36</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -697,7 +709,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>36</FileNumber>
|
||||
<FileNumber>37</FileNumber>
|
||||
<FileType>4</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -725,7 +737,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>37</FileNumber>
|
||||
<FileNumber>38</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -737,7 +749,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>38</FileNumber>
|
||||
<FileNumber>39</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -749,7 +761,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>39</FileNumber>
|
||||
<FileNumber>40</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -761,7 +773,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>40</FileNumber>
|
||||
<FileNumber>41</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -773,7 +785,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>41</FileNumber>
|
||||
<FileNumber>42</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -793,7 +805,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>11</GroupNumber>
|
||||
<FileNumber>42</FileNumber>
|
||||
<FileNumber>43</FileNumber>
|
||||
<FileType>2</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -805,7 +817,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>11</GroupNumber>
|
||||
<FileNumber>43</FileNumber>
|
||||
<FileNumber>44</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -825,7 +837,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>44</FileNumber>
|
||||
<FileNumber>45</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -837,7 +849,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>45</FileNumber>
|
||||
<FileNumber>46</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -849,7 +861,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>46</FileNumber>
|
||||
<FileNumber>47</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -861,7 +873,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>47</FileNumber>
|
||||
<FileNumber>48</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -873,7 +885,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>48</FileNumber>
|
||||
<FileNumber>49</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -885,7 +897,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>49</FileNumber>
|
||||
<FileNumber>50</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -897,7 +909,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>50</FileNumber>
|
||||
<FileNumber>51</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -909,7 +921,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>51</FileNumber>
|
||||
<FileNumber>52</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -921,7 +933,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>52</FileNumber>
|
||||
<FileNumber>53</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -933,7 +945,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>53</FileNumber>
|
||||
<FileNumber>54</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -945,7 +957,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>54</FileNumber>
|
||||
<FileNumber>55</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -957,7 +969,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>55</FileNumber>
|
||||
<FileNumber>56</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -969,7 +981,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>56</FileNumber>
|
||||
<FileNumber>57</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -981,7 +993,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>57</FileNumber>
|
||||
<FileNumber>58</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -993,7 +1005,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>58</FileNumber>
|
||||
<FileNumber>59</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1005,7 +1017,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>59</FileNumber>
|
||||
<FileNumber>60</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1017,7 +1029,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>60</FileNumber>
|
||||
<FileNumber>61</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -473,6 +473,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>../Core/Src/stm32f4xx_hal_msp.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>myMattress_ctrl.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\Core\Src\myMattress_ctrl.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user