zhaohe 8 months ago
parent
commit
4c610eaec3
  1. 3
      uappbase/bean/dbtype/acid_distrubt_record.hpp
  2. 9
      uappbase/bean/dbtype/device_acid_volume.hpp
  3. 126
      ui/ui.h
  4. 12
      usrc/db/dao/acid_ch_cfg_dao.cpp
  5. 5
      usrc/db/dao/acid_ch_cfg_dao.hpp
  6. 18
      usrc/db/dao/acid_distrubt_record_dao.cpp
  7. 3
      usrc/db/dao/acid_distrubt_record_dao.hpp
  8. 2
      usrc/db/dao/acid_use_record_dao.cpp
  9. 2
      usrc/db/dao/acid_use_record_dao.hpp
  10. 70
      usrc/db/dao/device_acid_volume_dao.cpp
  11. 15
      usrc/db/dao/device_acid_volume_dao.hpp
  12. 14
      usrc/db/dao/user_dao.cpp
  13. 4
      usrc/db/dao/user_dao.hpp
  14. 4
      usrc/service/app_core.cpp
  15. 2
      usrc/service/remote_controler_event_processer.cpp
  16. 207
      usrc/uicontroler/page/mupage/muAcidTakeMgr_page.cpp
  17. 4
      usrc/uicontroler/page/navi_page.cpp
  18. 7
      usrc/uicontroler/ui_controler.cpp

3
uappbase/bean/dbtype/acid_distrubt_record.hpp

@ -9,7 +9,8 @@ typedef struct {
zdate_t date;
uint8_t distrubtAcidUsrid;
uint8_t takeAcidUsrid;
uint16_t distrubtCh;
uint8_t distribuCh;
uint16_t distribuVolume;
} acid_distrubt_record_t;
} // namespace iflytop

9
uappbase/bean/dbtype/device_acid_volume.hpp

@ -0,0 +1,9 @@
#pragma once
#include "uappbase/appdep.hpp"
namespace iflytop {
typedef struct {
uint8_t id;
float acidVolume[4];
} device_acid_volume_t;
} // namespace iflytop

126
ui/ui.h

@ -14,7 +14,7 @@
#define pg_muDeviceInfo 12
#define pg_muReCtlerBind 13
#define pg_muAcidUseRecd 14
#define pg_muAcidTakeMgr 15
#define pg_muAcidDistMgr 15
#define pg_popwin 16
#define pg_keybdB 17
#define pg_keybdAP 18
@ -367,68 +367,68 @@
#define ob_muAcidUseRecd_pageIndex 60
#define ob_muAcidUseRecd_t1 61
#define ob_muAcidUseRecd_clearRecord 62
//muAcidTakeMgr.objs
#define ob_muAcidTakeMgr_muAcidTakeMgr 0
#define ob_muAcidTakeMgr_til 1
#define ob_muAcidTakeMgr_bak 2
#define ob_muAcidTakeMgr_chTil 3
#define ob_muAcidTakeMgr_chId 4
#define ob_muAcidTakeMgr_val01 5
#define ob_muAcidTakeMgr_h1 6
#define ob_muAcidTakeMgr_volumeVal 7
#define ob_muAcidTakeMgr_volumeTil 8
#define ob_muAcidTakeMgr_volumeUint 9
#define ob_muAcidTakeMgr_addNew 10
#define ob_muAcidTakeMgr_takePers 11
#define ob_muAcidTakeMgr_takePersTil 12
#define ob_muAcidTakeMgr_distPersoTil 13
#define ob_muAcidTakeMgr_distPerso 14
#define ob_muAcidTakeMgr_h2 15
#define ob_muAcidTakeMgr_h3 16
#define ob_muAcidTakeMgr_h4 17
#define ob_muAcidTakeMgr_h0 18
#define ob_muAcidTakeMgr_val04 19
#define ob_muAcidTakeMgr_val00 20
#define ob_muAcidTakeMgr_val10 21
#define ob_muAcidTakeMgr_val20 22
#define ob_muAcidTakeMgr_val30 23
#define ob_muAcidTakeMgr_val40 24
#define ob_muAcidTakeMgr_val50 25
#define ob_muAcidTakeMgr_val60 26
#define ob_muAcidTakeMgr_val70 27
#define ob_muAcidTakeMgr_val11 28
#define ob_muAcidTakeMgr_val21 29
#define ob_muAcidTakeMgr_val31 30
#define ob_muAcidTakeMgr_val41 31
#define ob_muAcidTakeMgr_val51 32
#define ob_muAcidTakeMgr_val61 33
#define ob_muAcidTakeMgr_val71 34
#define ob_muAcidTakeMgr_val02 35
#define ob_muAcidTakeMgr_val12 36
#define ob_muAcidTakeMgr_val22 37
#define ob_muAcidTakeMgr_val32 38
#define ob_muAcidTakeMgr_val42 39
#define ob_muAcidTakeMgr_val52 40
#define ob_muAcidTakeMgr_val62 41
#define ob_muAcidTakeMgr_val72 42
#define ob_muAcidTakeMgr_val03 43
#define ob_muAcidTakeMgr_val13 44
#define ob_muAcidTakeMgr_val23 45
#define ob_muAcidTakeMgr_val33 46
#define ob_muAcidTakeMgr_val43 47
#define ob_muAcidTakeMgr_val53 48
#define ob_muAcidTakeMgr_val63 49
#define ob_muAcidTakeMgr_val73 50
#define ob_muAcidTakeMgr_val14 51
#define ob_muAcidTakeMgr_val24 52
#define ob_muAcidTakeMgr_val34 53
#define ob_muAcidTakeMgr_val44 54
#define ob_muAcidTakeMgr_val54 55
#define ob_muAcidTakeMgr_val64 56
#define ob_muAcidTakeMgr_val74 57
#define ob_muAcidTakeMgr_export 58
#define ob_muAcidTakeMgr_clearRecord 59
#define ob_muAcidTakeMgr_t1 60
//muAcidDistMgr.objs
#define ob_muAcidDistMgr_muAcidDistMgr 0
#define ob_muAcidDistMgr_til 1
#define ob_muAcidDistMgr_bak 2
#define ob_muAcidDistMgr_chTil 3
#define ob_muAcidDistMgr_val01 4
#define ob_muAcidDistMgr_h1 5
#define ob_muAcidDistMgr_volumeVal 6
#define ob_muAcidDistMgr_volumeTil 7
#define ob_muAcidDistMgr_volumeUint 8
#define ob_muAcidDistMgr_addNew 9
#define ob_muAcidDistMgr_takePersTil 10
#define ob_muAcidDistMgr_distPersoTil 11
#define ob_muAcidDistMgr_distPerso 12
#define ob_muAcidDistMgr_h2 13
#define ob_muAcidDistMgr_h3 14
#define ob_muAcidDistMgr_h4 15
#define ob_muAcidDistMgr_h0 16
#define ob_muAcidDistMgr_val04 17
#define ob_muAcidDistMgr_val00 18
#define ob_muAcidDistMgr_val10 19
#define ob_muAcidDistMgr_val20 20
#define ob_muAcidDistMgr_val30 21
#define ob_muAcidDistMgr_val40 22
#define ob_muAcidDistMgr_val50 23
#define ob_muAcidDistMgr_val60 24
#define ob_muAcidDistMgr_val70 25
#define ob_muAcidDistMgr_val11 26
#define ob_muAcidDistMgr_val21 27
#define ob_muAcidDistMgr_val31 28
#define ob_muAcidDistMgr_val41 29
#define ob_muAcidDistMgr_val51 30
#define ob_muAcidDistMgr_val61 31
#define ob_muAcidDistMgr_val71 32
#define ob_muAcidDistMgr_val02 33
#define ob_muAcidDistMgr_val12 34
#define ob_muAcidDistMgr_val22 35
#define ob_muAcidDistMgr_val32 36
#define ob_muAcidDistMgr_val42 37
#define ob_muAcidDistMgr_val52 38
#define ob_muAcidDistMgr_val62 39
#define ob_muAcidDistMgr_val72 40
#define ob_muAcidDistMgr_val03 41
#define ob_muAcidDistMgr_val13 42
#define ob_muAcidDistMgr_val23 43
#define ob_muAcidDistMgr_val33 44
#define ob_muAcidDistMgr_val43 45
#define ob_muAcidDistMgr_val53 46
#define ob_muAcidDistMgr_val63 47
#define ob_muAcidDistMgr_val73 48
#define ob_muAcidDistMgr_val14 49
#define ob_muAcidDistMgr_val24 50
#define ob_muAcidDistMgr_val34 51
#define ob_muAcidDistMgr_val44 52
#define ob_muAcidDistMgr_val54 53
#define ob_muAcidDistMgr_val64 54
#define ob_muAcidDistMgr_val74 55
#define ob_muAcidDistMgr_export 56
#define ob_muAcidDistMgr_clearRecord 57
#define ob_muAcidDistMgr_t1 58
#define ob_muAcidDistMgr_takePers 59
#define ob_muAcidDistMgr_chId 60
//popwin.objs
#define ob_popwin_popwin 0
#define ob_popwin_p0 1

12
usrc/db/dao/acid_ch_cfg_dao.cpp

@ -85,3 +85,15 @@ void AcidChCfgDao::updateAcidEachDistriVal(int chIndex, float acidEachDistriVal)
tabledata->item[chIndex].acidEachDistriVal = acidEachDistriVal;
storgeTableData();
}
const char** AcidChCfgDao::getAcidCHNameList() {
static char nameTableStr[4][30];
static const char* nameTable[4 + 1];
memset(nameTable, 0, sizeof(nameTable));
nameTable[4] = NULL;
for (int i = 0; i < 4; i++) {
sprintf(&nameTableStr[i][0], "%s(%d)", tabledata->item[i].acidChooseName, i);
nameTable[i] = &nameTableStr[i][0];
}
return nameTable;
}

5
usrc/db/dao/acid_ch_cfg_dao.hpp

@ -1,8 +1,7 @@
#pragma once
#include "uappbase/base.hpp"
#include "error/errno.hpp"
#include "uappbase/base.hpp"
namespace iflytop {
@ -15,6 +14,8 @@ class AcidChCfgDao {
static void updatekCfgAcidChooseName(int chIndex, const char* acidChooseName);
static void updateAcidEachDistriVal(int chIndex, float acidEachDistriVal);
static void syncCfg();
static const char** getAcidCHNameList();
};
} // namespace iflytop

18
usrc/db/dao/acid_distrubt_record_dao.cpp

@ -9,7 +9,7 @@ using namespace iflytop;
/***********************************************************************************************************************
* MARCO *
***********************************************************************************************************************/
#define TABLE_VERSION (TABLE_BASE_VERSION + 4)
#define TABLE_VERSION (TABLE_BASE_VERSION + 5)
#define TABLE_NAME "acid_distrubt_record_table"
/***********************************************************************************************************************
@ -24,6 +24,10 @@ static acid_distrubt_record_table_t* acid_distrubt_record_table;
* FUNCTION *
***********************************************************************************************************************/
static void storgeTableData() { ZHDB::storageData((uint8_t*)acid_distrubt_record_table, sizeof(*acid_distrubt_record_table)); }
static void storgeItem(int offset) {
ZHDB::storageData((uint8_t*)&acid_distrubt_record_table->record[offset], sizeof(acid_distrubt_record_t));
ZHDB::storageData((uint8_t*)acid_distrubt_record_table, sizeof(*acid_distrubt_record_table) - sizeof(acid_distrubt_record_table->record));
}
//
void AcidDistrubtRecordDao::init() {
//
@ -52,12 +56,18 @@ void AcidDistrubtRecordDao::addRecord(const acid_distrubt_record_t& record) {
return;
}
acid_distrubt_record_table->record[acid_distrubt_record_table->recordNum++] = record;
int recordNum = acid_distrubt_record_table->recordNum;
acid_distrubt_record_table->record[recordNum] = record;
acid_distrubt_record_table->maxid++;
acid_distrubt_record_table->recordNum++;
ZLOGI(TAG, "add record %d", record.id);
storgeTableData();
ZLOGI(TAG, "add record %d/%d/%d %02d:%02d:%02d distruUid:%d takeAcidUid:%d ch:%d volume:%d (%d/%d)", //
record.date.year, record.date.month, record.date.day, //
record.date.hours, record.date.minutes, record.date.seconds, //
record.distrubtAcidUsrid, record.takeAcidUsrid, record.distribuCh, record.distribuVolume, //
acid_distrubt_record_table->recordNum, ACID_DISTRUBT_RECORD_NUM);
storgeItem(recordNum);
}
acid_distrubt_record_table_t* AcidDistrubtRecordDao::getRecordTable() {

3
usrc/db/dao/acid_distrubt_record_dao.hpp

@ -20,8 +20,8 @@ class AcidDistrubtRcordPage {
typedef struct {
uint32_t version;
uint32_t maxid;
acid_distrubt_record_t record[ACID_DISTRUBT_RECORD_NUM];
int recordNum;
acid_distrubt_record_t record[ACID_DISTRUBT_RECORD_NUM];
uint32_t end;
} acid_distrubt_record_table_t;
@ -31,6 +31,7 @@ class AcidDistrubtRecordDao {
static acid_distrubt_record_table_t* getRecordTable();
static void addRecord(const acid_distrubt_record_t& record);
static void sync();
static void getRecord(int pageNum, AcidDistrubtRcordPage* page);
static bool isAlmostFull();
static bool isFull();

2
usrc/db/dao/acid_use_record_dao.cpp

@ -9,7 +9,7 @@ using namespace iflytop;
/***********************************************************************************************************************
* MARCO *
***********************************************************************************************************************/
#define TABLE_VERSION (TABLE_BASE_VERSION + 5)
#define TABLE_VERSION (TABLE_BASE_VERSION + 6)
#define TABLE_NAME "acid_use_record_table"
/***********************************************************************************************************************

2
usrc/db/dao/acid_use_record_dao.hpp

@ -20,8 +20,8 @@ class AcidUseRcordPage {
typedef struct {
uint32_t version;
uint32_t maxid;
acid_use_record_t record[ACIDUSERCORD_RECORD_NUM];
int recordNum;
acid_use_record_t record[ACIDUSERCORD_RECORD_NUM];
uint32_t end;
} acid_use_record_table_t;

70
usrc/db/dao/device_acid_volume_dao.cpp

@ -0,0 +1,70 @@
#include "device_acid_volume_dao.hpp"
#include "uappbase/zhdb/zhdb.hpp"
#define TAG "DeviceAcidVolume"
using namespace iflytop;
/***********************************************************************************************************************
* MARCO *
***********************************************************************************************************************/
#define TABLE_VERSION TABLE_BASE_VERSION
#define TABLE_NAME "device_acid_vlume"
/***********************************************************************************************************************
* STATIC VAR *
***********************************************************************************************************************/
static zhdb_table_t* table;
static bool module_inited;
static struct {
uint32_t version;
uint32_t maxid;
device_acid_volume_t item[1];
uint32_t end;
}* tabledata;
/***********************************************************************************************************************
* FUNCTION *
***********************************************************************************************************************/
static void storgeTableData() { ZHDB::storageData((uint8_t*)tabledata, sizeof(*tabledata)); }
void DeviceAcidVolume::init() {
//
table = ZHDB::allocTable(TABLE_NAME, sizeof(*tabledata));
ASSERT(table != NULL, "alloc table failed");
tabledata = (decltype(tabledata))table->add;
if (TABLE_VERSION != tabledata->version || TABLE_VERSION != tabledata->end) {
ZLOGI(TAG, "%s table version not match, reset table", TABLE_NAME);
tabledata->version = TABLE_VERSION;
tabledata->end = TABLE_VERSION;
// ³õʼ»¯ËáÒºÃû³Æ
tabledata->item[0].id = tabledata->maxid++;
memset(tabledata->item[0].acidVolume, 0, sizeof(tabledata->item[0].acidVolume));
}
storgeTableData();
module_inited = true;
ZLOGI(TAG, "init success");
}
void DeviceAcidVolume::updateAcidVolume(int index, float volume) {
ZASSERT_INFO(module_inited, "device acid volume dao not inited");
if (index < 0 || index >= sizeof(tabledata->item[0].acidVolume) / sizeof(tabledata->item[0].acidVolume[0])) {
ZLOGE(TAG, "updateAcidVolume fail,index out of range index=%d", index);
return;
}
tabledata->item[0].acidVolume[index] = volume;
storgeTableData();
}
float DeviceAcidVolume::getAcidVolume(int index) {
ZASSERT_INFO(module_inited, "device acid volume dao not inited");
if (index < 0 || index >= sizeof(tabledata->item[0].acidVolume) / sizeof(tabledata->item[0].acidVolume[0])) {
ZLOGE(TAG, "getAcidVolume fail,index out of range index=%d", index);
return 0;
}
return tabledata->item[0].acidVolume[index];
}

15
usrc/db/dao/device_acid_volume_dao.hpp

@ -0,0 +1,15 @@
#pragma once
#include "error/errno.hpp"
#include "uappbase/base.hpp"
#include "uappbase/bean/dbtype/device_acid_volume.hpp"
namespace iflytop {
class DeviceAcidVolume {
public:
static void init();
static void updateAcidVolume(int index, float volume);
static float getAcidVolume(int index);
};
} // namespace iflytop

14
usrc/db/dao/user_dao.cpp

@ -247,3 +247,17 @@ void UserDao::updateUser(uint8_t userId, const char* name, const char* passwd, u
sortUsr();
storgeTableData();
}
const char** UserDao::getUsrNameTable() {
static const char* nameTable[MAX_USR_NUM + 1];
memset(nameTable, 0, sizeof(nameTable));
for (int i = 0; i < MAX_USR_NUM; i++) {
if (usr_table_data->user[i].effective) {
nameTable[i] = usr_table_data->user[i].name;
} else {
nameTable[i] = nullptr;
}
}
nameTable[MAX_USR_NUM] = nullptr;
return nameTable;
}

4
usrc/db/dao/user_dao.hpp

@ -23,9 +23,9 @@ class UserDao {
static Errno addUser();
static void delUser(uint8_t userId);
static user_t* getUserByIdNotNull(int32_t id);
static user_t* getUserByIdNotNull(int32_t id);
static const char** getUsrNameTable();
};
} // namespace iflytop

4
usrc/service/app_core.cpp

@ -21,6 +21,7 @@
#include "db/dao/acid_distrubt_record_dao.hpp"
#include "db/dao/acid_name_dao.hpp"
#include "db/dao/acid_use_record_dao.hpp"
#include "db/dao/device_acid_volume_dao.hpp"
#include "db/dao/device_setting_dao.hpp"
#include "db/dao/user_dao.hpp"
@ -117,6 +118,7 @@ void AppCore::initialize() {
DeviceSettingDao::init();
AcidUseRecordDao::init();
AcidDistrubtRecordDao::init();
DeviceAcidVolume::init();
ZLOGI(TAG, "load zhdb end");
//
@ -155,7 +157,7 @@ void AppCore::initialize() {
GStateMgr::ins()->setLogin(0, "admin", kadmin);
AppEventBus::ins()->pushSimpleEvent(kAE_LoginEvent);
UIControler::ins()->chpage(pg_muAcidUseRecd, true);
UIControler::ins()->chpage(pg_muAcidDistMgr, true);
/***********************************************************************************************************************
* ͳ¼ÆÄÚ´æÊ¹ÓÃÇé¿ö *

2
usrc/service/remote_controler_event_processer.cpp

@ -155,7 +155,7 @@ void RemoteControlerEventProcesser::processKeyEventFromRemoter(hand_acid_remoter
case pg_muChangePasswd:
case pg_muCHSetting:
case pg_muDeviceInfo:
case pg_muAcidTakeMgr:
case pg_muAcidDistMgr:
case pg_muAcidUseRecd:
UIS->popWarningWin("请先切换到首页,在控制设备");
break;

207
usrc/uicontroler/page/mupage/muAcidTakeMgr_page.cpp

@ -0,0 +1,207 @@
#include "db/dao/acid_distrubt_record_dao.hpp"
#include "db/dao/acid_name_dao.hpp"
#include "db/dao/user_dao.hpp"
#include "uappbase/apphal/apphal.hpp"
#include "ui/ui.h"
#include "uicontroler/base/page_processer.hpp"
#include "usrc/db/dao/acid_ch_cfg_dao.hpp"
//
#include "db/dao/acid_ch_cfg_dao.hpp"
#include "db/dao/acid_use_record_dao.hpp"
#include "db/dao/device_acid_volume_dao.hpp"
#include "db/dao/device_setting_dao.hpp"
//
#include "service/pump_ctrl_service.hpp"
#include "service/remote_controler.hpp"
namespace iflytop {
using namespace std;
#define TAG "MuAcidDistMgrPage"
typedef struct {
uint8_t val[5]; // 时间
} table_iterm_t;
static table_iterm_t cfgbid_table[] = {
{ob_muAcidDistMgr_h0, ob_muAcidDistMgr_h1, ob_muAcidDistMgr_h2, ob_muAcidDistMgr_h3, ob_muAcidDistMgr_h4},
{ob_muAcidDistMgr_val00, ob_muAcidDistMgr_val01, ob_muAcidDistMgr_val02, ob_muAcidDistMgr_val03, ob_muAcidDistMgr_val04},
{ob_muAcidDistMgr_val10, ob_muAcidDistMgr_val11, ob_muAcidDistMgr_val12, ob_muAcidDistMgr_val13, ob_muAcidDistMgr_val14},
{ob_muAcidDistMgr_val20, ob_muAcidDistMgr_val21, ob_muAcidDistMgr_val22, ob_muAcidDistMgr_val23, ob_muAcidDistMgr_val24},
{ob_muAcidDistMgr_val30, ob_muAcidDistMgr_val31, ob_muAcidDistMgr_val32, ob_muAcidDistMgr_val33, ob_muAcidDistMgr_val34},
{ob_muAcidDistMgr_val40, ob_muAcidDistMgr_val41, ob_muAcidDistMgr_val42, ob_muAcidDistMgr_val43, ob_muAcidDistMgr_val44},
{ob_muAcidDistMgr_val50, ob_muAcidDistMgr_val51, ob_muAcidDistMgr_val52, ob_muAcidDistMgr_val53, ob_muAcidDistMgr_val54},
{ob_muAcidDistMgr_val60, ob_muAcidDistMgr_val61, ob_muAcidDistMgr_val62, ob_muAcidDistMgr_val63, ob_muAcidDistMgr_val64},
{ob_muAcidDistMgr_val70, ob_muAcidDistMgr_val71, ob_muAcidDistMgr_val72, ob_muAcidDistMgr_val73, ob_muAcidDistMgr_val74},
};
static int m_takePers = 0;
static int m_chId = 0;
static int m_volumeVal = 0;
class MuAcidDistMgrPage : public IPageProcesser {
public:
MuAcidDistMgrPage() : IPageProcesser(TAG, pg_muAcidDistMgr) {}
virtual void initialize() override {
IPageProcesser::initialize();
setText(cfgbid_table[0].val[0], "时间");
setText(cfgbid_table[0].val[1], "发放人");
setText(cfgbid_table[0].val[2], "领酸人");
setText(cfgbid_table[0].val[3], "酸液名称");
setText(cfgbid_table[0].val[4], "容量");
for (int i = 0; i < 8; i++) {
setText(cfgbid_table[i + 1].val[0], "");
setText(cfgbid_table[i + 1].val[1], "");
setText(cfgbid_table[i + 1].val[2], "");
setText(cfgbid_table[i + 1].val[3], "");
setText(cfgbid_table[i + 1].val[4], "");
}
}
/***********************************************************************************************************************
* CALL_BAK *
***********************************************************************************************************************/
virtual void onPageLoad(OnPageLoadContext* cxt) override { return; };
/**
* @brief
*/
virtual void onBackKey() override { UIControler::ins()->chpage(pg_navi, true); }
virtual void onChangePageEvent() override {
resetForm();
updateTableVolume();
}
virtual void onClickRelease(uint8_t bid, uint8_t val, const char* text) override {
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
/**
*
*/
if (bid == ob_muAcidDistMgr_takePers) {
UIControler::ins()->popKeyBMutSel(thisPage, bid, 0, UserDao::getUsrNameTable());
} else if (bid == ob_muAcidDistMgr_chId) {
UIControler::ins()->popKeyBMutSel(thisPage, bid, 0, AcidChCfgDao::getAcidCHNameList());
} else if (bid == ob_muAcidDistMgr_volumeVal) {
UIControler::ins()->popNumKeyBoard(thisPage, bid, 4, "");
}
if (bid == ob_muAcidDistMgr_addNew) {
if (m_volumeVal <= 0) {
UIControler::ins()->popWarningWin("请输入容量");
return;
}
if (m_takePers < 0) {
UIControler::ins()->popWarningWin("请选择发放人");
return;
}
if (m_chId < 0) {
UIControler::ins()->popWarningWin("请选择酸液名称");
return;
}
{
UILoadingCxt ctx;
acid_distrubt_record_t record;
AppHal::rtc_get(&record.date);
record.distrubtAcidUsrid = GStateMgr::ins()->getUserId();
record.takeAcidUsrid = m_takePers;
record.distribuCh = m_chId;
record.distribuVolume = m_volumeVal;
AcidDistrubtRecordDao::addRecord(record);
DeviceAcidVolume::updateAcidVolume(m_chId, m_volumeVal);
GStateMgr::ins()->setAcidRemain(m_chId, m_volumeVal);
resetForm();
}
}
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
if (bid == ob_muAcidDistMgr_clearRecord) {
UIControler::ins()->popConfirmWin("您确定要清空领酸记录?", [this](bool isOk) {
if (isOk) {
UILoadingCxt loadingCxt;
AcidUseRecordDao::clearRecord();
AcidUseRecordDao::sync();
UIControler::ins()->chpage(thisPage, true);
}
});
}
if (bid == ob_muAcidDistMgr_export) {
}
}
virtual void onInputFieldContentChange(uint8_t bid, uint8_t slecId, const char* text) override {
if (bid == ob_muAcidDistMgr_takePers) {
m_takePers = slecId;
setText(bid, "%s", UserDao::getUserByIdNotNull(slecId)->name);
} else if (bid == ob_muAcidDistMgr_chId) {
if (slecId < 0 || slecId > 3) {
ZLOGI(TAG, "slecId out of range");
return;
}
m_chId = slecId;
setText(bid, "%s(%d)", AcidChCfgDao::getCfg(slecId)->acidChooseName, slecId);
} else if (bid == ob_muAcidDistMgr_volumeVal) {
float val = atof(text);
if (val < 0) {
UIControler::ins()->popInfoWin("体积不能小于0");
return;
}
m_volumeVal = val;
setText(bid, "%d", (int)val);
}
}
/***********************************************************************************************************************
* UTILS *
***********************************************************************************************************************/
void updateTableVolume() {
// set val
UIControler::ins()->chpage(thisPage, false);
AcidDistrubtRcordPage page;
AcidDistrubtRecordDao::getRecord(0, &page);
for (int i = 0; i < page.recordNum; i++) {
setText(cfgbid_table[i + 1].val[0], "%d/%d/%d %02d:%02d:%02d", page.record[i]->date.year, page.record[i]->date.month, page.record[i]->date.day, page.record[i]->date.hours, page.record[i]->date.minutes, page.record[i]->date.seconds);
setText(cfgbid_table[i + 1].val[1], "%s", UserDao::getUserByIdNotNull(page.record[i]->distrubtAcidUsrid)->name);
setText(cfgbid_table[i + 1].val[2], "%s", UserDao::getUserByIdNotNull(page.record[i]->takeAcidUsrid)->name);
setText(cfgbid_table[i + 1].val[3], "%s", AcidChCfgDao::getCfg(page.record[i]->distribuCh)->acidChooseName);
setText(cfgbid_table[i + 1].val[4], "%d", page.record[i]->distribuVolume);
}
for (int i = page.recordNum; i < 8; i++) {
setText(cfgbid_table[i + 1].val[0], "");
setText(cfgbid_table[i + 1].val[1], "");
setText(cfgbid_table[i + 1].val[2], "");
setText(cfgbid_table[i + 1].val[3], "");
setText(cfgbid_table[i + 1].val[4], "");
}
}
void resetForm() {
m_takePers = -1;
m_chId = -1;
m_volumeVal = -1;
updateTableVolume();
setText(ob_muAcidDistMgr_distPerso, "%s", GStateMgr::ins()->getLoginUsr());
setText(ob_muAcidDistMgr_takePers, "");
setText(ob_muAcidDistMgr_chId, "");
setText(ob_muAcidDistMgr_volumeVal, "");
}
};
// 实例化Page, 使其自动注册
static MuAcidDistMgrPage instance;
} // namespace iflytop

4
usrc/uicontroler/page/navi_page.cpp

@ -59,7 +59,7 @@ static muInfoTable_t storeKeeperMuInfoTable = //
.maxPageNum = 1,
.muInfo = {
{ob_navi_muChangePwd, pg_muChangePasswd}, // 修改密码
{ob_navi_muAcidTakeMgr, pg_muAcidTakeMgr}, // 领酸管理
{ob_navi_muAcidTakeMgr, pg_muAcidDistMgr}, // 领酸管理
{ob_navi_muAcidUseRecd, pg_muAcidUseRecd}, // 用酸记录
{ob_navi_muLoginOut, 0} // 退出登录
}};
@ -74,7 +74,7 @@ static muInfoTable_t adminMuInfoTable = //
{ob_navi_muAcidType, pg_muAcidType}, // 酸类型管理
{ob_navi_muUsrMgr, pg_muUsrMgr}, // 用户管理
{ob_navi_muDateMgr, pg_muDateMgr}, // 修改时间
{ob_navi_muAcidTakeMgr, pg_muAcidTakeMgr}, // 领酸管理
{ob_navi_muAcidTakeMgr, pg_muAcidDistMgr}, // 领酸管理
{ob_navi_muAcidUseRecd, pg_muAcidUseRecd}, // 用酸记录
{ob_navi_muReCtlerBind, pg_muReCtlerBind}, // 手柄绑定
{ob_navi_muChangePwd, pg_muChangePasswd}, // 修改密码

7
usrc/uicontroler/ui_controler.cpp

@ -259,6 +259,8 @@ bool UIControler::setTxt(uint8_t pid, uint8_t bid, const char* txt, ...) {
bool UIControler::setTxt(uint8_t pid, uint8_t bid, const char* txt, va_list args) {
zlock_guard lg(m_cmdlock);
static char buf[256];
memset(buf, 0, sizeof(buf));
vsprintf(buf, txt, args);
sendcmd("p[%d].b[%d].txt=\"%s\"", pid, bid, buf);
return true;
@ -312,7 +314,7 @@ void UIControler::popWin(UIPopWinType_t type, const char* info, function<void(bo
void UIControler::chpage(uint8_t page, bool triggerEvent) {
UIStateMgr::ins()->changePage(page);
AppEventBus::ins()->pushPageChangeEvent(page);
if (triggerEvent) AppEventBus::ins()->pushPageChangeEvent(page);
sendcmd("page %d", page);
}
void UIControler::sendcmd(const char* format, ...) {
@ -326,6 +328,8 @@ void UIControler::sendcmd(const char* format, ...) {
void UIControler::sendcmd(const char* format, va_list args) {
static char buf[256];
memset(buf, 0, sizeof(buf));
vsprintf(buf, format, args);
#if MODULE_DEBUG
ZLOGI(TAG, "tx:%s", buf);
@ -492,6 +496,7 @@ void UIControler::popNumKeyBoard(uint8_t fromPid, uint8_t fromBid, int limitLeng
void UIControler::popKeyBMutSel(uint8_t fromPid, uint8_t fromBid, int selectvalindex, const char** selectvals) {
zlock_guard lg(m_cmdlock);
static char contentbus[128];
memset(contentbus, 0, sizeof(contentbus));
for (int i = 0;; i++) {
// \r\n Æ´½Ó×Ö·û´®Êý×é
if (selectvals[i] == nullptr) break;

Loading…
Cancel
Save