Browse Source

update

sunlight
zhaohe 11 months ago
parent
commit
b547e9e917
  1. 86
      uappbase/bean/config_index_enum.hpp
  2. 13
      uappbase/bean/event.hpp
  3. 2
      uappbase/service/config_index.cpp
  4. 88
      uappbase/service/config_index.hpp
  5. 7
      uappbase/service/config_service.cpp
  6. 8
      uappbase/service/config_service_utils.cpp
  7. 1
      usrc/service/app_core.cpp
  8. 25
      usrc/service/page/Page_main.cpp
  9. 1
      usrc/service/page/page.hpp
  10. 42
      usrc/service/page/submenu/Page_muInterval.cpp
  11. 25
      usrc/service/page/submenu/Page_muInterval.hpp

86
uappbase/bean/config_index_enum.hpp

@ -0,0 +1,86 @@
#pragma once
typedef enum {
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kusr_name0, // 用户0名字(默认为管理员)
kusr_enable0, // 用户0是否使能
kusr_passwd0, // 用户0密码
kusr_name1, // 用户1名字
kusr_enable1, // 用户1是否使能
kusr_passwd1, // 用户1密码
kusr_name2, // 用户2名字
kusr_enable2, // 用户2是否使能
kusr_passwd2, // 用户2密码
kusr_name3, // 用户3名字
kusr_enable3, // 用户3是否使能
kusr_passwd3, // 用户3密码
kusr_name4, // 用户4名字
kusr_enable4, // 用户4是否使能
kusr_passwd4, // 用户4密码
kusr_name5, // 用户5名字
kusr_enable5, // 用户5是否使能
kusr_passwd5, // 用户5密码
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kcfg_acidName1, // 酸液中预设名字
kcfg_acidName2, // 酸液中预设名字
kcfg_acidName3, // 酸液中预设名字
kcfg_acidName4, // 酸液中预设名字
kcfg_acidName5, // 酸液中预设名字
kcfg_acidName6, // 酸液中预设名字
kcfg_acidName7, // 酸液中预设名字
kcfg_acidName8, // 酸液中预设名字
kcfg_acidName9, // 酸液中预设名字
kcfg_acidName10, // 酸液中预设名字
kcfg_acidName11, // 酸液中预设名字
kcfg_acidName12, // 酸液中预设名字
kcfg_acidName13, // 酸液中预设名字
kcfg_acidName14, // 酸液中预设名字
kcfg_acidName15, // 酸液中预设名字
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kcfg_acidChooseName0, // 酸液0 选择的名字
kcfg_acidChooseName1, // 酸液1 选择的名字
kcfg_acidChooseName2, // 酸液2 选择的名字
kcfg_acidChooseName3, // 酸液3 选择的名字
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kcfg_acideval0, // 酸液0 distribution
kcfg_acideval1, // 酸液1
kcfg_acideval2, // 酸液2
kcfg_acideval3, // 酸液3
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kcfg_1ulTrunsM0, // 电机0 1ul 转数
kcfg_1ulTrunsM1, // 电机0 1ul 转数
kcfg_1ulTrunsM2, // 电机0 1ul 转数
kcfg_1ulTrunsM3, // 电机0 1ul 转数
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kcfg_lockAcidName, // 锁定酸液名称
kcfg_echDitrUpLi, // 每次分配上限设定值 each distri up-limit
kcfg_pumpDefVel, // 泵机默认速度RPM
kcfg_distrInterval, // 每次分配间隔时间
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kcfg_pipeLengthML, // 酸液管路长度
kcfg_max,
} config_index_t;

13
uappbase/bean/event.hpp

@ -2,12 +2,15 @@
#include <stdint.h>
#include <functional>
#include "config_index_enum.hpp"
namespace iflytop {
using namespace std;
typedef enum {
kAppEvent_RunModeChangeEvent,
kAppEvent_RemoterConnectStateChangeEvent,
kAppEvent_PumpWorkStateChangeEvent,
kAppEvent_ConfigChangeEvent,
} AppEventType_t;
/**
@ -21,7 +24,8 @@ typedef enum {
typedef struct {
AppEventType_t type;
union event {
uint32_t placeholder;
uint32_t placeholder;
config_index_t configIndex;
} d;
} AppEvent_t;
@ -32,4 +36,11 @@ static inline AppEvent_t createAppEvent(AppEventType_t type) {
return event;
}
static inline AppEvent_t createConfigChangeEvent(config_index_t index) {
AppEvent_t event;
event.type = kAppEvent_ConfigChangeEvent;
event.d.configIndex = index;
return event;
}
} // namespace iflytop

2
uappbase/service/config_index.cpp

@ -81,7 +81,7 @@ static cfg_iterm_info_t cfg_iterm_infos[] = {
***********************************************************************************************************************/
CFG_ITERM(kcfg_lockAcidName, kcfgt_bool, "false"), //
CFG_ITERM(kcfg_echDitrUpLi, kcfgt_int32, "40"), // 每次分配上限设定值 each distri up-limit
CFG_ITERM(kcfg_distrInterval, kcfgt_int32, "50"), // 每次分配间隔时间
CFG_ITERM(kcfg_distrInterval, kcfgt_int32, "10"), // 每次分配间隔时间
CFG_ITERM(kcfg_pumpDefVel, kcfgt_int32, "800"), //
/***********************************************************************************************************************

88
uappbase/service/config_index.hpp

@ -1,7 +1,8 @@
#pragma once
#include "../appdep.hpp"
#include "uappbase/appcfg/appcfg.hpp"
#include "uappbase/bean/bean.hpp"
#include "../appdep.hpp"
#include "uappbase/bean/config_index_enum.hpp"
namespace iflytop {
typedef enum {
@ -18,91 +19,6 @@ typedef struct {
const char *initval;
} cfg_iterm_info_t;
typedef enum {
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kusr_name0, // 用户0名字(默认为管理员)
kusr_enable0, // 用户0是否使能
kusr_passwd0, // 用户0密码
kusr_name1, // 用户1名字
kusr_enable1, // 用户1是否使能
kusr_passwd1, // 用户1密码
kusr_name2, // 用户2名字
kusr_enable2, // 用户2是否使能
kusr_passwd2, // 用户2密码
kusr_name3, // 用户3名字
kusr_enable3, // 用户3是否使能
kusr_passwd3, // 用户3密码
kusr_name4, // 用户4名字
kusr_enable4, // 用户4是否使能
kusr_passwd4, // 用户4密码
kusr_name5, // 用户5名字
kusr_enable5, // 用户5是否使能
kusr_passwd5, // 用户5密码
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kcfg_acidName1, // 酸液中预设名字
kcfg_acidName2, // 酸液中预设名字
kcfg_acidName3, // 酸液中预设名字
kcfg_acidName4, // 酸液中预设名字
kcfg_acidName5, // 酸液中预设名字
kcfg_acidName6, // 酸液中预设名字
kcfg_acidName7, // 酸液中预设名字
kcfg_acidName8, // 酸液中预设名字
kcfg_acidName9, // 酸液中预设名字
kcfg_acidName10, // 酸液中预设名字
kcfg_acidName11, // 酸液中预设名字
kcfg_acidName12, // 酸液中预设名字
kcfg_acidName13, // 酸液中预设名字
kcfg_acidName14, // 酸液中预设名字
kcfg_acidName15, // 酸液中预设名字
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kcfg_acidChooseName0, // 酸液0 选择的名字
kcfg_acidChooseName1, // 酸液1 选择的名字
kcfg_acidChooseName2, // 酸液2 选择的名字
kcfg_acidChooseName3, // 酸液3 选择的名字
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kcfg_acideval0, // 酸液0 distribution
kcfg_acideval1, // 酸液1
kcfg_acideval2, // 酸液2
kcfg_acideval3, // 酸液3
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kcfg_1ulTrunsM0, // 电机0 1ul 转数
kcfg_1ulTrunsM1, // 电机0 1ul 转数
kcfg_1ulTrunsM2, // 电机0 1ul 转数
kcfg_1ulTrunsM3, // 电机0 1ul 转数
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kcfg_lockAcidName, // 锁定酸液名称
kcfg_echDitrUpLi, // 每次分配上限设定值 each distri up-limit
kcfg_pumpDefVel, // 泵机默认速度RPM
kcfg_distrInterval, // 每次分配间隔时间
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kcfg_pipeLengthML, // 酸液管路长度
kcfg_max,
} config_index_t;
#define CFG_MAX_INDEX 50
const char *cfgName(int32_t index);

7
uappbase/service/config_service.cpp

@ -1,4 +1,6 @@
#include "config_service.hpp"
#include "uappbase\service\app_event_bus.hpp"
//
#define CFG_HEADER 0x12345678
@ -41,7 +43,7 @@ typedef struct {
#define SET_CFG_STR(index, value) memcpy(cfgcache.cfg[index].str, value, strlen(value))
#define CHECKSUM() checksum((uint8_t *)&(cfgcache.cfg[0].str[0]), sizeof(cfgcache) - 8)
static config_data_t cfgcache;
static config_data_t cfgcache;
static int32_t checksum(uint8_t *data, int32_t n) {
int32_t sum = 0;
@ -57,7 +59,6 @@ bool ConfigService::initialize() {
AppHal::MX_I2C1_Init();
eeprom.initialize(&hi2c1);
static_assert(kcfg_max == CFG_MAX_INDEX, "");
if (!checkcfg()) {
ZLOGI(TAG, "cfg check fail,init cfg");
@ -158,6 +159,8 @@ void ConfigService::_setcfg(int32_t index, const char *value) {
memset(cfgcache.cfg[index].str, 0, 32);
strncpy((char *)cfgcache.cfg[index].str, value, 31);
cfgcache.checksum = CHECKSUM();
AppEventBus::ins()->pushEvent(createConfigChangeEvent((config_index_t)index));
return;
}
void ConfigService::_setcfgAndFlush(int32_t index, const char *value) {

8
uappbase/service/config_service_utils.cpp

@ -19,16 +19,16 @@ void setMotorULToTruns(int motorid, int32_t val) {
//
switch (motorid) {
case 0:
CS->setcfg(kcfg_1ulTrunsM0, val);
CS->setcfgAndFlush(kcfg_1ulTrunsM0, val);
break;
case 1:
CS->setcfg(kcfg_1ulTrunsM1, val);
CS->setcfgAndFlush(kcfg_1ulTrunsM1, val);
break;
case 2:
CS->setcfg(kcfg_1ulTrunsM2, val);
CS->setcfgAndFlush(kcfg_1ulTrunsM2, val);
break;
case 3:
CS->setcfg(kcfg_1ulTrunsM3, val);
CS->setcfgAndFlush(kcfg_1ulTrunsM3, val);
break;
default:
ZASSERT(0);

1
usrc/service/app_core.cpp

@ -75,6 +75,7 @@ void AppCore::appsetup() {
Page_keybAcidCh::ins()->initialize();
Page_muAcidType::ins()->initialize();
Page_menu::ins()->initialize();
Page_muInterval::ins()->initialize();
// EventProcesser

25
usrc/service/page/Page_main.cpp

@ -16,7 +16,7 @@ static CfgItermCache cfgcache;
*
*/
bool Page_main::isBelongThisPage(int page) { return page == PAGE; }
bool Page_main::isBelongThisPage(int page) { return page == PAGE; }
void Page_main::OnPageLoad() {
// 只有管理员能够修改,酸液通道名称
@ -48,7 +48,8 @@ void Page_main::OnPageLoad() {
UIS->setEnumComponentState(PAGE, ob_main_RemoterS, GSM->getRemoterS()); // 遥控器是否在线
// 更新底部状态栏
UIS->setEnumComponentState(PAGE, ob_main_RunMode, (int32_t)GSM->getRunMode()); // 运行模式
UIS->setEnumComponentState(PAGE, ob_main_RunMode, (int32_t)GSM->getRunMode()); // 运行模式
UIS->setVal(PAGE, ob_main_RunModeVal, CS->getStr(kcfg_distrInterval, &cfgcache)); // 加酸间隔状态更新
UIS->setVal(PAGE, ob_main_acidch0, GSM->getPumpSelectState(0));
UIS->setVal(PAGE, ob_main_acidch1, GSM->getPumpSelectState(1));
@ -60,7 +61,7 @@ void Page_main::OnPageLoad() {
// UIS->setVal(PAGE, ob_main_clock, "版本:%s", APP_VERSION);
// 根据当前登录用户设置菜单页面
if (GStateMgr::ins()->isAdmin()) {
UIS->setVal(UI_UUID(gvar, menupageid), ADMIN_MENU_ID);
} else {
@ -105,6 +106,24 @@ void Page_main::OnInputFieldContentChange(uint8_t bid, const char* text) {
ZLOGI(TAG, "acidname3:%s", text);
CS->setcfgAndFlush(kcfg_acidChooseName3, text);
}
// 设置加酸间隔
if (bid == ob_main_RunModeVal) {
int32_t distrIntervalSecond = atoi(text);
if (distrIntervalSecond <= 0) {
UIS->alert("酸液间隔时间不能小于0");
UIS->setVal(PAGE, ob_main_RunModeVal, CS->getStr(kcfg_distrInterval, &cfgcache));
return;
}
if (distrIntervalSecond > 30) {
UIS->alert("酸液间隔时间不能大于30");
UIS->setVal(PAGE, ob_main_RunModeVal, CS->getStr(kcfg_distrInterval, &cfgcache));
return;
}
CS->setcfgAndFlush(kcfg_distrInterval, distrIntervalSecond);
}
}
void Page_main::OnButton(uint8_t bid, uint8_t val) {

1
usrc/service/page/page.hpp

@ -3,5 +3,6 @@
#include "Page_login.hpp"
#include "Page_main.hpp"
#include "submenu/Page_muAcidType.hpp"
#include "submenu/Page_muInterval.hpp"
#include "keyboard/Page_keybAcidCh.hpp"
#include "Page_menu.hpp"

42
usrc/service/page/submenu/Page_muInterval.cpp

@ -0,0 +1,42 @@
#include "Page_muInterval.hpp"
using namespace iflytop;
/**
* @brief
*
*/
#define PAGE pg_muInterval
#define TAG "Page_muInterval"
static CfgItermCache cfgcache;
bool Page_muInterval::isBelongThisPage(int page) { return page == PAGE; }
void Page_muInterval::OnPageLoad() {
// 设置加酸间隔时间
UIS->setVal(PAGE, ob_muInterval_stAcidInte, CS->getStr(kcfg_distrInterval, &cfgcache));
};
void Page_muInterval::OnInputFieldContentChange(uint8_t bid, const char* text) {
if (bid == ob_muInterval_stAcidInte) {
int32_t distrIntervalSecond = atoi(text);
if (distrIntervalSecond <= 0) {
UIS->alert("酸液间隔时间不能小于0");
UIS->setVal(PAGE, ob_muInterval_stAcidInte, CS->getStr(kcfg_distrInterval, &cfgcache));
return;
}
if (distrIntervalSecond > 30) {
UIS->alert("酸液间隔时间不能大于30");
UIS->setVal(PAGE, ob_muInterval_stAcidInte, CS->getStr(kcfg_distrInterval, &cfgcache));
return;
}
CS->setcfgAndFlush(kcfg_distrInterval, distrIntervalSecond);
}
};
void Page_muInterval::OnButton(uint8_t bid, uint8_t val) {
//
};
// muAcidType

25
usrc/service/page/submenu/Page_muInterval.hpp

@ -0,0 +1,25 @@
#pragma once
//
#include "../page_processer.hpp"
namespace iflytop {
using namespace std;
// page: keybAcidCh
class Page_muInterval : public IPageProcesser {
private:
/* data */
public:
static Page_muInterval* ins() {
static Page_muInterval instance;
return &instance;
}
private:
virtual bool isBelongThisPage(int page) override;
virtual void OnPageLoad() override;
virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override;
virtual void OnButton(uint8_t bid, uint8_t val) override;
};
} // namespace iflytop
Loading…
Cancel
Save