Browse Source

recode

master
zhaohe 11 months ago
parent
commit
013cc64bb2
  1. 4
      .vscode/settings.json
  2. 45
      README.md
  3. 210
      app/app.uvoptx
  4. 30
      app/app.uvprojx
  5. 181
      app/src/acid_dispenser_ble_slave_main.c
  6. 5
      app/src/app_basic_service/basic/keyid.h
  7. 21
      app/src/app_basic_service/basic/state.h
  8. 10
      app/src/app_basic_service/zapp.c
  9. 0
      app/src/app_basic_service/zapp_ebus.c
  10. 0
      app/src/app_basic_service/zapp_ebus.h
  11. 0
      app/src/app_basic_service/zapp_gstate.c
  12. 0
      app/src/app_basic_service/zapp_gstate.h
  13. 102
      app/src/app_service/zkey_driver.c
  14. 5
      app/src/app_service/zkey_driver.h
  15. 8
      app/src/main.c

4
.vscode/settings.json

@ -228,7 +228,9 @@
"hand_acid_val_protocol.h": "c",
"zscanprotocol.h": "c",
"hand_acid_remoter_key_event.h": "c",
"ble_proto_utils.h": "c"
"ble_proto_utils.h": "c",
"light_ctrl.h": "c",
"zkey_driver.h": "c"
},
"files.encoding": "gbk"
}

45
README.md

@ -2,9 +2,48 @@
```
build_app.bat 缂栬瘧搴旂敤绋嬪簭
build_bootloader.bat 缂栬瘧bootloader
flash_with_id.bat 鐑у綍绋嬪簭鎼哄甫ID
build_app.bat 编译应用程序
build_bootloader.bat 编译bootloader
flash_with_id.bat 烧录程序携带ID
#############################################################################
//休眠
//不休眠
//状态机
两个状态
休眠
不休眠
static bool sleep;
static bool work;
static int mode;
static bool pumpworkstate;
static connected;
active ble;
一个状态
updateState();
离线休眠状态
关机不广播
离线广播状态
按下按键亮红灯,广播
连接状态
低电量事件
触发警告灯
工作
非工作
模式1
模式2
未定义状态
连接状态休眠
关灯,不关广播
###############################################################################
```

210
app/app.uvoptx

@ -456,6 +456,42 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>1</GroupNumber>
<FileNumber>7</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\src\app_basic_service\zapp_ebus.c</PathWithFileName>
<FilenameWithoutPath>zapp_ebus.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>1</GroupNumber>
<FileNumber>8</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\src\app_basic_service\zapp_gstate.c</PathWithFileName>
<FilenameWithoutPath>zapp_gstate.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>1</GroupNumber>
<FileNumber>9</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\src\app_service\zkey_driver.c</PathWithFileName>
<FilenameWithoutPath>zkey_driver.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
@ -466,7 +502,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>7</FileNumber>
<FileNumber>10</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -486,7 +522,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>8</FileNumber>
<FileNumber>11</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -498,7 +534,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>9</FileNumber>
<FileNumber>12</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -518,7 +554,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>10</FileNumber>
<FileNumber>13</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -538,7 +574,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>11</FileNumber>
<FileNumber>14</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -550,7 +586,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>12</FileNumber>
<FileNumber>15</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -562,7 +598,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>13</FileNumber>
<FileNumber>16</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -574,7 +610,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>14</FileNumber>
<FileNumber>17</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -586,7 +622,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>15</FileNumber>
<FileNumber>18</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -598,7 +634,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>16</FileNumber>
<FileNumber>19</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -610,7 +646,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>17</FileNumber>
<FileNumber>20</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -622,7 +658,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>18</FileNumber>
<FileNumber>21</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -642,7 +678,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>19</FileNumber>
<FileNumber>22</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -662,7 +698,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>20</FileNumber>
<FileNumber>23</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -674,7 +710,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>21</FileNumber>
<FileNumber>24</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -686,7 +722,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>22</FileNumber>
<FileNumber>25</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -698,7 +734,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>23</FileNumber>
<FileNumber>26</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -710,7 +746,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>24</FileNumber>
<FileNumber>27</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -722,7 +758,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>25</FileNumber>
<FileNumber>28</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -734,7 +770,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>26</FileNumber>
<FileNumber>29</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -746,7 +782,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>27</FileNumber>
<FileNumber>30</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -758,7 +794,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>28</FileNumber>
<FileNumber>31</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -770,7 +806,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>29</FileNumber>
<FileNumber>32</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -782,7 +818,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>30</FileNumber>
<FileNumber>33</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -794,7 +830,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>31</FileNumber>
<FileNumber>34</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -806,7 +842,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>32</FileNumber>
<FileNumber>35</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -818,7 +854,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>33</FileNumber>
<FileNumber>36</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -830,7 +866,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>34</FileNumber>
<FileNumber>37</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -842,7 +878,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>35</FileNumber>
<FileNumber>38</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -854,7 +890,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>36</FileNumber>
<FileNumber>39</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -866,7 +902,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>37</FileNumber>
<FileNumber>40</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -878,7 +914,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>38</FileNumber>
<FileNumber>41</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -890,7 +926,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>39</FileNumber>
<FileNumber>42</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -902,7 +938,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>40</FileNumber>
<FileNumber>43</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -922,7 +958,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>41</FileNumber>
<FileNumber>44</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -934,7 +970,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>42</FileNumber>
<FileNumber>45</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -946,7 +982,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>43</FileNumber>
<FileNumber>46</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -958,7 +994,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>44</FileNumber>
<FileNumber>47</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -970,7 +1006,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>45</FileNumber>
<FileNumber>48</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -982,7 +1018,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>46</FileNumber>
<FileNumber>49</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -994,7 +1030,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>47</FileNumber>
<FileNumber>50</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1006,7 +1042,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>48</FileNumber>
<FileNumber>51</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1018,7 +1054,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>49</FileNumber>
<FileNumber>52</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1030,7 +1066,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>50</FileNumber>
<FileNumber>53</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1042,7 +1078,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>51</FileNumber>
<FileNumber>54</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1054,7 +1090,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>52</FileNumber>
<FileNumber>55</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1066,7 +1102,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>53</FileNumber>
<FileNumber>56</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1078,7 +1114,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>54</FileNumber>
<FileNumber>57</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1090,7 +1126,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>55</FileNumber>
<FileNumber>58</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1102,7 +1138,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>56</FileNumber>
<FileNumber>59</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1114,7 +1150,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>57</FileNumber>
<FileNumber>60</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1126,7 +1162,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>58</FileNumber>
<FileNumber>61</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1138,7 +1174,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>59</FileNumber>
<FileNumber>62</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1150,7 +1186,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>60</FileNumber>
<FileNumber>63</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1162,7 +1198,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>61</FileNumber>
<FileNumber>64</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1174,7 +1210,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>62</FileNumber>
<FileNumber>65</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1186,7 +1222,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>63</FileNumber>
<FileNumber>66</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1198,7 +1234,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>64</FileNumber>
<FileNumber>67</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1210,7 +1246,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>65</FileNumber>
<FileNumber>68</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1222,7 +1258,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>66</FileNumber>
<FileNumber>69</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1234,7 +1270,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>67</FileNumber>
<FileNumber>70</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1254,7 +1290,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>68</FileNumber>
<FileNumber>71</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1266,7 +1302,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>69</FileNumber>
<FileNumber>72</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1278,7 +1314,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>70</FileNumber>
<FileNumber>73</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1290,7 +1326,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>71</FileNumber>
<FileNumber>74</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1302,7 +1338,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>72</FileNumber>
<FileNumber>75</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1314,7 +1350,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>73</FileNumber>
<FileNumber>76</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1334,7 +1370,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>74</FileNumber>
<FileNumber>77</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1346,7 +1382,7 @@
</File>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>75</FileNumber>
<FileNumber>78</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1358,7 +1394,7 @@
</File>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>76</FileNumber>
<FileNumber>79</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1378,7 +1414,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>77</FileNumber>
<FileNumber>80</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1390,7 +1426,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>78</FileNumber>
<FileNumber>81</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1402,7 +1438,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>79</FileNumber>
<FileNumber>82</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1422,7 +1458,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>80</FileNumber>
<FileNumber>83</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1434,7 +1470,7 @@
</File>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>81</FileNumber>
<FileNumber>84</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1446,7 +1482,7 @@
</File>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>82</FileNumber>
<FileNumber>85</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1466,7 +1502,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>13</GroupNumber>
<FileNumber>83</FileNumber>
<FileNumber>86</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1478,7 +1514,7 @@
</File>
<File>
<GroupNumber>13</GroupNumber>
<FileNumber>84</FileNumber>
<FileNumber>87</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1490,7 +1526,7 @@
</File>
<File>
<GroupNumber>13</GroupNumber>
<FileNumber>85</FileNumber>
<FileNumber>88</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1502,7 +1538,7 @@
</File>
<File>
<GroupNumber>13</GroupNumber>
<FileNumber>86</FileNumber>
<FileNumber>89</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1514,7 +1550,7 @@
</File>
<File>
<GroupNumber>13</GroupNumber>
<FileNumber>87</FileNumber>
<FileNumber>90</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1534,7 +1570,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>14</GroupNumber>
<FileNumber>88</FileNumber>
<FileNumber>91</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1546,7 +1582,7 @@
</File>
<File>
<GroupNumber>14</GroupNumber>
<FileNumber>89</FileNumber>
<FileNumber>92</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1558,7 +1594,7 @@
</File>
<File>
<GroupNumber>14</GroupNumber>
<FileNumber>90</FileNumber>
<FileNumber>93</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1570,7 +1606,7 @@
</File>
<File>
<GroupNumber>14</GroupNumber>
<FileNumber>91</FileNumber>
<FileNumber>94</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1590,7 +1626,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>15</GroupNumber>
<FileNumber>92</FileNumber>
<FileNumber>95</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1602,7 +1638,7 @@
</File>
<File>
<GroupNumber>15</GroupNumber>
<FileNumber>93</FileNumber>
<FileNumber>96</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>

30
app/app.uvprojx

@ -413,6 +413,21 @@
<FileType>1</FileType>
<FilePath>.\src\ble_data_processer_utils.c</FilePath>
</File>
<File>
<FileName>zapp_ebus.c</FileName>
<FileType>1</FileType>
<FilePath>.\src\app_basic_service\zapp_ebus.c</FilePath>
</File>
<File>
<FileName>zapp_gstate.c</FileName>
<FileType>1</FileType>
<FilePath>.\src\app_basic_service\zapp_gstate.c</FilePath>
</File>
<File>
<FileName>zkey_driver.c</FileName>
<FileType>1</FileType>
<FilePath>.\src\app_service\zkey_driver.c</FilePath>
</File>
</Files>
</Group>
<Group>
@ -4242,6 +4257,21 @@
<FileType>1</FileType>
<FilePath>.\src\ble_data_processer_utils.c</FilePath>
</File>
<File>
<FileName>zapp_ebus.c</FileName>
<FileType>1</FileType>
<FilePath>.\src\app_basic_service\zapp_ebus.c</FilePath>
</File>
<File>
<FileName>zapp_gstate.c</FileName>
<FileType>1</FileType>
<FilePath>.\src\app_basic_service\zapp_gstate.c</FilePath>
</File>
<File>
<FileName>zkey_driver.c</FileName>
<FileType>1</FileType>
<FilePath>.\src\app_service\zkey_driver.c</FilePath>
</File>
</Files>
</Group>
<Group>

181
app/src/acid_dispenser_ble_slave_main.c

@ -1,19 +1,24 @@
#include <math.h>
#include <stdint.h>
// pconfig
#include "aproject_config/config.h"
// #include "ify_hrs_protocol/heart_rate_sensor_protocol.h"
#include "app_protocols/app_protocols.h"
#include "board/board.h"
// ble
#include "zble_module.h"
#include "zdatachannel_service.h"
//
// protocol
#include "app_protocols/app_protocols.h"
// app_basic_service
#include "app_basic_service/basic/state.h"
#include "app_basic_service/device_version_info_mgr.h"
#include "app_basic_service/zapp.h"
// app_service
#include "app_service/battery_mgr_service.h"
#include "app_service/light_ctrl.h"
#include "zble_module.h"
//
#include "app_service/zkey_driver.h"
// others
#include "ble_data_processer_utils.h"
#include "board/board.h"
#include "nrf_fstorage.h"
#include "nrf_fstorage_sd.h"
@ -152,31 +157,68 @@ static void update_light_state() {
*
*/
if (zapp_state_machine_now_state() == kstate_standby) {
//
// if (zapp_state_machine_now_state() == kstate_standby) {
// //
// nrf_gpio_set_rgb(0, 0, 0);
// } else {
// if (g_connected) { //
// if (g_hand_acid_mode == khand_acid_m_jog_mode) {
// nrf_gpio_set_rgb(0, 0, 1); //
// } else if (g_hand_acid_mode == khand_acid_m_continuous_mode) {
// nrf_gpio_set_rgb(0, 1, 0); //
// } else if (g_hand_acid_mode == khand_acid_m_unset_mode) {
// nrf_gpio_set_rgb(1, 1, 1); //
// }
// } else {
// nrf_gpio_set_rgb(1, 0, 0);
// }
// }
}
void process_offline_standby(app_event_t* event, uint16_t event_size) { //
app_event_type_t eventType = event->eventType;
if (eventType == kappevent_state_machine_state_enter) {
ZLOGI("enter standby");
nrf_gpio_set_rgb(0, 0, 0);
} else if (eventType == kappevent_state_machine_state_exit) {
ZLOGI("exit standby");
} else {
if (g_connected) { //
if (g_hand_acid_mode == khand_acid_m_jog_mode) {
nrf_gpio_set_rgb(0, 0, 1); //
} else if (g_hand_acid_mode == khand_acid_m_continuous_mode) {
nrf_gpio_set_rgb(0, 1, 0); //
} else if (g_hand_acid_mode == khand_acid_m_unset_mode) {
nrf_gpio_set_rgb(1, 1, 1); //
}
} else {
nrf_gpio_set_rgb(1, 0, 0);
}
}
}
void process_offline_broadcast(app_event_t* event, uint16_t event_size) { //
app_event_type_t eventType = event->eventType;
}
void process_online_workstate(app_event_t* event, uint16_t event_size) { //
app_event_type_t eventType = event->eventType;
}
void process_online_standy(app_event_t* event, uint16_t event_size) { //
app_event_type_t eventType = event->eventType;
}
void on_zapp_ebus_event(void* p_event_data, uint16_t event_size) {
if (!p_event_data) return;
app_event_t* p_event = (app_event_t*)p_event_data;
app_event_type_t event = p_event->eventType;
// ZLOGI("event:%d add_acid_key:%d reverse_key:%d", p_event->eventType, nrf_gpio_pin_read(ADD_ACID_KEY), nrf_gpio_pin_read(REVERSE_KEY));
app_event_t* p_event = (app_event_t*)p_event_data;
device_state_t state = zapp_state_machine_now_state();
switch (state) {
case kstate_offline_standby:
process_offline_standby(p_event, event_size);
break;
case kstate_offline_broadcast:
process_offline_broadcast(p_event, event_size);
break;
case kstate_online_workstate:
process_online_workstate(p_event, event_size);
break;
case kstate_online_standy:
process_online_standy(p_event, event_size);
break;
default:
break;
}
// ZLOGI("event:%d add_acid_key:%d reverse_key:%d", p_event->eventType, nrf_gpio_pin_read(ADD_ACID_KEY), nrf_gpio_pin_read(REVERSE_KEY));
#if 0
if (zapp_state_machine_now_state() == kstate_standby) {
if (event == kappevent_state_machine_state_enter) {
ZLOGI("enter standby");
@ -263,92 +305,9 @@ void on_zapp_ebus_event(void* p_event_data, uint16_t event_size) {
// }
}
}
#endif
}
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
APP_TIMER_DEF(m_key_monitor_tmr); //
bool key_read_acid_state() {
uint32_t val = nrf_gpio_pin_read(ADD_ACID_KEY);
if (val == 0) {
return true;
} else {
return false;
}
}
bool key_liquid_reflux_butt_read_state() {
uint32_t val = nrf_gpio_pin_read(REVERSE_KEY);
if (val == 0) {
return true;
} else {
return false;
}
}
typedef struct {
bool keystate;
bool longPress;
bool pressing;
uint32_t pressTicket;
uint32_t keid;
bool (*read_key_state)();
} key_t;
static void process_key(key_t* key) {
static app_event_t event;
bool nowState = key->read_key_state(); //
if (nowState != key->keystate) {
//
m_last_usr_operation_time = znordic_getpower_on_ms();
if (nowState) {
key->longPress = false;
key->pressing = true;
key->pressTicket = znordic_getpower_on_ms();
}
//
if (!nowState) {
if (!key->longPress) {
event.eventType = kappevent_key_pressed;
event.val.keyid = key->keid; //
zapp_ebus_push_event(&event);
}
key->pressing = false;
}
}
if (key->pressing && !key->longPress) {
if (znordic_haspassed_ms(key->pressTicket) > m_longpress_trigger_time) {
key->longPress = true;
event.eventType = kappevent_key_long_pressed;
event.val.keyid = key->keid; //
zapp_ebus_push_event(&event);
}
}
key->keystate = nowState;
}
static void state_machine_driver_tmr_cb(void* p_context) { //
static key_t mode_and_action_butt = {
.keid = 1,
.read_key_state = key_read_acid_state,
};
static key_t liquid_reflux_butt = {
.keid = 2,
.read_key_state = key_liquid_reflux_butt_read_state,
};
process_key(&mode_and_action_butt);
process_key(&liquid_reflux_butt);
}
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
static void board_init() {
nrf_gpio_cfg_input(ADD_ACID_KEY, NRF_GPIO_PIN_NOPULL);
nrf_gpio_cfg_input(REVERSE_KEY, NRF_GPIO_PIN_NOPULL);
@ -371,11 +330,9 @@ void acid_dispenser_ble_slave_main() {
zapp_ebus_reg_event_listener(on_zapp_ebus_event);
zble_module_reglistener(on_zble_event);
zapp_state_machine_change_state(kstate_working_state);
zapp_state_machine_change_state(kstate_offline_standby);
zble_module_start_adv();
// zble_module_start_adv();
zapp_start_schedule();
ZERROR_CHECK(app_timer_create(&m_key_monitor_tmr, APP_TIMER_MODE_REPEATED, state_machine_driver_tmr_cb));
ZERROR_CHECK(app_timer_start(m_key_monitor_tmr, APP_TIMER_TICKS(100), NULL));
zkey_driver_init();
}

5
app/src/app_basic_service/basic/keyid.h

@ -0,0 +1,5 @@
#pragma once
typedef enum {
keyid_reflux,
keyid_addliquid,
} keyid_t;

21
app/src/app_basic_service/basic/state.h

@ -4,17 +4,24 @@
#include "aproject_config/config.h"
typedef enum {
kstate_standby,
kstate_working_state,
kstate_offline_standby,
kstate_offline_broadcast,
kstate_online_workstate,
kstate_online_standy,
} device_state_t;
static const char* device_state_to_str(device_state_t ds) {
switch (ds) {
case kstate_standby:
return "kstate_standby";
case kstate_working_state:
return "kstate_working_state";
case kstate_offline_standby:
return "offline_standby";
case kstate_offline_broadcast:
return "offline_broadcast";
case kstate_online_workstate:
return "online_workstate";
case kstate_online_standy:
return "online_standy";
default:
return "unknown";
return "unkown_state";
}
return "";
}

10
app/src/app_basic_service/zapp.c

@ -6,13 +6,13 @@ typedef struct {
app_event_listener_t cbfunc;
} AppEventListener;
static device_state_t m_device_state = kstate_standby; //
static uint32_t m_change_to_cur_state_tp = 0; //
static device_state_t m_device_state = kstate_offline_standby; //
static uint32_t m_change_to_cur_state_tp = 0; //
static on_state_change_t m_onstate_change;
static AppEventListener m_listener[10];
static int m_listener_num = 0;
APP_TIMER_DEF(m_state_machine_driver_tmr); //
APP_TIMER_DEF(m_state_machine_driver_tmr); //
#define SCHED_MAX_EVENT_DATA_SIZE MAX(sizeof(app_event_t), APP_TIMER_SCHED_EVENT_DATA_SIZE)
APP_TIMER_DEF(m_delay_event_preset_tmr0); //
@ -235,8 +235,8 @@ uint32_t zapp_exec_in_main_context(uint8_t* hang_up_flag, void (*handler)(void*)
/**
* @brief
* 1. hang_up_flag涓虹
* 2. hang_up_flag涓嶄负绌猴紝鍒欏彧鏈夊綋浜嬩欢闃熷垪涓()
* 1. hang_up_flag为空
* 2. hang_up_flag不为空()
*/
if (hang_up_flag) {

0
app/src/app_basic_service/zapp_ebus.c

0
app/src/app_basic_service/zapp_ebus.h

0
app/src/app_basic_service/zapp_gstate.c

0
app/src/app_basic_service/zapp_gstate.h

102
app/src/app_service/zkey_driver.c

@ -0,0 +1,102 @@
#include <math.h>
#include <stdint.h>
// pconfig
#include "aproject_config/config.h"
#include "board/board.h"
// ble
#include "zble_module.h"
#include "zdatachannel_service.h"
#include "znordic.h"
// protocol
#include "app_protocols/app_protocols.h"
// app_timer
#include "sdk/components/libraries/timer/app_timer.h"
//
#include "app_basic_service\basic\event.h"
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
#define LONGPRESS_TRIGGER_TIME 1500
typedef struct {
bool keystate;
bool longPress;
bool pressing;
uint32_t pressTicket;
uint32_t keid;
bool (*read_key_state)();
} key_t;
APP_TIMER_DEF(m_key_monitor_tmr); //
static bool key_read_acid_state() {
uint32_t val = nrf_gpio_pin_read(ADD_ACID_KEY);
if (val == 0) {
return true;
} else {
return false;
}
}
static bool key_liquid_reflux_butt_read_state() {
uint32_t val = nrf_gpio_pin_read(REVERSE_KEY);
if (val == 0) {
return true;
} else {
return false;
}
}
static void process_key(key_t* key) {
static app_event_t event;
bool nowState = key->read_key_state(); //
if (nowState != key->keystate) {
//
if (nowState) {
key->longPress = false;
key->pressing = true;
key->pressTicket = znordic_getpower_on_ms();
}
//
if (!nowState) {
if (!key->longPress) {
event.eventType = kappevent_key_pressed;
event.val.keyid = key->keid; //
zapp_ebus_push_event(&event);
}
key->pressing = false;
}
}
if (key->pressing && !key->longPress) {
if (znordic_haspassed_ms(key->pressTicket) > LONGPRESS_TRIGGER_TIME) {
key->longPress = true;
event.eventType = kappevent_key_long_pressed;
event.val.keyid = key->keid; //
zapp_ebus_push_event(&event);
}
}
key->keystate = nowState;
}
static void key_driver_tmr_cb(void* p_context) { //
static key_t mode_and_action_butt = {
.keid = 1,
.read_key_state = key_read_acid_state,
};
static key_t liquid_reflux_butt = {
.keid = 2,
.read_key_state = key_liquid_reflux_butt_read_state,
};
process_key(&mode_and_action_butt);
process_key(&liquid_reflux_butt);
}
void zkey_driver_init() {
ZERROR_CHECK(app_timer_create(&m_key_monitor_tmr, APP_TIMER_MODE_REPEATED, key_driver_tmr_cb));
ZERROR_CHECK(app_timer_start(m_key_monitor_tmr, APP_TIMER_TICKS(100), NULL));
}

5
app/src/app_service/zkey_driver.h

@ -0,0 +1,5 @@
#pragma once
#include <math.h>
#include <stdint.h>
void zkey_driver_init();

8
app/src/main.c

@ -12,9 +12,9 @@
#include "zdatachannel_service.h"
#include "acid_dispenser_ble_slave_main.h"
//
ZDATACHANNEL_DEF(m_zhrs, 2 /*浼樺厛绾�*/, 1 /*client num*/); //
ZDATACHANNEL_DEF(m_zhrs, 2 /*优先级*/, 1 /*client num*/); //
/**
* @brief
* @brief
*/
void zdatachannel_data_handler(zdatachannel_evt_t *p_evt) {
if (p_evt->type == ZDATACHANNEL_EVT_RX_DATA) {
@ -68,14 +68,14 @@ int main() {
zapp_init();
/*******************************************************************************
* *
* *
*******************************************************************************/
static zble_module_cfg_t cfg;
cfg.deviceName = device_info_read_sn_str();
cfg.on_service_init = on_service_init;
zble_module_init(&cfg);
/*******************************************************************************
* у *
* *
*******************************************************************************/
acid_dispenser_ble_slave_main();
/*******************************************************************************

Loading…
Cancel
Save