myDisplayUnit.c 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909
  1. #include "myDisplayUnit.h"
  2. #include "myLcd.h"
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5. #include <stdbool.h>
  6. #include <stdarg.h>
  7. #include <string.h>
  8. int8_t uiPageIdAddress = ~(0);
  9. int8_t uiPageCount = 1;
  10. int8_t rx_tx_count;
  11. int8_t rx_tp_count;
  12. int8_t setting_count;
  13. int8_t tx_tp_count;
  14. uiPageUnit_ts uiPageParams[UI_PAGE_ID_MAX];
  15. enterCallback enterCb;
  16. uint32_t buffer_rfBr;
  17. uint32_t rfBr;
  18. uint32_t buffer_channelStep;
  19. uint32_t buffer_freq;
  20. int8_t buffer_rfPower;
  21. char *buffer_type;
  22. void myDisplay_ui_firstUi_setDeviceName(char *name)
  23. {
  24. myLCD_str8x16(IM_NOMALE, 80, 1, name);
  25. }
  26. void myDisplay_ui_firstUi_setFreq(uint32_t freq)
  27. {
  28. myLCD_str8x16(IM_NOMALE, 80, 2, "Freq.%6.2fMHz", (float)freq/1000000);
  29. }
  30. void myDisplay_ui_firstUi_setRfPower(int power)
  31. {
  32. myLCD_str8x16(IM_NOMALE, 95, 3, "Pwr.%ddBm", power);
  33. }
  34. void myDisplay_ui_firstUi_setRfBr(uint32_t br)
  35. {
  36. myLCD_str8x16(IM_NOMALE, 95, 4, "Br.%.3fkb", (float)br/1000);
  37. }
  38. void myDisplay_ui_firstUi_setRfparams(uint8_t sf, char *bw, uint8_t cr)
  39. {
  40. myLCD_str8x16(IM_NOMALE, 95, 4, "s%u %s c%u", sf, bw, cr);
  41. }
  42. void myDisplay_ui_firstUi_setRfRgm(char *mode)
  43. {
  44. myLCD_str8x16(IM_NOMALE, HORIZONTAL_CENTER, 5, "%s", mode);
  45. }
  46. void myDisplay_ui_firstUi(bool flashFlag, int agr0, void *agr1_ptr, void *agr2_ptr)
  47. {
  48. if (uiPageIdAddress != UI_PAGE_ID_FIRST_UI)
  49. {
  50. myLCD_16x16(IM_INVERSE, 10, 11, "深圳市沃进科技有限公司");
  51. myLCD_displayImage(IM_NOMALE, 1, 1, IMG_SRC_VOLLGO);
  52. myLCD_str8x16(IM_NOMALE, 80, 1, "VG------------");
  53. myLCD_str8x16(IM_NOMALE, 95, 2, "Freq.***");
  54. myLCD_str8x16(IM_NOMALE, 95, 3, "Pwr.**");
  55. }
  56. else
  57. {
  58. myLCD_str8x16(agr0 == 0&& flashFlag ? IM_INVERSE : IM_NOMALE,
  59. HORIZONTAL_RIGHT, 5, "ENTER");
  60. }
  61. uiPageIdAddress = UI_PAGE_ID_FIRST_UI;
  62. }
  63. void myDisplay_ui_selectMode(bool flashFlag, int agr0, void *agr1_ptr, void *agr2_ptr)
  64. {
  65. int i;
  66. myLCD_clearFull();
  67. for ( i = 0; i <= MAX_PAGE_COUNT; i++)
  68. {
  69. myLCD_displayBlock(1, i);
  70. }
  71. uiPageIdAddress = UI_PAGE_ID_ITEM_MODE;
  72. myLCD_str8x16(agr0 == 0&& flashFlag ? IM_INVERSE : IM_NOMALE,
  73. 10, 1, "Enter RF Transmiter");
  74. myLCD_str8x16(agr0 == 1&& flashFlag ? IM_INVERSE : IM_NOMALE,
  75. 10, 2, "Enter RF Receiver");
  76. myLCD_str8x16(agr0 == 2&& flashFlag ? IM_INVERSE : IM_NOMALE,
  77. 10, 3, "Enter RF Continuous");
  78. myLCD_str8x16(agr0 == 3&& flashFlag ? IM_INVERSE : IM_NOMALE,
  79. 10, 4, "Enter RF Setting");
  80. myLCD_str8x16(agr0 == 4&& flashFlag ? IM_INVERSE : IM_NOMALE,
  81. 10, 5, "Enter Device Infor");
  82. }
  83. void myDisplay_ui_rf_tx(uint8_t mode)
  84. {
  85. int i;
  86. myLCD_clearFull();
  87. for ( i = 0; i <= MAX_PAGE_COUNT; i++)
  88. {
  89. myLCD_displayBlock(1, i);
  90. }
  91. myLCD_str8x16(mode == 0 ? IM_INVERSE : IM_NOMALE,
  92. 10, 1, "Packet TX");
  93. myLCD_str8x16(mode == 1 ? IM_INVERSE : IM_NOMALE,
  94. 10, 2, "Continuous TX");
  95. }
  96. void myDisplay_ui_rf_tx_packet(bool flashFlag, int agr0, void *agr1_ptr, void *agr2_ptr)
  97. {
  98. int i;
  99. if (uiPageIdAddress != UI_PAGE_ID_TX_PACKET)
  100. {
  101. myLCD_clearFull();
  102. for ( i = 0; i <= MAX_PAGE_COUNT; i++)
  103. {
  104. myLCD_displayBlock(1, i);
  105. }
  106. myLCD_str8x16(IM_NOMALE, HORIZONTAL_CENTER, 1, "Packet TX");
  107. myLCD_str8x16(IM_NOMALE, 5, 2, "Packet:");
  108. }
  109. uiPageIdAddress = UI_PAGE_ID_TX_PACKET;
  110. if (uiPageIdAddress == UI_PAGE_ID_TX_PACKET)
  111. {
  112. myLCD_str8x16(agr0 == 0&& flashFlag ? IM_INVERSE : IM_NOMALE,
  113. HORIZONTAL_RIGHT, 4, "START");
  114. myLCD_str8x16(agr0 == 1&& flashFlag ? IM_INVERSE : IM_NOMALE,
  115. HORIZONTAL_RIGHT, 5, "TXWA");
  116. myLCD_str8x16(agr0 == 2&& flashFlag ? IM_INVERSE : IM_NOMALE,
  117. HORIZONTAL_RIGHT, 6, "TXCC");
  118. }
  119. }
  120. void myDisplay_ui_rf_tx_packet_buffer(uint8_t *buffer)
  121. {
  122. if (uiPageIdAddress == UI_PAGE_ID_TX_PACKET)
  123. {
  124. myLCD_str8x16(IM_NOMALE, 10, 3, (char *)buffer);
  125. }
  126. }
  127. void myDisplay_ui_rf_tx_packet_counts(uint32_t count)
  128. {
  129. if (uiPageIdAddress == UI_PAGE_ID_TX_PACKET)
  130. {
  131. myLCD_str8x16(IM_NOMALE, HORIZONTAL_RIGHT, 2, "%5d",count);
  132. }
  133. }
  134. void myDisplay_ui_rf_tx_packet_rate(float rate)
  135. {
  136. if (uiPageIdAddress == UI_PAGE_ID_TX_PACKET)
  137. {
  138. myLCD_str8x16(IM_NOMALE, HORIZONTAL_CENTER, 2, "%5.1f%%",(float)rate);
  139. }
  140. }
  141. void myDisplay_ui_rf_tx_packet_consumeTime(uint32_t time)
  142. {
  143. if (uiPageIdAddress == UI_PAGE_ID_TX_PACKET)
  144. {
  145. if (time == ~(uint32_t)0)
  146. {
  147. myLCD_str8x16(IM_NOMALE, HORIZONTAL_RIGHT, 1, " OUT");
  148. }
  149. else
  150. {
  151. myLCD_str8x16(IM_NOMALE, HORIZONTAL_RIGHT, 1, "%5dms", time);
  152. }
  153. }
  154. }
  155. void myDisplay_ui_rf_tx_packet_ackRssi(int16_t rssi)
  156. {
  157. if (uiPageIdAddress == UI_PAGE_ID_TX_PACKET)
  158. {
  159. if (rssi > -150 && (rssi < 10))
  160. {
  161. myLCD_str8x16(IM_NOMALE, HORIZONTAL_RIGHT, 3, "%04ddBm", rssi%10000);
  162. }
  163. }
  164. }
  165. void myDisplay_ui_rf_setting_freq(uint32_t freq)
  166. {
  167. buffer_freq = freq;
  168. }
  169. void myDisplay_ui_rf_setting_rfPower(int8_t rfPower)
  170. {
  171. buffer_rfPower = rfPower;
  172. }
  173. void myDisplay_ui_rf_setting_channelStep(uint32_t channelStep)
  174. {
  175. buffer_channelStep = channelStep;
  176. }
  177. void myDisplay_ui_rf_setting_type(char *type)
  178. {
  179. buffer_type = type;
  180. }
  181. void myDisplay_ui_rf_setting_rfBr(uint32_t br)
  182. {
  183. rfBr = br;
  184. }
  185. char settingDisplayBuffer[SET_ITEM_INDEX_MAX_COUNT][20] =
  186. {
  187. "Type:%s",
  188. "Chl:%s",
  189. "Step:%s",
  190. "TxPower:%s",
  191. "RfBr:%s",
  192. "SF:%s",
  193. "BW:%s",
  194. "CR:%s",
  195. "RGMode:%s",
  196. "PkLen:%s",
  197. };
  198. // char settingDisplayBuffer[SET_ITEM_INDEX_MAX_COUNT][20] =
  199. // {
  200. // "Type:%s",
  201. // "Chl:%02d->%6.2fMHz",
  202. // "Step:%4.2fMHz",
  203. // "TxPower:%04ddBm",
  204. // "RfBr:%7.3fkbps",
  205. // "SF:%d",
  206. // "BW:%d",
  207. // "CR:%d",
  208. // "PkLen:%3d",
  209. // };
  210. char settingCuDisplayBuffer[5][20] = {0};
  211. void myDisplay_setting_loadParams(int index, const char *fmt, ...)
  212. {
  213. va_list va;
  214. va_start(va, fmt);
  215. vsnprintf(uiPageParams[UI_PAGE_ID_SETTING].itemStringTab[index], (int)sizeof(uiPageParams[UI_PAGE_ID_SETTING].itemStringTab[index]), fmt, va);
  216. va_end(va);
  217. }
  218. void myDisplay_ui_rf_setting(bool flashFlag, int agr0, void *agr1_ptr, void *agr2_ptr)
  219. {
  220. int i;
  221. int index = agr0;
  222. static int oldIndex = 255;
  223. if (uiPageIdAddress != UI_PAGE_ID_SETTING)
  224. {
  225. myLCD_clearFull();
  226. for ( i = 0; i <= MAX_PAGE_COUNT; i++)
  227. {
  228. myLCD_displayBlock(1, i);
  229. }
  230. myLCD_str8x16(IM_NOMALE, HORIZONTAL_CENTER, 1, "Setting");
  231. myLCD_str8x16(IM_NOMALE, 10, 2, settingDisplayBuffer[0]);
  232. myLCD_str8x16(IM_NOMALE, 10, 3, settingDisplayBuffer[1]);
  233. myLCD_str8x16(IM_NOMALE, 10, 4, settingDisplayBuffer[2]);
  234. myLCD_str8x16(IM_NOMALE, 10, 5, settingDisplayBuffer[3]);
  235. myLCD_str8x16(IM_NOMALE, 10, 6, settingDisplayBuffer[4]);
  236. }
  237. uiPageIdAddress = UI_PAGE_ID_SETTING;
  238. if (uiPageIdAddress == UI_PAGE_ID_SETTING)
  239. {
  240. int indexCount = 0;
  241. //max rows is 5
  242. if (index >= 5)
  243. {
  244. indexCount = index - 4;
  245. index = 4;
  246. }
  247. for (int i = 0; i < 5; i++)
  248. {
  249. for (int j = 0; j < SET_ITEM_INDEX_MAX_COUNT; j++)
  250. {
  251. if (indexCount == j)
  252. snprintf(settingCuDisplayBuffer[i], 20, settingDisplayBuffer[indexCount], uiPageParams[UI_PAGE_ID_SETTING].itemStringTab[j]);
  253. }
  254. indexCount ++;
  255. }
  256. if (oldIndex != agr0)
  257. {
  258. myLCD_str8x16(IM_NOMALE, 10, 2, " ");
  259. myLCD_str8x16(IM_NOMALE, 10, 3, " ");
  260. myLCD_str8x16(IM_NOMALE, 10, 4, " ");
  261. myLCD_str8x16(IM_NOMALE, 10, 5, " ");
  262. myLCD_str8x16(IM_NOMALE, 10, 6, " ");
  263. myLCD_str8x16(index == 0&& flashFlag ? IM_INVERSE : IM_NOMALE, 10, 2, settingCuDisplayBuffer[0]);
  264. myLCD_str8x16(index == 1&& flashFlag ? IM_INVERSE : IM_NOMALE, 10, 3, settingCuDisplayBuffer[1]);
  265. myLCD_str8x16(index == 2&& flashFlag ? IM_INVERSE : IM_NOMALE, 10, 4, settingCuDisplayBuffer[2]);
  266. myLCD_str8x16(index == 3&& flashFlag ? IM_INVERSE : IM_NOMALE, 10, 5, settingCuDisplayBuffer[3]);
  267. myLCD_str8x16(index == 4&& flashFlag ? IM_INVERSE : IM_NOMALE, 10, 6, settingCuDisplayBuffer[4]);
  268. }
  269. else
  270. {
  271. switch (index)
  272. {
  273. case 0:
  274. myLCD_str8x16(index == 0&& flashFlag ? IM_INVERSE : IM_NOMALE, 10, 2, settingCuDisplayBuffer[0]);
  275. break;
  276. case 1:
  277. myLCD_str8x16(index == 1&& flashFlag ? IM_INVERSE : IM_NOMALE, 10, 3, settingCuDisplayBuffer[1]);
  278. break;
  279. case 2:
  280. myLCD_str8x16(index == 2&& flashFlag ? IM_INVERSE : IM_NOMALE, 10, 4, settingCuDisplayBuffer[2]);
  281. break;
  282. case 3:
  283. myLCD_str8x16(index == 3&& flashFlag ? IM_INVERSE : IM_NOMALE, 10, 5, settingCuDisplayBuffer[3]);
  284. break;
  285. case 4:
  286. myLCD_str8x16(index == 4&& flashFlag ? IM_INVERSE : IM_NOMALE, 10, 6, settingCuDisplayBuffer[4]);
  287. break;
  288. default:
  289. break;
  290. }
  291. }
  292. oldIndex = agr0;
  293. }
  294. }
  295. uint8_t ver_buffer;
  296. char *mod_buffer;
  297. void myDisplay_ui_device_infor(bool flashFlag, int agr0, void *agr1_ptr, void *agr2_ptr)
  298. {
  299. int i;
  300. if (uiPageIdAddress != UI_PAGE_ID_DEVICE_INFOR)
  301. {
  302. myLCD_clearFull();
  303. for ( i = 0; i <= MAX_PAGE_COUNT; i++)
  304. {
  305. myLCD_displayBlock(1, i);
  306. }
  307. myLCD_str8x16(IM_NOMALE, HORIZONTAL_CENTER, 1, "Infor");
  308. myLCD_str8x16(IM_NOMALE, 10, 2, "TP: %s", mod_buffer);
  309. myLCD_str8x16(IM_NOMALE,
  310. 10, 3, "VER: V%02x", ver_buffer);
  311. myLCD_str8x16(IM_NOMALE, 10, 4, "MD: VOLLGO");
  312. }
  313. uiPageIdAddress = UI_PAGE_ID_DEVICE_INFOR;
  314. }
  315. void myDisplay_ui_deviceInfor_setVer(uint8_t ver)
  316. {
  317. ver_buffer = ver;
  318. }
  319. void myDisplay_ui_deviceInfor_setModule(char *moduleName)
  320. {
  321. mod_buffer = moduleName;
  322. }
  323. void myDisplay_ui_rf_rx(uint8_t mode)
  324. {
  325. int i;
  326. myLCD_clearFull();
  327. for ( i = 0; i <= MAX_PAGE_COUNT; i++)
  328. {
  329. myLCD_displayBlock(1, i);
  330. }
  331. myLCD_str8x16(mode == 0 ? IM_INVERSE : IM_NOMALE,
  332. 10, 1, "Packet RX");
  333. myLCD_str8x16(mode == 1 ? IM_INVERSE : IM_NOMALE,
  334. 10, 2, "Continuous RX");
  335. }
  336. void myDisplay_ui_rf_continuos(bool flashFlag, int agr0, void *agr1_ptr, void *agr2_ptr)
  337. {
  338. int i;
  339. if (uiPageIdAddress != UI_PAGE_ID_RF_CONTINUOUS)
  340. {
  341. myLCD_clearFull();
  342. for ( i = 0; i <= MAX_PAGE_COUNT; i++)
  343. {
  344. myLCD_displayBlock(1, i);
  345. }
  346. myLCD_str8x16(IM_NOMALE, HORIZONTAL_CENTER, 1, "Continuous");
  347. myDisplay_ui_rf_continuos_rfFreq();
  348. myDisplay_ui_rf_continuos_rfBr();
  349. myDisplay_ui_rf_continuos_rfPwr();
  350. }
  351. uiPageIdAddress = UI_PAGE_ID_RF_CONTINUOUS;
  352. if (uiPageIdAddress == UI_PAGE_ID_RF_CONTINUOUS)
  353. {
  354. myLCD_str8x16(agr0 == CNT_ITEM_INDEX_TX&& flashFlag ? IM_INVERSE : IM_NOMALE,
  355. HORIZONTAL_CENTER, 2, "TX");
  356. myLCD_str8x16(agr0 == CNT_ITEM_INDEX_RX&& flashFlag ? IM_INVERSE : IM_NOMALE,
  357. HORIZONTAL_CENTER, 3, "RX");
  358. myLCD_str8x16(agr0 == CNT_ITEM_INDEX_TX_MD&& flashFlag ? IM_INVERSE : IM_NOMALE,
  359. 110+3, 2, "TX_MD");
  360. }
  361. }
  362. void myDisplay_ui_rf_continuos_txCurrent(float Current)
  363. {
  364. if (uiPageIdAddress == UI_PAGE_ID_RF_CONTINUOUS)
  365. {
  366. myLCD_str8x16(IM_NOMALE,
  367. 10, 4, "C=%6.2fmA", Current);
  368. }
  369. }
  370. void myDisplay_ui_rf_continuos_rxLen(float rate, uint16_t len)
  371. {
  372. if (uiPageIdAddress == UI_PAGE_ID_RF_CONTINUOUS)
  373. {
  374. myLCD_str8x16(IM_NOMALE,
  375. HORIZONTAL_RIGHT, 4, "%5.1f%% %4d", rate, len);
  376. }
  377. }
  378. void myDisplay_ui_rf_continuos_rfFreq(void)
  379. {
  380. // if (uiPageIdAddress == UI_PAGE_ID_RF_CONTINUOUS)
  381. {
  382. myLCD_str8x16(IM_NOMALE,
  383. 5, 2,
  384. "%6.2fMHz", (float)buffer_freq / 1000000);
  385. }
  386. }
  387. void myDisplay_ui_rf_continuos_rfBr(void)
  388. {
  389. // if (uiPageIdAddress == UI_PAGE_ID_RF_CONTINUOUS)
  390. {
  391. myLCD_str8x16(IM_NOMALE,
  392. HORIZONTAL_RIGHT, 3,
  393. "%7.3fkbps", (float)rfBr / 1000);
  394. }
  395. }
  396. void myDisplay_ui_rf_continuos_rfPwr(void)
  397. {
  398. // if (uiPageIdAddress == UI_PAGE_ID_RF_CONTINUOUS)
  399. {
  400. myLCD_str8x16(IM_NOMALE,
  401. 5, 3,
  402. "%ddBm", buffer_rfPower);
  403. }
  404. }
  405. void myDisplay_ui_rf_continuos_rxErrorRate(float rate)
  406. {
  407. if (uiPageIdAddress == UI_PAGE_ID_RF_CONTINUOUS)
  408. {
  409. myLCD_str8x16(IM_NOMALE,
  410. 10, 5, "rate=%6.2f%%", rate);
  411. }
  412. }
  413. void myDisplay_ui_rf_continuos_rxRssi(int16_t rssi)
  414. {
  415. if (uiPageIdAddress == UI_PAGE_ID_RF_CONTINUOUS)
  416. {
  417. myLCD_str8x16(IM_NOMALE,
  418. HORIZONTAL_RIGHT, 2, "%4d", rssi);
  419. }
  420. }
  421. void myDisplay_ui_rf_continuos_rxContinuousFreq(uint32_t freq)
  422. {
  423. if (uiPageIdAddress == UI_PAGE_ID_RF_CONTINUOUS)
  424. {
  425. myLCD_str8x16(IM_NOMALE,
  426. 10, 6, "freq=%6d", freq);
  427. }
  428. }
  429. void myDisplay_ui_rf_continuos_rxPacketCount(uint8_t status, uint16_t count)
  430. {
  431. if (uiPageIdAddress == UI_PAGE_ID_RF_CONTINUOUS)
  432. {
  433. myLCD_str8x16(IM_NOMALE,
  434. 10, 5, "count=%d sta=%d", count, status);
  435. }
  436. }
  437. void myDisplay_ui_rf_continuos_rxPacket(uint8_t *buf, uint16_t len)
  438. {
  439. int i = 0;
  440. if (uiPageIdAddress == UI_PAGE_ID_RF_CONTINUOUS)
  441. {
  442. myLCD_str8x16(IM_NOMALE,
  443. 10, 6, " ");
  444. if (len)
  445. {
  446. myLCD_str8x16(IM_NOMALE,
  447. 10, 6, "packet=");
  448. for ( i = 0; i < len; i++)
  449. {
  450. myLCD_str8x16(IM_NOMALE,
  451. 10, 6 + strlen("packet=") + i,
  452. "%x", *buf);
  453. buf ++;
  454. }
  455. }
  456. else
  457. {
  458. myLCD_str8x16(IM_NOMALE,
  459. 10, 6, "packet=%s", buf);
  460. }
  461. }
  462. }
  463. void myDisplay_ui_rf_continuos_rxPacketGetCount(uint32_t count)
  464. {
  465. if (uiPageIdAddress == UI_PAGE_ID_RF_CONTINUOUS)
  466. {
  467. myLCD_str8x16(IM_NOMALE,
  468. 10, 6, "rx count=%d", count);
  469. }
  470. }
  471. void myDisplay_ui_rf_rx_packet(bool flashFlag, int agr0, void *agr1_ptr, void *agr2_ptr)
  472. {
  473. int i;
  474. if (uiPageIdAddress != UI_PAGE_ID_RX_PACKET)
  475. {
  476. myLCD_clearFull();
  477. for ( i = 0; i <= MAX_PAGE_COUNT; i++)
  478. {
  479. myLCD_displayBlock(1, i);
  480. }
  481. myLCD_str8x16(IM_NOMALE, HORIZONTAL_CENTER, 1, "Packet RX");
  482. myLCD_str8x16(IM_NOMALE,
  483. 5, 3, "Packet:");
  484. }
  485. uiPageIdAddress = UI_PAGE_ID_RX_PACKET;
  486. if (uiPageIdAddress == UI_PAGE_ID_RX_PACKET)
  487. {
  488. myLCD_str8x16(agr0 == 0&& flashFlag ? IM_INVERSE : IM_NOMALE,
  489. HORIZONTAL_RIGHT, 5, "START");
  490. myLCD_str8x16(agr0 == 1&& flashFlag ? IM_INVERSE : IM_NOMALE,
  491. HORIZONTAL_RIGHT, 6, "RXAA");
  492. }
  493. }
  494. void myDisplay_ui_rf_rxPacket_rxCurrent(float current)
  495. {
  496. if (uiPageIdAddress == UI_PAGE_ID_RX_PACKET)
  497. {
  498. myLCD_str8x16(IM_NOMALE,
  499. 5, 2, "%-6.2fmA", current);
  500. }
  501. }
  502. void myDisplay_ui_rf_rxPacket_rssi(int16_t rssi)
  503. {
  504. if (uiPageIdAddress == UI_PAGE_ID_RX_PACKET)
  505. {
  506. if (rssi > -150 && (rssi < 10))
  507. {
  508. myLCD_str8x16(IM_NOMALE,
  509. HORIZONTAL_RIGHT, 2, "%04ddBm", rssi%10000);
  510. }
  511. }
  512. }
  513. void myDisplay_ui_rf_rxPacket_count(uint32_t count)
  514. {
  515. if (uiPageIdAddress == UI_PAGE_ID_RX_PACKET)
  516. {
  517. myLCD_str8x16(IM_NOMALE,
  518. HORIZONTAL_CENTER, 3, "%06d", count);
  519. }
  520. }
  521. void myDisplay_ui_rf_rxPacket_rate(float rate)
  522. {
  523. if (uiPageIdAddress == UI_PAGE_ID_RX_PACKET)
  524. {
  525. myLCD_str8x16(IM_NOMALE,
  526. HORIZONTAL_RIGHT, 3, "%05.1f%%", rate);
  527. }
  528. }
  529. void myDisplay_ui_rf_rxPacket_buffer(uint8_t *buf, uint16_t len)
  530. {
  531. int i = 0;
  532. if (uiPageIdAddress == UI_PAGE_ID_RX_PACKET)
  533. {
  534. myLCD_str8x16(IM_NOMALE,
  535. 10, 5, " ");
  536. if (len)
  537. {
  538. myLCD_str8x16(IM_NOMALE,
  539. 10, 5, "packet=");
  540. for ( i = 0; i < len; i++)
  541. {
  542. myLCD_str8x16(IM_NOMALE,
  543. 10, 5 + strlen("packet=") + i,
  544. "%x", *buf);
  545. buf ++;
  546. }
  547. }
  548. else
  549. {
  550. myLCD_str8x16(IM_NOMALE,
  551. 10, 5, "packet=%-15s", buf);
  552. }
  553. }
  554. }
  555. uint8_t displayBuffer[3][20];
  556. void loadDisplayBuffer(uint8_t *buf, uint16_t len)
  557. {
  558. memcpy((char *)displayBuffer[0], (char *)displayBuffer[1], 20);
  559. memcpy((char *)displayBuffer[1], (char *)displayBuffer[2], 20);
  560. memset(displayBuffer[2], 0, 20);
  561. memcpy((char *)displayBuffer[2], (char *)buf, 20);
  562. }
  563. void myDisplay_ui_rf_rxPacket_scroll_buffer(uint8_t *buf, uint16_t len)
  564. {
  565. int i = 0;
  566. if (uiPageIdAddress == UI_PAGE_ID_RX_PACKET)
  567. {
  568. if (len)
  569. {
  570. for ( i = 0; i < len; i++)
  571. {
  572. myLCD_str8x16(IM_NOMALE,
  573. 10 + i, 5,
  574. "%x", *buf);
  575. buf ++;
  576. }
  577. loadDisplayBuffer(buf, len);
  578. }
  579. else
  580. {
  581. }
  582. loadDisplayBuffer(buf, len);
  583. myLCD_str8x16(IM_NOMALE, 18, 4,
  584. "%-15s", displayBuffer[0]);
  585. myLCD_str8x16(IM_NOMALE, 18, 5,
  586. "%-15s", displayBuffer[1]);
  587. myLCD_str8x16(IM_NOMALE, 18, 6,
  588. "%-15s", displayBuffer[2]);
  589. }
  590. }
  591. void loadDisplayBufferContinue(uint8_t *buf, uint16_t len)
  592. {
  593. memcpy((char *)displayBuffer[0], (char *)displayBuffer[1], 20);
  594. memset(displayBuffer[1], 0, 20);
  595. memcpy((char *)displayBuffer[1], (char *)buf, 20);
  596. }
  597. void myDisplay_ui_rf_rxContinue_scroll_buffer(uint8_t *buf, uint16_t len)
  598. {
  599. int i = 0;
  600. if (uiPageIdAddress == UI_PAGE_ID_RF_CONTINUOUS)
  601. {
  602. loadDisplayBufferContinue(buf, len);
  603. myLCD_str8x16(IM_NOMALE, 18, 5,
  604. "%-15s", displayBuffer[0]);
  605. myLCD_str8x16(IM_NOMALE, 18, 6,
  606. "%-15s", displayBuffer[1]);
  607. }
  608. }
  609. /**
  610. * 光标控制
  611. * direct: 方向控制
  612. * =1,向上移动
  613. * =0,向下移动
  614. * **/
  615. void myDisplay_change(uint8_t direct)
  616. {
  617. uiPageUnit_ts *page = &uiPageParams[uiPageCount - 1];
  618. if (page->cursorCount)
  619. {
  620. //设置加减控制
  621. if (page->writeStaTab[page->cursorCounting])
  622. {
  623. if (direct)
  624. {
  625. page->itemValueTab[page->cursorCounting] += page->itemStepValueTab[page->cursorCounting];
  626. if (page->itemValueTab[page->cursorCounting] >=
  627. page->itemMaxValueTab[page->cursorCounting])
  628. {
  629. page->itemValueTab[page->cursorCounting] = page->itemMinValueTab[page->cursorCounting];
  630. }
  631. }
  632. else
  633. {
  634. page->itemValueTab[page->cursorCounting] -= page->itemStepValueTab[page->cursorCounting];
  635. if (page->itemValueTab[page->cursorCounting] < page->itemMinValueTab[page->cursorCounting])
  636. {
  637. page->itemValueTab[page->cursorCounting] =
  638. page->itemMaxValueTab[page->cursorCounting] - 1;
  639. }
  640. }
  641. if (enterCb)
  642. {
  643. enterCb(uiPageCount,
  644. page->cursorCounting,
  645. page->writeStaTab[page->cursorCounting],
  646. page->itemValueTab[page->cursorCounting],
  647. page->itemStringTab[page->cursorCounting]
  648. );
  649. }
  650. }
  651. else
  652. {
  653. //光标移动控制
  654. if (direct)
  655. {
  656. page->cursorCounting --;
  657. if (page->cursorCounting < 0)
  658. {
  659. page->cursorCounting = page->cursorCount - 1;
  660. }
  661. }
  662. else
  663. {
  664. page->cursorCounting ++;
  665. if (page->cursorCounting >= page->cursorCount)
  666. {
  667. page->cursorCounting = 0;
  668. }
  669. }
  670. }
  671. page->uiDriver(true, page->cursorCounting,
  672. page->itemValueTab, page->itemStringTab[page->cursorCounting]);
  673. }
  674. }
  675. /***
  676. * 按下确定键
  677. * 进入下一个界面或者进入设置状态
  678. */
  679. void myDisplay_enter(uint8_t direct)
  680. {
  681. if (direct == ENTER_NEXT_PAGE)
  682. {
  683. //进入设置状态
  684. if (uiPageParams[uiPageCount - 1].itemTypeTab[uiPageParams[uiPageCount - 1].cursorCounting] == TYPE_WRITE_TEXT)
  685. {
  686. //切换设置状态
  687. uiPageParams[uiPageCount - 1].writeStaTab[uiPageParams[uiPageCount - 1].cursorCounting] =
  688. !uiPageParams[uiPageCount - 1].writeStaTab[uiPageParams[uiPageCount - 1].cursorCounting];
  689. uiPageParams[uiPageCount - 1].uiDriver(true, uiPageParams[uiPageCount - 1].cursorCounting,
  690. uiPageParams[uiPageCount - 1].itemValueTab, uiPageParams[uiPageCount - 1].itemStringTab[uiPageParams[uiPageCount - 1].cursorCounting]);
  691. if (enterCb)
  692. {
  693. enterCb(uiPageParams[uiPageCount - 1].id,
  694. uiPageParams[uiPageCount - 1].cursorCounting,
  695. uiPageParams[uiPageCount - 1].writeStaTab[uiPageParams[uiPageCount - 1].cursorCounting],
  696. uiPageParams[uiPageCount - 1].itemValueTab[uiPageParams[uiPageCount - 1].cursorCounting],
  697. uiPageParams[uiPageCount - 1].itemStringTab[uiPageParams[uiPageCount - 1].cursorCounting]
  698. );
  699. }
  700. }
  701. //切换到下一个界面
  702. if (uiPageParams[uiPageCount - 1].itemTypeTab[uiPageParams[uiPageCount - 1].cursorCounting] == TYPE_NEXT_LINK)
  703. {
  704. uiPageCount = uiPageParams[uiPageCount - 1].nextPageIdTab[uiPageParams[uiPageCount - 1].cursorCounting];
  705. uiPageParams[uiPageCount - 1].uiDriver(true, uiPageParams[uiPageCount - 1].cursorCounting,
  706. uiPageParams[uiPageCount - 1].itemValueTab, uiPageParams[uiPageCount - 1].itemStringTab[uiPageParams[uiPageCount - 1].cursorCounting]);
  707. }
  708. }
  709. //切换到上一个界面
  710. if (direct == ENTER_LAST_PAGE)
  711. {
  712. if (uiPageParams[uiPageCount - 1].lastPageIdTab[0])
  713. {
  714. memset(uiPageParams[uiPageCount - 1].writeStaTab, 0, sizeof(uiPageParams[uiPageCount - 1].writeStaTab));
  715. if (enterCb)
  716. {
  717. enterCb(uiPageParams[uiPageCount - 1].id,
  718. uiPageParams[uiPageCount - 1].cursorCounting,
  719. uiPageParams[uiPageCount - 1].writeStaTab[uiPageParams[uiPageCount - 1].cursorCounting],
  720. uiPageParams[uiPageCount - 1].itemValueTab[uiPageParams[uiPageCount - 1].cursorCounting],
  721. uiPageParams[uiPageCount - 1].itemStringTab[uiPageParams[uiPageCount - 1].cursorCounting]
  722. );
  723. }
  724. uiPageCount = uiPageParams[uiPageCount - 1].lastPageIdTab[0];
  725. uiPageParams[uiPageCount - 1].uiDriver(true, uiPageParams[uiPageCount - 1].cursorCounting,
  726. uiPageParams[uiPageCount - 1].itemValueTab, uiPageParams[uiPageCount - 1].itemStringTab[uiPageParams[uiPageCount - 1].cursorCounting]);
  727. }
  728. }
  729. }
  730. int8_t myDisplay_getPageId(void)
  731. {
  732. return uiPageIdAddress;
  733. }
  734. void uiTimerFlash_callBack(void)
  735. {
  736. if (uiPageParams[uiPageCount - 1].writeStaTab[uiPageParams[uiPageCount - 1].cursorCounting])
  737. {
  738. uiPageParams[uiPageCount - 1].writeStatusTab[uiPageParams[uiPageCount - 1].cursorCounting] =
  739. !uiPageParams[uiPageCount - 1].writeStatusTab[uiPageParams[uiPageCount - 1].cursorCounting];
  740. if (uiPageParams[uiPageCount - 1].writeStatusTab[uiPageParams[uiPageCount - 1].cursorCounting])
  741. {
  742. uiPageParams[uiPageCount - 1].uiDriver(true, uiPageParams[uiPageCount - 1].cursorCounting,
  743. uiPageParams[uiPageCount - 1].itemValueTab, uiPageParams[uiPageCount - 1].itemStringTab[uiPageParams[uiPageCount - 1].cursorCounting]);
  744. }
  745. else
  746. {
  747. uiPageParams[uiPageCount - 1].uiDriver(false, uiPageParams[uiPageCount - 1].cursorCounting, uiPageParams[uiPageCount - 1].itemValueTab, uiPageParams[uiPageCount - 1].itemStringTab[uiPageParams[uiPageCount - 1].cursorCounting]);
  748. }
  749. }
  750. }
  751. void myDisplay_init(enterCallback cb)
  752. {
  753. myLCD_init();
  754. uiPageParams[UI_PAGE_ID_FIRST_UI].id = UI_PAGE_ID_FIRST_UI + 1;
  755. uiPageParams[UI_PAGE_ID_FIRST_UI].uiDriver = myDisplay_ui_firstUi;
  756. uiPageParams[UI_PAGE_ID_FIRST_UI].lastPageIdTab[0] = 0;
  757. uiPageParams[UI_PAGE_ID_FIRST_UI].nextPageIdTab[0] = 2;
  758. uiPageParams[UI_PAGE_ID_FIRST_UI].itemTypeTab[0] = TYPE_NEXT_LINK;
  759. uiPageParams[UI_PAGE_ID_FIRST_UI].writeStaTab[0] = 1;
  760. uiPageParams[UI_PAGE_ID_FIRST_UI].cursorCounting = 0;
  761. uiPageParams[UI_PAGE_ID_FIRST_UI].cursorCount = 2;
  762. uiPageParams[UI_PAGE_ID_ITEM_MODE].id = UI_PAGE_ID_ITEM_MODE + 1;
  763. uiPageParams[UI_PAGE_ID_ITEM_MODE].uiDriver = myDisplay_ui_selectMode;
  764. uiPageParams[UI_PAGE_ID_ITEM_MODE].lastPageIdTab[0] = 0;
  765. uiPageParams[UI_PAGE_ID_ITEM_MODE].nextPageIdTab[0] = UI_PAGE_ID_TX_PACKET + 1;
  766. uiPageParams[UI_PAGE_ID_ITEM_MODE].itemTypeTab[0] = TYPE_NEXT_LINK;
  767. uiPageParams[UI_PAGE_ID_ITEM_MODE].nextPageIdTab[1] = UI_PAGE_ID_RX_PACKET + 1;
  768. uiPageParams[UI_PAGE_ID_ITEM_MODE].itemTypeTab[1] = TYPE_NEXT_LINK;
  769. uiPageParams[UI_PAGE_ID_ITEM_MODE].nextPageIdTab[2] = UI_PAGE_ID_RF_CONTINUOUS + 1;
  770. uiPageParams[UI_PAGE_ID_ITEM_MODE].itemTypeTab[2] = TYPE_NEXT_LINK;
  771. uiPageParams[UI_PAGE_ID_ITEM_MODE].nextPageIdTab[3] = UI_PAGE_ID_SETTING + 1;
  772. uiPageParams[UI_PAGE_ID_ITEM_MODE].itemTypeTab[3] = TYPE_NEXT_LINK;
  773. uiPageParams[UI_PAGE_ID_ITEM_MODE].nextPageIdTab[4] = UI_PAGE_ID_DEVICE_INFOR + 1;
  774. uiPageParams[UI_PAGE_ID_ITEM_MODE].itemTypeTab[4] = TYPE_NEXT_LINK;
  775. uiPageParams[UI_PAGE_ID_ITEM_MODE].cursorCounting = 0;
  776. uiPageParams[UI_PAGE_ID_ITEM_MODE].cursorCount = 5;
  777. uiPageParams[UI_PAGE_ID_TX_PACKET].id = UI_PAGE_ID_TX_PACKET + 1;
  778. uiPageParams[UI_PAGE_ID_TX_PACKET].uiDriver = myDisplay_ui_rf_tx_packet;
  779. uiPageParams[UI_PAGE_ID_TX_PACKET].lastPageIdTab[0] = UI_PAGE_ID_ITEM_MODE + 1;
  780. uiPageParams[UI_PAGE_ID_TX_PACKET].nextPageIdTab[0] = 0;
  781. uiPageParams[UI_PAGE_ID_TX_PACKET].itemTypeTab[0] = TYPE_WRITE_TEXT;
  782. uiPageParams[UI_PAGE_ID_TX_PACKET].writeStaTab[0] = 0;
  783. uiPageParams[UI_PAGE_ID_TX_PACKET].itemTypeTab[1] = TYPE_WRITE_TEXT;
  784. uiPageParams[UI_PAGE_ID_TX_PACKET].writeStaTab[1] = 0;
  785. uiPageParams[UI_PAGE_ID_TX_PACKET].itemTypeTab[2] = TYPE_WRITE_TEXT;
  786. uiPageParams[UI_PAGE_ID_TX_PACKET].writeStaTab[2] = 0;
  787. uiPageParams[UI_PAGE_ID_TX_PACKET].cursorCounting = 0;
  788. uiPageParams[UI_PAGE_ID_TX_PACKET].cursorCount = 3;
  789. uiPageParams[UI_PAGE_ID_DEVICE_INFOR].id = UI_PAGE_ID_DEVICE_INFOR + 1;
  790. uiPageParams[UI_PAGE_ID_DEVICE_INFOR].uiDriver = myDisplay_ui_device_infor;
  791. uiPageParams[UI_PAGE_ID_DEVICE_INFOR].lastPageIdTab[0] = UI_PAGE_ID_ITEM_MODE + 1;
  792. uiPageParams[UI_PAGE_ID_DEVICE_INFOR].nextPageIdTab[0] = 0;
  793. uiPageParams[UI_PAGE_ID_DEVICE_INFOR].cursorCount = 0;
  794. uiPageParams[UI_PAGE_ID_RX_PACKET].id = UI_PAGE_ID_RX_PACKET + 1;
  795. uiPageParams[UI_PAGE_ID_RX_PACKET].uiDriver = myDisplay_ui_rf_rx_packet;
  796. uiPageParams[UI_PAGE_ID_RX_PACKET].lastPageIdTab[0] = UI_PAGE_ID_ITEM_MODE + 1;
  797. uiPageParams[UI_PAGE_ID_RX_PACKET].nextPageIdTab[0] = 0;
  798. uiPageParams[UI_PAGE_ID_RX_PACKET].itemTypeTab[0] = TYPE_WRITE_TEXT;
  799. uiPageParams[UI_PAGE_ID_RX_PACKET].writeStaTab[0] = 0;
  800. uiPageParams[UI_PAGE_ID_RX_PACKET].itemTypeTab[1] = TYPE_WRITE_TEXT;
  801. uiPageParams[UI_PAGE_ID_RX_PACKET].writeStaTab[1] = 0;
  802. uiPageParams[UI_PAGE_ID_RX_PACKET].cursorCounting = 0;
  803. uiPageParams[UI_PAGE_ID_RX_PACKET].cursorCount = 2;
  804. uiPageParams[UI_PAGE_ID_RF_CONTINUOUS].id = UI_PAGE_ID_RF_CONTINUOUS + 1;
  805. uiPageParams[UI_PAGE_ID_RF_CONTINUOUS].uiDriver = myDisplay_ui_rf_continuos;
  806. uiPageParams[UI_PAGE_ID_RF_CONTINUOUS].lastPageIdTab[CNT_ITEM_INDEX_TX] = UI_PAGE_ID_ITEM_MODE + 1;
  807. uiPageParams[UI_PAGE_ID_RF_CONTINUOUS].itemTypeTab[CNT_ITEM_INDEX_TX] = TYPE_WRITE_TEXT;
  808. uiPageParams[UI_PAGE_ID_RF_CONTINUOUS].writeStaTab[CNT_ITEM_INDEX_TX] = 0;
  809. uiPageParams[UI_PAGE_ID_RF_CONTINUOUS].itemTypeTab[CNT_ITEM_INDEX_RX] = TYPE_WRITE_TEXT;
  810. uiPageParams[UI_PAGE_ID_RF_CONTINUOUS].writeStaTab[CNT_ITEM_INDEX_RX] = 0;
  811. uiPageParams[UI_PAGE_ID_RF_CONTINUOUS].itemTypeTab[CNT_ITEM_INDEX_TX_MD] = TYPE_WRITE_TEXT;
  812. uiPageParams[UI_PAGE_ID_RF_CONTINUOUS].writeStaTab[CNT_ITEM_INDEX_TX_MD] = 0;
  813. uiPageParams[UI_PAGE_ID_RF_CONTINUOUS].cursorCounting = 0;
  814. uiPageParams[UI_PAGE_ID_RF_CONTINUOUS].cursorCount = CNT_ITEM_INDEX_MAX_COUNT;
  815. uiPageParams[UI_PAGE_ID_SETTING].id = UI_PAGE_ID_SETTING + 1;
  816. uiPageParams[UI_PAGE_ID_SETTING].uiDriver = myDisplay_ui_rf_setting;
  817. uiPageParams[UI_PAGE_ID_SETTING].lastPageIdTab[SET_ITEM_INDEX_TYPE] = UI_PAGE_ID_ITEM_MODE + 1;
  818. uiPageParams[UI_PAGE_ID_SETTING].itemTypeTab[SET_ITEM_INDEX_TYPE] = TYPE_WRITE_TEXT;
  819. uiPageParams[UI_PAGE_ID_SETTING].itemMaxValueTab[SET_ITEM_INDEX_TYPE] = 4;
  820. uiPageParams[UI_PAGE_ID_SETTING].itemStepValueTab[SET_ITEM_INDEX_TYPE] = 1;
  821. uiPageParams[UI_PAGE_ID_SETTING].itemTypeTab[SET_ITEM_INDEX_FREQ] = TYPE_WRITE_TEXT;
  822. uiPageParams[UI_PAGE_ID_SETTING].itemMaxValueTab[SET_ITEM_INDEX_FREQ] = 32;
  823. uiPageParams[UI_PAGE_ID_SETTING].itemStepValueTab[SET_ITEM_INDEX_FREQ] = 1;
  824. uiPageParams[UI_PAGE_ID_SETTING].itemTypeTab[SET_ITEM_INDEX_STEP] = TYPE_WRITE_TEXT;
  825. uiPageParams[UI_PAGE_ID_SETTING].itemMaxValueTab[SET_ITEM_INDEX_STEP] = 200;
  826. uiPageParams[UI_PAGE_ID_SETTING].itemStepValueTab[SET_ITEM_INDEX_STEP] = 1;
  827. uiPageParams[UI_PAGE_ID_SETTING].itemTypeTab[SET_ITEM_INDEX_TXPOWER] = TYPE_WRITE_TEXT;
  828. uiPageParams[UI_PAGE_ID_SETTING].itemMinValueTab[SET_ITEM_INDEX_TXPOWER] = -9;
  829. uiPageParams[UI_PAGE_ID_SETTING].itemMaxValueTab[SET_ITEM_INDEX_TXPOWER] = 20+1;
  830. uiPageParams[UI_PAGE_ID_SETTING].itemStepValueTab[SET_ITEM_INDEX_TXPOWER] = 1;
  831. uiPageParams[UI_PAGE_ID_SETTING].itemTypeTab[SET_ITEM_INDEX_RFBAUDRATE] = TYPE_WRITE_TEXT;
  832. uiPageParams[UI_PAGE_ID_SETTING].itemMinValueTab[SET_ITEM_INDEX_RFBAUDRATE] = 1;
  833. uiPageParams[UI_PAGE_ID_SETTING].itemMaxValueTab[SET_ITEM_INDEX_RFBAUDRATE] = 7;
  834. uiPageParams[UI_PAGE_ID_SETTING].itemStepValueTab[SET_ITEM_INDEX_RFBAUDRATE] = 1;
  835. uiPageParams[UI_PAGE_ID_SETTING].itemTypeTab[SET_ITEM_INDEX_SF] = TYPE_WRITE_TEXT;
  836. uiPageParams[UI_PAGE_ID_SETTING].itemMinValueTab[SET_ITEM_INDEX_SF] = 1;
  837. uiPageParams[UI_PAGE_ID_SETTING].itemMaxValueTab[SET_ITEM_INDEX_SF] = 7;
  838. uiPageParams[UI_PAGE_ID_SETTING].itemStepValueTab[SET_ITEM_INDEX_SF] = 1;
  839. uiPageParams[UI_PAGE_ID_SETTING].itemTypeTab[SET_ITEM_INDEX_BW] = TYPE_WRITE_TEXT;
  840. uiPageParams[UI_PAGE_ID_SETTING].itemMinValueTab[SET_ITEM_INDEX_BW] = 1;
  841. uiPageParams[UI_PAGE_ID_SETTING].itemMaxValueTab[SET_ITEM_INDEX_BW] = 7;
  842. uiPageParams[UI_PAGE_ID_SETTING].itemStepValueTab[SET_ITEM_INDEX_BW] = 1;
  843. uiPageParams[UI_PAGE_ID_SETTING].itemTypeTab[SET_ITEM_INDEX_CR] = TYPE_WRITE_TEXT;
  844. uiPageParams[UI_PAGE_ID_SETTING].itemMinValueTab[SET_ITEM_INDEX_CR] = 1;
  845. uiPageParams[UI_PAGE_ID_SETTING].itemMaxValueTab[SET_ITEM_INDEX_CR] = 7;
  846. uiPageParams[UI_PAGE_ID_SETTING].itemStepValueTab[SET_ITEM_INDEX_CR] = 1;
  847. uiPageParams[UI_PAGE_ID_SETTING].itemTypeTab[SET_ITEM_INDEX_RGM] = TYPE_WRITE_TEXT;
  848. uiPageParams[UI_PAGE_ID_SETTING].itemMinValueTab[SET_ITEM_INDEX_RGM] = 1;
  849. uiPageParams[UI_PAGE_ID_SETTING].itemMaxValueTab[SET_ITEM_INDEX_RGM] = 7;
  850. uiPageParams[UI_PAGE_ID_SETTING].itemStepValueTab[SET_ITEM_INDEX_RGM] = 1;
  851. uiPageParams[UI_PAGE_ID_SETTING].itemTypeTab[SET_ITEM_INDEX_PACKET_LEN] = TYPE_WRITE_TEXT;
  852. uiPageParams[UI_PAGE_ID_SETTING].itemMinValueTab[SET_ITEM_INDEX_PACKET_LEN] = 1;
  853. uiPageParams[UI_PAGE_ID_SETTING].itemMaxValueTab[SET_ITEM_INDEX_PACKET_LEN] = 256;
  854. uiPageParams[UI_PAGE_ID_SETTING].itemStepValueTab[SET_ITEM_INDEX_PACKET_LEN] = 5;
  855. uiPageParams[UI_PAGE_ID_SETTING].cursorCounting = SET_ITEM_INDEX_TYPE;//默认设置光标在第一个
  856. uiPageParams[UI_PAGE_ID_SETTING].cursorCount = SET_ITEM_INDEX_MAX_COUNT;
  857. enterCb = cb;
  858. uiPageParams[uiPageCount - 1].uiDriver(true, 0, 0, 0);
  859. }
  860. void myDisplay_setSettingParamsProfile(uint8_t index, int value, int min, int max, int step)
  861. {
  862. uiPageParams[UI_PAGE_ID_SETTING].itemValueTab[index] = value;
  863. uiPageParams[UI_PAGE_ID_SETTING].itemMinValueTab[index] = min;
  864. uiPageParams[UI_PAGE_ID_SETTING].itemMaxValueTab[index] = max + 1;
  865. uiPageParams[UI_PAGE_ID_SETTING].itemStepValueTab[index] = step;
  866. }