Browse Source

udpate

master
zhaohe 1 year ago
parent
commit
754061a569
  1. 2
      a8000_protocol
  2. 2
      sdk
  3. 6
      usrc/public_service/ext_board_impl.cpp
  4. 4
      usrc/subboards/subboard40_and_50_temperature_ctrl/subboard40_and_50_temperature_ctrl.cpp
  5. 59
      usrc/subboards/subboard40_and_50_temperature_ctrl/zcan_fan_ctrl_module.cpp
  6. 18
      usrc/subboards/subboard40_and_50_temperature_ctrl/zcan_fan_ctrl_module.hpp
  7. 4
      usrc/subboards/subboard90_optical_module/optical_module.cpp

2
a8000_protocol

@ -1 +1 @@
Subproject commit 82688278acc674cf0ad6a3a5f9017b93cc45a670
Subproject commit ba9d9901d640255796df949d24351064c1994bc8

2
sdk

@ -1 +1 @@
Subproject commit 9757cd58b49db7604f6aba0483937b505c0f9497
Subproject commit f204e7c9f2418a9859ef30dd019356ace745b15c

6
usrc/public_service/ext_board_impl.cpp

@ -18,7 +18,11 @@ int32_t ExtBoardImpl::board_read_ext_io(int32_t ioindex, int32_t *val) {
*val = IO[ioindex].getState();
return 0;
}
int32_t ExtBoardImpl::board_write_ext_io(int32_t ioindex, int32_t val) { return 0; }
int32_t ExtBoardImpl::board_write_ext_io(int32_t ioindex, int32_t val) {
if (ioindex < 0 || ioindex >= ZARRAY_SIZE(IO)) return err::kparam_out_of_range;
IO[ioindex].setState(val);
return 0;
}
int32_t ExtBoardImpl::board_read_muti_io(int32_t *val) {
*val = 0;
for (int i = 0; i < ZARRAY_SIZE(IO); i++) {

4
usrc/subboards/subboard40_and_50_temperature_ctrl/subboard40_and_50_temperature_ctrl.cpp

@ -56,6 +56,10 @@ void Subboard40And50TemperatureCtrl::initialize() {
temp[2].initializate(&hi2c1, TMP117::ID2);
temp[3].initializate(&hi2c1, TMP117::ID3);
for (size_t i = 0; i < 4; i++) {
ZLOGI(TAG, "temperature %d", i, temp[i].getTemperature());
}
if (getPeltierNum() == 1) {
fan.initialize(FanCtrlModule::kfan0);
peltier.initialize(PeltierCtrlModule::kpeltier0);

59
usrc/subboards/subboard40_and_50_temperature_ctrl/zcan_fan_ctrl_module.cpp

@ -10,12 +10,13 @@ void ZcanFanCtrlModule::initialize(int32_t id, ZIPWMFanCtrlModule* fanmodule, in
OSDefaultSchduler::getInstance()->regPeriodJob(
[this](OSDefaultSchduler::Context& context) { //
if (m_isworking && creg.module_errorcode == 0) {
if (creg.m_module_status == 1) {
if (m_fanmodule->isError()) {
ZLOGE(TAG, "detect fan error,stop fan");
creg.module_errorcode = err::khwardware_error;
creg.module_errorcode = err::kfan_hardware_fault;
m_fanmodule->clearError();
module_stop();
m_fanmodule->stop();
creg.m_module_status = 2;
}
}
},
@ -26,47 +27,37 @@ int32_t ZcanFanCtrlModule::getid(int32_t* id) {
*id = m_id;
return 0;
}
int32_t ZcanFanCtrlModule::module_get_status(int32_t* status) {
if (creg.module_errorcode != 0) {
*status = 2;
} else if (m_isworking) {
*status = 1;
} else {
*status = 0;
}
return 0;
}
int32_t ZcanFanCtrlModule::set_fan_default_speed(int32_t default_speed) {
m_default_speed = default_speed;
if (m_isworking) m_fanmodule->setFanSpeed(default_speed);
return 0;
}
int32_t ZcanFanCtrlModule::module_xxx_reg(int32_t param_id, bool read, int32_t& val) {
switch (param_id) {
MODULE_COMMON_PROCESS_REG_CB();
PROCESS_REG(kreg_fan0_ctrl_speed_level, REG_GET(m_default_speed), set_fan_default_speed(val));
break;
default:
return err::kmodule_not_find_config_index;
return err::kmodule_not_find_reg;
}
return err::kmodule_not_find_config_index;
return err::kmodule_not_find_reg;
}
int32_t ZcanFanCtrlModule::module_stop() {
m_isworking = false;
m_fanmodule->stop();
return 0;
}
int32_t ZcanFanCtrlModule::module_start() {
module_clear_error();
int32_t ZcanFanCtrlModule::module_stop() { return fan_controler_set_speed(0); }
int32_t ZcanFanCtrlModule::fan_controler_set_speed(int32_t fanspeed100) {
if (creg.m_module_status == 2) {
ZLOGE(TAG, "fan error trigger, do nothing");
if (fanspeed100 == 0) {
return 0;
}
return creg.module_errorcode;
}
m_now_speed = fanspeed100;
if (m_default_speed == 0) {
module_stop();
if (m_now_speed == 0) {
m_fanmodule->stop();
creg.m_module_status = 0;
} else {
m_fanmodule->setFanSpeed(m_now_speed);
creg.m_module_status = 1;
creg.module_errorcode = 0;
}
m_isworking = true;
m_fanmodule->setFanSpeed(m_default_speed);
return 0;
}

18
usrc/subboards/subboard40_and_50_temperature_ctrl/zcan_fan_ctrl_module.hpp

@ -16,6 +16,7 @@
#include "sdk/os/zos.hpp"
//
#include "a8000_protocol\api\zi_fan_ctrl.hpp"
#include "a8000_protocol\protocol.hpp"
#include "sdk\components\api\zi_pwm_fan_ctrl_module.hpp"
@ -25,16 +26,14 @@ namespace iflytop {
*
*/
class ZcanFanCtrlModule : public ZIModule {
class ZcanFanCtrlModule : public ZIModule, public ZIFanControler {
ENABLE_MODULE(ZcanFanCtrlModule, kfan_ctrl_module, 1);
public:
ZIPWMFanCtrlModule* m_fanmodule = nullptr;
int32_t m_id = 0;
bool m_isworking = false;
int32_t m_default_speed = 50;
int32_t m_now_speed = 50;
public:
ZcanFanCtrlModule(){};
@ -42,14 +41,17 @@ class ZcanFanCtrlModule : public ZIModule {
void initialize(int32_t id, ZIPWMFanCtrlModule* fanmodule, int32_t default_speed);
/***********************************************************************************************************************
* Module *
***********************************************************************************************************************/
virtual int32_t getid(int32_t* id) override;
virtual int32_t module_get_status(int32_t* status) override;
virtual int32_t module_start();
virtual int32_t module_stop() override;
virtual int32_t module_xxx_reg(int32_t param_id, bool read, int32_t& val) override;
/***********************************************************************************************************************
* ZIFanControler *
***********************************************************************************************************************/
virtual int32_t fan_controler_set_speed(int32_t fanspeed100) override;
public:
virtual int32_t set_fan_default_speed(int32_t default_speed);
};
} // namespace iflytop

4
usrc/subboards/subboard90_optical_module/optical_module.cpp

@ -243,7 +243,7 @@ int32_t OpticalModule::module_xxx_reg(int32_t param_id, bool read, int32_t& val)
// PROCESS_REG(kreg_module_action_ack1, /* */ REG_GET(m_reg.module_action_ack1), ACTION_NONE);
// PROCESS_REG(kreg_module_action_ack2, /* */ REG_GET(m_reg.module_action_ack2), ACTION_NONE);
default:
return err::kmodule_not_find_config_index;
return err::kmodule_not_find_reg;
break;
}
return 0;
@ -283,7 +283,7 @@ int32_t OpticalModule::do_action(int32_t action) {
} else if (action == ACTION_DUMP_RESULT) {
return dumpresult();
}
return err::kmodule_not_support_action;
return err::kcmd_not_support;
}
int32_t OpticalModule::module_stop() {

Loading…
Cancel
Save