Browse Source

fix some bug

master
zhaohe 11 months ago
parent
commit
0cdcd66ad7
  1. 1
      hand_acid_mainboard.launch
  2. 2
      stm32basic
  3. 2
      stm32components
  4. 2
      stm32halport
  5. 1
      uappbase/bean/event.hpp
  6. 4
      uappbase/service/config_service.hpp
  7. 6
      uappbase/service/gstate_mgr.hpp
  8. 6
      ucomponents/eeprom/m24m02_i2c_eeprom.hpp
  9. 24
      usrc/service/app_core.cpp
  10. 2
      usrc/service/front_end_controler.hpp
  11. 26
      usrc/service/remote_controler.cpp
  12. 5
      usrc/service/remote_controler.hpp
  13. 12
      usrc/service/remote_controler_state_sync_service.cpp
  14. 5
      usrc/service/remote_controler_state_sync_service.hpp

1
hand_acid_mainboard.launch

@ -78,5 +78,6 @@
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&lt;memoryBlockExpressionList context=&quot;reserved-for-future-use&quot;/&gt;"/>
<stringAttribute key="process_factory_id" value="com.st.stm32cube.ide.mcu.debug.launch.HardwareDebugProcessFactory"/>
</launchConfiguration>

2
stm32basic

@ -1 +1 @@
Subproject commit 774ea10d163aa3a02c54544cab0074371e56d7d3
Subproject commit a3f7743a964044334b57b0ca786b69f76f6e4af6

2
stm32components

@ -1 +1 @@
Subproject commit a58887133a2b2fe939f9f7245e059adb49f9e4eb
Subproject commit 3c9d276aab2de07bf1dfdcf5bd31c531efa311d9

2
stm32halport

@ -1 +1 @@
Subproject commit 36d0c5aed2f2645c4ec97f2900182cfb8f410d8e
Subproject commit a0107dbac5d3ec2750b60b553097f5f7e1763ef7

1
uappbase/bean/event.hpp

@ -5,7 +5,6 @@
namespace iflytop {
using namespace std;
typedef enum {
kAppEvent_BleConnectedStateChangeEvent,
kAppEvent_RunModeChangeEvent,
kAppEvent_PumpWorkStateChangeEvent,
} AppEventType_t;

4
uappbase/service/config_service.hpp

@ -2,9 +2,9 @@
#include "../appdep.hpp"
#include "config_index.hpp"
#include "uappbase/appcfg/appcfg.hpp"
#include "uappbase/apphal/apphal.hpp"
#include "uappbase/bean/bean.hpp"
#include "ucomponents/eeprom/m24m02_i2c_eeprom.hpp"
#include "uappbase/apphal/apphal.hpp"
namespace iflytop {
using namespace std;
@ -20,7 +20,7 @@ struct CfgItermCache {
class ConfigService {
private:
/* data */
zmutex mutex;
zmutex mutex = {"ConfigServiceMutex"};
M24M02_I2C_EEPROM eeprom;
public:

6
uappbase/service/gstate_mgr.hpp

@ -16,9 +16,9 @@ class GStateMgr {
bool m_isLogin;
char m_loginUsr[MAX_USR_NAME_SIZE + 1];
int32_t m_AcidState; // 酸液桶状态 1:在线,0:离线
int32_t m_RemoterS; // 遥控器状态 1:在线,0:离线
hand_acid_mode_t m_RunMode; // 运行模式
int32_t m_AcidState; // 酸液桶状态 1:在线,0:离线
int32_t m_RemoterS; // 遥控器状态 1:在线,0:离线
hand_acid_mode_t m_RunMode = khand_acid_m_jog_mode; // 运行模式
bool pumpSelectState[4] = {false};

6
ucomponents/eeprom/m24m02_i2c_eeprom.hpp

@ -10,11 +10,11 @@ using namespace std;
class M24M02_I2C_EEPROM {
I2C_HandleTypeDef* m_i2c_handle;
bool i2c_ping_state[255] = {0};
zmutex m_lock;
zmutex m_lock = {"M24M02_I2C_EEPROM_LOCK"};
public:
M24M02_I2C_EEPROM(){};
~M24M02_I2C_EEPROM(){};
M24M02_I2C_EEPROM() {};
~M24M02_I2C_EEPROM() {};
void initialize(I2C_HandleTypeDef* i2c_handle);

24
usrc/service/app_core.cpp

@ -99,11 +99,11 @@ void blelogdump(uint8_t* rx, int32_t len) {
return;
}
if (packet->cmd == kzble_report_heart) {
zble_heart_t* event = (zble_heart_t*)packet->data;
ZLOGI(TAG, "onBleEvent -> [heart], from:%s, resetFlag:%d, connectedFlag:%d, power:%d", zble_proto_role_2_str(packet->from), event->reset_flag, event->connected_flag, event->power);
return;
}
// if (packet->cmd == kzble_report_heart) {
// zble_heart_t* event = (zble_heart_t*)packet->data;
// ZLOGI(TAG, "onBleEvent -> [heart], from:%s, resetFlag:%d, connectedFlag:%d, power:%d", zble_proto_role_2_str(packet->from), event->reset_flag, event->connected_flag, event->power);
// return;
// }
if (packet->cmd == kzble_report_power_on) {
ZLOGI(TAG, "onBleEvent -> [power_on], from:%s", zble_proto_role_2_str(packet->from));
@ -123,6 +123,7 @@ void AppCore::appsetup() {
/***********************************************************************************************************************
* INIT *
***********************************************************************************************************************/
AppEventBus::ins()->initialize();
ConfigService::ins()->initialize();
// hardInit
@ -154,7 +155,7 @@ void AppCore::appsetup() {
}
});
// AciDisp00000
//
/***********************************************************************************************************************
* START *
@ -163,9 +164,14 @@ void AppCore::appsetup() {
RCTRL->startSchedule();
RemoteControlerStateSyncService::ins()->startSync();
// dim
UIS->chpage(pg_login);
osDelay(100);
RCTRL->clearMasterResetFlag();
RCTRL->clearMasterResetFlag();
RCTRL->clearMasterResetFlag();
RCTRL->clearMasterResetFlag();
}
#define DEBUG_LIGHT_IO PE2
@ -185,11 +191,11 @@ void AppCore::initialize() {
SysMgr::ins()->dumpSysInfo();
appsetup();
AppHal::MX_IWDG_Init();
// AppHal::MX_IWDG_Init();
while (true) {
osDelay(1);
debugLightLoop();
HAL_IWDG_Refresh(&hiwdg);
// HAL_IWDG_Refresh(&hiwdg);
}
}

2
usrc/service/front_end_controler.hpp

@ -19,7 +19,7 @@ class FrontEndControler {
ZThread m_thread;
tjc_rx_packet_t ackcache;
zmutex m_cmdlock;
zmutex m_cmdlock = {"FrontEndControler_LOCK"};
tjc::tjc_usr_event_t event_cache;

26
usrc/service/remote_controler.cpp

@ -3,7 +3,7 @@
#include "app_protocols/ble_through/ble_proto_utils.h"
using namespace iflytop;
#define UART_RX_OVERTIME 100
#define UART_RX_OVERTIME 200
#define TAG "RemoteControler"
#define CMD_OVERTIME 500
@ -35,6 +35,8 @@ void RemoteControlerUpper::initialize() {
m_uart = AppHardware::ins()->remoteContolerUart;
m_cmdlock.init();
zble_proto_utils_init(kzble_master);
// m_cmdlock
}
void RemoteControlerUpper::regOnReport(on_report_cb_t on_report) {
m_cb[m_ncb] = on_report;
@ -160,18 +162,18 @@ bool RemoteControlerUpper::txcmd(uint8_t* data, uint32_t len) {
ZLOGI(TAG, "txcmd : %s(%d)", zhex2str(data, len), len);
#endif
// HAL_UART_Transmit(m_uart, data, len, 100);
HAL_UART_Transmit_DMA(m_uart, data, len);
HAL_UART_Transmit(m_uart, data, len, 100);
// HAL_UART_Transmit_DMA(m_uart, data, len);
bool suc = ackQueue.receive(&ackcache, CMD_OVERTIME);
if (!suc) {
ZLOGI(TAG, "txcmd failed");
HAL_UART_DMAStop(m_uart);
ZLOGI(TAG, "txcmd : %s(%d) fail", zhex2str(data, len), len);
// HAL_UART_DMAStop(m_uart);
return false;
}
#if DEBUG
ZLOGI(TAG, "ack : %s", zhex2str(ackcache.data, ackcache.datalen));
#endif
HAL_UART_DMAStop(m_uart);
// HAL_UART_DMAStop(m_uart);
return true;
}
@ -233,8 +235,16 @@ bool RemoteControlerUpper::setSlaveInDfuMode() {
return suc;
}
bool RemoteControlerUpper::startScan() {
zble_proto_utils_create_cmd_packet(txpacket, kzble_cmd_start_scan, m_index++, NULL, 0);
bool RemoteControlerUpper::startScan(const char* slaveName, bool autoConnect) {
// typedef struct {
// uint8_t slaveName[20];
// uint8_t autoConnect;
// } zble_start_scan_t;
zble_start_scan_t scanparam = {0};
if (slaveName) strncpy((char*)scanparam.slaveName, slaveName, 20);
scanparam.autoConnect = autoConnect;
zble_proto_utils_create_cmd_packet(txpacket, kzble_cmd_start_scan, m_index++, (uint8_t*)&scanparam, sizeof(scanparam));
zble_proto_utils_set_packet_to(txpacket, kzble_master);
bool suc = txcmd(txbuf, txpacket->packetlen);
return suc;

5
usrc/service/remote_controler.hpp

@ -16,7 +16,7 @@ class RemoteControlerUpper {
on_report_cb_t m_cb[50];
int32_t m_ncb = 0;
zmutex m_cmdlock;
zmutex m_cmdlock = {"RemoteControlerUpperLock"};
uint8_t txbuf[255];
RemoteControlerReportPacket_t ackcache;
@ -24,6 +24,7 @@ class RemoteControlerUpper {
zble_proto_packet_t* rxpacket = (zble_proto_packet_t*)ackcache.data;
uint8_t m_index = 0;
public:
RemoteControlerUpper() {};
@ -62,7 +63,7 @@ class RemoteControlerUpper {
bool setMasterInDfuMode();
bool setSlaveInDfuMode();
bool startScan();
bool startScan(const char* slaveName, bool autoConnect);
bool stopScan();
/***********************************************************************************************************************

12
usrc/service/remote_controler_state_sync_service.cpp

@ -6,10 +6,13 @@
using namespace iflytop;
void RemoteControlerStateSyncService::initialize() {
AppEventBus::ins()->regOnEvent([this](AppEvent_t* event) {
if (event->type == kAppEvent_BleConnectedStateChangeEvent) {
zlock_guard lck(m_forceUpdateflagLock);
m_forceUpdateflagLock.init();
RCTRL->regOnReport([this](uint8_t* rx, int32_t len) {
zble_proto_packet_t* packet = (zble_proto_packet_t*)rx;
if (packet->cmd == kzble_report_connected_event) {
m_forceUpdateflag = true;
return;
}
});
@ -19,10 +22,11 @@ void RemoteControlerStateSyncService::initialize() {
void RemoteControlerStateSyncService::startSync() {
bleStateUpdateThread.start([this]() {
//
hand_acid_mode_t runmode = khand_acid_m_unset_mode;
hand_acid_mode_t runmode = khand_acid_m_jog_mode;
bool workState = false;
bool forceupdate = false;
RCTRL->setRemoterState(runmode, workState);
while (true) {
if (!RCTRL->isConnected()) {
osDelay(100);

5
usrc/service/remote_controler_state_sync_service.hpp

@ -8,8 +8,9 @@ class RemoteControlerStateSyncService {
private:
/* data */
ZThread bleStateUpdateThread;
bool m_forceUpdateflag = false;
zmutex m_forceUpdateflagLock;
bool m_forceUpdateflag = false;
zmutex m_forceUpdateflagLock = {"m_forceUpdateflagLock"};
public:
static RemoteControlerStateSyncService* ins() {

Loading…
Cancel
Save