zhaohe 8 months ago
parent
commit
56d9f1ccf1
  1. 2
      .cproject
  2. BIN
      ui/hand_acid_mainboard_ui.HMI
  3. 4
      usrc/uicontroler/event_proceesser/inputfield_content_change_event_processer.cpp
  4. 6
      usrc/uicontroler/event_proceesser/inputfield_content_selected_change_event_processer.cpp
  5. 14
      usrc/uicontroler/event_proceesser/keyboard_bak_request_processer.cpp
  6. 11
      usrc/uicontroler/event_proceesser/keyboard_bak_request_processer.hpp
  7. 1
      usrc/uicontroler/event_proceesser/sys_event_page_id_processer.cpp
  8. 6
      usrc/uicontroler/tjc/ui_event.h
  9. 3
      usrc/uicontroler/tjc_event_processer_mgr.cpp
  10. 8
      usrc/uicontroler/ui_controler.cpp
  11. 7
      usrc/uicontroler/ui_state_mgr.cpp
  12. 9
      usrc/uicontroler/ui_state_mgr.hpp

2
.cproject

@ -30,7 +30,7 @@
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoscanffloat.176411214" name="Use float with scanf from newlib-nano (-u _scanf_float)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoscanffloat" useByScannerDiscovery="false" value="true" valueType="boolean"/> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoscanffloat.176411214" name="Use float with scanf from newlib-nano (-u _scanf_float)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoscanffloat" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoprintffloat.164943344" name="Use float with printf from newlib-nano (-u _printf_float)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoprintffloat" useByScannerDiscovery="false" value="true" valueType="boolean"/> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoprintffloat.164943344" name="Use float with printf from newlib-nano (-u _printf_float)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoprintffloat" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.386899990" name="Toolchain" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.base.gnu-tools-for-stm32.12.3.rel1" valueType="string"/> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.386899990" name="Toolchain" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.base.gnu-tools-for-stm32.12.3.rel1" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.runtimelibrary_cpp.1247028171" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.runtimelibrary_cpp" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.runtimelibrary_cpp.value.standard_c_standard_cpp" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.runtimelibrary_cpp.1247028171" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.runtimelibrary_cpp" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.runtimelibrary_cpp.value.standard_c_standard_cpp" valueType="enumerated"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.553838709" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/> <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.553838709" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
<builder buildPath="${workspace_loc:/hand_acid_mainboard}/Debug" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.764087106" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/> <builder buildPath="${workspace_loc:/hand_acid_mainboard}/Debug" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.764087106" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.1243726437" name="MCU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler"> <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.1243726437" name="MCU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler">

BIN
ui/hand_acid_mainboard_ui.HMI

4
usrc/uicontroler/event_proceesser/inputfield_content_change_event_processer.cpp

@ -1,4 +1,5 @@
#include "inputfield_content_change_event_processer.hpp" #include "inputfield_content_change_event_processer.hpp"
#include "uicontroler\ui_controler.hpp"
using namespace iflytop; using namespace iflytop;
void InputFieldContentChangeEventProcesser::process(uint8_t* indata, size_t len, UIEvent* result) { void InputFieldContentChangeEventProcesser::process(uint8_t* indata, size_t len, UIEvent* result) {
@ -22,4 +23,7 @@ void InputFieldContentChangeEventProcesser::process(uint8_t* indata, size_t len,
strbegin = TJCStrUtils::cpystr(result->text, strbegin, sizeof(result->text)); strbegin = TJCStrUtils::cpystr(result->text, strbegin, sizeof(result->text));
result->butEventType = kbutton_release; result->butEventType = kbutton_release;
UIControler::ins()->chpage(UIStateMgr::ins()->getKeyFromPid(), false);
} }

6
usrc/uicontroler/event_proceesser/inputfield_content_selected_change_event_processer.cpp

@ -1,4 +1,5 @@
#include "inputfield_content_selected_change_event_processer.hpp" #include "inputfield_content_selected_change_event_processer.hpp"
#include "uicontroler\ui_controler.hpp"
using namespace iflytop; using namespace iflytop;
void InputfieldContentSelectedChangeEventProcesser::process(uint8_t* indata, size_t len, UIEvent* result) { void InputfieldContentSelectedChangeEventProcesser::process(uint8_t* indata, size_t len, UIEvent* result) {
@ -16,6 +17,8 @@ void InputfieldContentSelectedChangeEventProcesser::process(uint8_t* indata, siz
* *
*/ */
// ZLOGI(TAG, "processInputfieldContentChangeEvent1"); // ZLOGI(TAG, "processInputfieldContentChangeEvent1");
result->eventId = indata[0]; result->eventId = indata[0];
result->pid = indata[1]; result->pid = indata[1];
result->bid = indata[2]; result->bid = indata[2];
@ -23,4 +26,7 @@ void InputfieldContentSelectedChangeEventProcesser::process(uint8_t* indata, siz
const char* strbegin = (const char*)&indata[7]; const char* strbegin = (const char*)&indata[7];
strbegin = TJCStrUtils::cpystr(result->text, strbegin, sizeof(result->text)); strbegin = TJCStrUtils::cpystr(result->text, strbegin, sizeof(result->text));
result->butEventType = kbutton_release; result->butEventType = kbutton_release;
UIControler::ins()->chpage(UIStateMgr::ins()->getKeyFromPid(), false);
} }

14
usrc/uicontroler/event_proceesser/keyboard_bak_request_processer.cpp

@ -0,0 +1,14 @@
#include "keyboard_bak_request_processer.hpp"
#include "uicontroler\ui_controler.hpp"
using namespace iflytop;
void KeyboardBakRequestProcesser::process(uint8_t* indata, size_t len, UIEvent* result) {
/**
* @brief
*
* printh AE FF FF FF
*
*/
result->internal = true;
UIControler::ins()->chpage(UIStateMgr::ins()->getKeyFromPid(), false);
}

11
usrc/uicontroler/event_proceesser/keyboard_bak_request_processer.hpp

@ -0,0 +1,11 @@
#pragma once
#include "if/i_tjc_ui_event_processer.hpp"
namespace iflytop {
class KeyboardBakRequestProcesser : public iTjcUiEventProcesser {
public:
KeyboardBakRequestProcesser(/* args */) : iTjcUiEventProcesser(kpt_keyboard_bak_request) {}
virtual void process(uint8_t* indata, size_t len, UIEvent* result) override;
};
} // namespace iflytop

1
usrc/uicontroler/event_proceesser/sys_event_page_id_processer.cpp

@ -13,6 +13,7 @@ void SysEventPageIdProcesser::process(uint8_t* indata, size_t len, UIEvent* resu
if (UIStateMgr::ins()->nowPage == indata[1]) { if (UIStateMgr::ins()->nowPage == indata[1]) {
// page not change // page not change
} else { } else {
// changePage()
// UIStateMgr::ins()->lastPage = UIStateMgr::ins()->nowPage; // UIStateMgr::ins()->lastPage = UIStateMgr::ins()->nowPage;
// UIStateMgr::ins()->nowPage = indata[1]; // UIStateMgr::ins()->nowPage = indata[1];
// ZLOGI(TAG, "page change from %d to %d ", UIStateMgr::ins()->lastPage, UIStateMgr::ins()->nowPage); // ZLOGI(TAG, "page change from %d to %d ", UIStateMgr::ins()->lastPage, UIStateMgr::ins()->nowPage);

6
usrc/uicontroler/tjc/ui_event.h

@ -51,6 +51,7 @@ typedef enum {
// //
kpt_inputfield_content_change_event = 0xAC, // kpt_inputfield_content_change_event = 0xAC, //
kpt_inputfield_content_selected_change_event = 0xAD, // kpt_inputfield_content_selected_change_event = 0xAD, //
kpt_keyboard_bak_request = 0xAE, //
kpt_page_back_event = 0xB0, // 退 kpt_page_back_event = 0xB0, // 退
kpt_usr_def_clik_release_event = 0xB1 // kpt_usr_def_clik_release_event = 0xB1 //
@ -63,9 +64,10 @@ typedef struct {
int32_t eventId; int32_t eventId;
uint8_t pid; uint8_t pid;
uint8_t bid; uint8_t bid;
bool internal;
// content // content
jtc_button_event_t butEventType; // jtc_button_event_t butEventType; //
int32_t val; //
char text[TJC_MAX_PACKET_SIZE]; //
int32_t val; //
char text[TJC_MAX_PACKET_SIZE]; //
} UIEvent; } UIEvent;

3
usrc/uicontroler/tjc_event_processer_mgr.cpp

@ -3,6 +3,7 @@
#include "event_proceesser/button_event_processer.hpp" #include "event_proceesser/button_event_processer.hpp"
#include "event_proceesser/inputfield_content_change_event_processer.hpp" #include "event_proceesser/inputfield_content_change_event_processer.hpp"
#include "event_proceesser/inputfield_content_selected_change_event_processer.hpp" #include "event_proceesser/inputfield_content_selected_change_event_processer.hpp"
#include "event_proceesser/keyboard_bak_request_processer.hpp"
#include "event_proceesser/page_back_event_processer.hpp" #include "event_proceesser/page_back_event_processer.hpp"
#include "event_proceesser/sys_event_page_id_processer.hpp" #include "event_proceesser/sys_event_page_id_processer.hpp"
#include "event_proceesser/usr_def_clik_release_with_val_event_processer.hpp" #include "event_proceesser/usr_def_clik_release_with_val_event_processer.hpp"
@ -18,6 +19,7 @@ static PageBackEventProcesser pageBackEventProcesser;
static SysEventPageIdProcesser sysEventPageIdProcesser; static SysEventPageIdProcesser sysEventPageIdProcesser;
static ButtonEventProcesser buttonEventProcesser; static ButtonEventProcesser buttonEventProcesser;
static InputfieldContentSelectedChangeEventProcesser inputfieldContentSelectedChangeEventProcesser; static InputfieldContentSelectedChangeEventProcesser inputfieldContentSelectedChangeEventProcesser;
static KeyboardBakRequestProcesser keyboardBakRequestProcesser;
static iTjcUiEventProcesser* m_eventProcessers[] = { static iTjcUiEventProcesser* m_eventProcessers[] = {
&usrDefClikReleaseWithValEventProcesser, // &usrDefClikReleaseWithValEventProcesser, //
@ -26,6 +28,7 @@ static iTjcUiEventProcesser* m_eventProcessers[] = {
&sysEventPageIdProcesser, // &sysEventPageIdProcesser, //
&buttonEventProcesser, // &buttonEventProcesser, //
&inputfieldContentSelectedChangeEventProcesser, // &inputfieldContentSelectedChangeEventProcesser, //
&keyboardBakRequestProcesser,
}; };
/*********************************************************************************************************************** /***********************************************************************************************************************

8
usrc/uicontroler/ui_controler.cpp

@ -481,6 +481,8 @@ bool UIControler::movePicOutOfScreen(uint8_t pid, uint8_t bid) {
void UIControler::popFullKeyBoard(uint8_t fromPid, uint8_t fromBid, int limitLength, const char* initval) { void UIControler::popFullKeyBoard(uint8_t fromPid, uint8_t fromBid, int limitLength, const char* initval) {
zlock_guard lg(m_cmdlock); zlock_guard lg(m_cmdlock);
UIStateMgr::ins()->setKeyboardFrom(fromPid, fromBid);
sendcmd("p[%d].b[%d].val=%d", pg_keybdAP, ob_keybdAP_loadpageid, fromPid); sendcmd("p[%d].b[%d].val=%d", pg_keybdAP, ob_keybdAP_loadpageid, fromPid);
sendcmd("p[%d].b[%d].val=%d", pg_keybdAP, ob_keybdAP_loadcmpid, fromBid); sendcmd("p[%d].b[%d].val=%d", pg_keybdAP, ob_keybdAP_loadcmpid, fromBid);
sendcmd("p[%d].b[%d].txt=\"%s\"", pg_keybdAP, ob_keybdAP_show, initval); sendcmd("p[%d].b[%d].txt=\"%s\"", pg_keybdAP, ob_keybdAP_show, initval);
@ -491,6 +493,7 @@ void UIControler::popFullKeyBoard(uint8_t fromPid, uint8_t fromBid, int limitLen
void UIControler::popPasswdKeyBoard(uint8_t fromPid, uint8_t fromBid, int limitLength) { void UIControler::popPasswdKeyBoard(uint8_t fromPid, uint8_t fromBid, int limitLength) {
zlock_guard lg(m_cmdlock); zlock_guard lg(m_cmdlock);
UIStateMgr::ins()->setKeyboardFrom(fromPid, fromBid);
sendcmd("p[%d].b[%d].val=%d", pg_keyPasswd, ob_keyPasswd_loadpageid, fromPid); sendcmd("p[%d].b[%d].val=%d", pg_keyPasswd, ob_keyPasswd_loadpageid, fromPid);
sendcmd("p[%d].b[%d].val=%d", pg_keyPasswd, ob_keyPasswd_loadcmpid, fromBid); sendcmd("p[%d].b[%d].val=%d", pg_keyPasswd, ob_keyPasswd_loadcmpid, fromBid);
@ -502,6 +505,7 @@ void UIControler::popPasswdKeyBoard(uint8_t fromPid, uint8_t fromBid, int limitL
void UIControler::popNumKeyBoard(uint8_t fromPid, uint8_t fromBid, int limitLength, const char* initval, ...) { void UIControler::popNumKeyBoard(uint8_t fromPid, uint8_t fromBid, int limitLength, const char* initval, ...) {
zlock_guard lg(m_cmdlock); zlock_guard lg(m_cmdlock);
UIStateMgr::ins()->setKeyboardFrom(fromPid, fromBid);
static char buf[60]; static char buf[60];
va_list args; va_list args;
@ -519,6 +523,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) { void UIControler::popKeyBMutSel(uint8_t fromPid, uint8_t fromBid, int selectvalindex, const char** selectvals) {
zlock_guard lg(m_cmdlock); zlock_guard lg(m_cmdlock);
static char contentbus[128]; static char contentbus[128];
memset(contentbus, 0, sizeof(contentbus)); memset(contentbus, 0, sizeof(contentbus));
for (int i = 0;; i++) { for (int i = 0;; i++) {
@ -535,6 +540,8 @@ void UIControler::popKeyBMutSel(uint8_t fromPid, uint8_t fromBid, int selectvali
void UIControler::popKeyBMutSel(uint8_t fromPid, uint8_t fromBid, int selectvalindex, const char* selectvals) { void UIControler::popKeyBMutSel(uint8_t fromPid, uint8_t fromBid, int selectvalindex, const char* selectvals) {
zlock_guard lg(m_cmdlock); zlock_guard lg(m_cmdlock);
UIStateMgr::ins()->setKeyboardFrom(fromPid, fromBid);
sendcmd("p[%d].b[%d].val=%d", pg_keybMutSel, ob_keybMutSel_loadpageid, fromPid); sendcmd("p[%d].b[%d].val=%d", pg_keybMutSel, ob_keybMutSel_loadpageid, fromPid);
sendcmd("p[%d].b[%d].val=%d", pg_keybMutSel, ob_keybMutSel_loadcmpid, fromBid); sendcmd("p[%d].b[%d].val=%d", pg_keybMutSel, ob_keybMutSel_loadcmpid, fromBid);
sendcmd("p[%d].b[%d].val=%d", pg_keybMutSel, ob_keybMutSel_ctent, selectvalindex); sendcmd("p[%d].b[%d].val=%d", pg_keybMutSel, ob_keybMutSel_ctent, selectvalindex);
@ -547,6 +554,7 @@ void UIControler::popKeyBMutSel(uint8_t fromPid, uint8_t fromBid, int selectvali
void UIControler::popKeyBMutSelFix(uint8_t fromPid, uint8_t fromBid, int selectvalindex, const char* keyboardName, const char** selectvals) { void UIControler::popKeyBMutSelFix(uint8_t fromPid, uint8_t fromBid, int selectvalindex, const char* keyboardName, const char** selectvals) {
int selectValsNum = 0; int selectValsNum = 0;
uint8_t pgNum = pg_keybMutSelFix; uint8_t pgNum = pg_keybMutSelFix;
UIStateMgr::ins()->setKeyboardFrom(fromPid, fromBid);
static uint8_t selbid_table[] = { static uint8_t selbid_table[] = {
ob_keybMutSelFix_b0, // ob_keybMutSelFix_b0, //

7
usrc/uicontroler/ui_state_mgr.cpp

@ -57,3 +57,10 @@ void UIStateMgr::changePage(int toPage) {
// ZLOGI(TAG, "page change from %d to %d ", lastPage, nowPage); // ZLOGI(TAG, "page change from %d to %d ", lastPage, nowPage);
} }
} }
int UIStateMgr::setKeyboardFrom(uint8_t pid, uint16_t bid) {
keyboardFromPid = pid;
keyboardFromBid = bid;
}
int UIStateMgr::getKeyFromPid() { return keyboardFromPid; }
int UIStateMgr::getKeyFromBid() { return keyboardFromBid; }

9
usrc/uicontroler/ui_state_mgr.hpp

@ -19,6 +19,9 @@ class UIStateMgr {
int32_t nowPage = 0; int32_t nowPage = 0;
int32_t lastPage = 0; int32_t lastPage = 0;
int32_t keyboardFromPid;
int32_t keyboardFromBid;
public: public:
UIStateMgr() {}; UIStateMgr() {};
static UIStateMgr* ins() { static UIStateMgr* ins() {
@ -31,7 +34,11 @@ class UIStateMgr {
component_info_t* allocComponent(uint8_t pid, uint16_t bid); component_info_t* allocComponent(uint8_t pid, uint16_t bid);
component_info_t* forceFindComponent(uint8_t pid, uint16_t bid); component_info_t* forceFindComponent(uint8_t pid, uint16_t bid);
int getFreeComponentCount();
int setKeyboardFrom(uint8_t pid, uint16_t bid);
int getKeyFromPid();
int getKeyFromBid();
int getFreeComponentCount();
void changePage(int toPage); void changePage(int toPage);
}; };

Loading…
Cancel
Save