Browse Source

update

master
zhaohe 1 year ago
parent
commit
986dbc2bbb
  1. 4
      components/api/zi_eeprom.hpp
  2. 14
      components/sensors/i2ceeprom/m24lrxxe_i2c_eeprom.cpp
  3. 13
      components/sensors/i2ceeprom/m24lrxxe_i2c_eeprom.hpp
  4. 6
      components/sensors/i2ceeprom/p24c16_eeprom.cpp
  5. 2
      components/sensors/i2ceeprom/p24c16_eeprom.hpp
  6. 2
      components/water_cooling_temperature_control_module/water_cooling_temperature_control_module.hpp

4
components/api/zi_eeprom.hpp

@ -26,8 +26,8 @@ class ZI_EEPROM {
* @param len 4 * @param len 4
* @return int32_t * @return int32_t
*/ */
virtual int32_t write(int32_t add, uint8_t* val, int32_t *len) = 0;
virtual int32_t read(int32_t add, uint8_t* val, int32_t *len) = 0;
virtual int32_t write(int32_t add, uint8_t* val, int32_t len) = 0;
virtual int32_t read(int32_t add, uint8_t* val, int32_t* len) = 0;
virtual bool isOnline() = 0; virtual bool isOnline() = 0;
}; };

14
components/sensors/i2ceeprom/m24lrxxe_i2c_eeprom.cpp

@ -17,13 +17,13 @@ static int32_t halstatustoerr(HAL_StatusTypeDef status) {
} }
} }
void M24LRXXE_I2C_EEPROM::initialize( I2C_HandleTypeDef* i2c_handle) { m_i2c_handle = i2c_handle; }
void M24LRXXE_I2C_EEPROM::initialize(I2C_HandleTypeDef* i2c_handle) { m_i2c_handle = i2c_handle; }
int32_t M24LRXXE_I2C_EEPROM::write(int32_t add, uint8_t* val, int32_t* len) {
ZASSERT(*len % 4 == 0);
int32_t M24LRXXE_I2C_EEPROM::write(int32_t add, uint8_t* val, int32_t len) {
ZASSERT(len % 4 == 0);
ZASSERT(add % 4 == 0); ZASSERT(add % 4 == 0);
int32_t ecode = 0; int32_t ecode = 0;
for (int32_t i = 0; i < *len; i += 4) {
for (int32_t i = 0; i < len; i += 4) {
ecode = write32(add + i, *(uint32_t*)&val[i]); ecode = write32(add + i, *(uint32_t*)&val[i]);
if (ecode != 0) return ecode; if (ecode != 0) return ecode;
} }
@ -39,6 +39,12 @@ int32_t M24LRXXE_I2C_EEPROM::read(int32_t add, uint8_t* val, int32_t* len) {
} }
return ecode; return ecode;
} }
int32_t M24LRXXE_I2C_EEPROM::readCfgReg(int32_t add, uint32_t* val) {
HAL_StatusTypeDef status = HAL_I2C_Mem_Read(m_i2c_handle, CONFIG_ADD << 1, add, I2C_MEMADD_SIZE_16BIT, (uint8_t*)val, 4, 10);
return halstatustoerr(status);
}
bool M24LRXXE_I2C_EEPROM::isOnline() { bool M24LRXXE_I2C_EEPROM::isOnline() {
uint32_t val = 0; uint32_t val = 0;
int32_t ret = read32(0, &val); int32_t ret = read32(0, &val);

13
components/sensors/i2ceeprom/m24lrxxe_i2c_eeprom.hpp

@ -1,25 +1,26 @@
#include "sdk\components\api\zi_eeprom.hpp"
#include "a8000_protocol\protocol.hpp" #include "a8000_protocol\protocol.hpp"
#include "sdk\components\api\zi_eeprom.hpp"
#include "sdk\os\zos.hpp" #include "sdk\os\zos.hpp"
#ifdef HAL_I2C_MODULE_ENABLED #ifdef HAL_I2C_MODULE_ENABLED
namespace iflytop { namespace iflytop {
using namespace std; using namespace std;
//ref::https://iflytop1.feishu.cn/wiki/PO1LwwvaNi4F10kiobMcjSK4nBg
// ref::https://iflytop1.feishu.cn/wiki/PO1LwwvaNi4F10kiobMcjSK4nBg
class M24LRXXE_I2C_EEPROM : public ZI_EEPROM { class M24LRXXE_I2C_EEPROM : public ZI_EEPROM {
I2C_HandleTypeDef* m_i2c_handle; I2C_HandleTypeDef* m_i2c_handle;
public: public:
M24LRXXE_I2C_EEPROM(){}; M24LRXXE_I2C_EEPROM(){};
~M24LRXXE_I2C_EEPROM(){}; ~M24LRXXE_I2C_EEPROM(){};
void initialize( I2C_HandleTypeDef* i2c_handle);
void initialize(I2C_HandleTypeDef* i2c_handle);
virtual int32_t write(int32_t add, uint8_t* val, int32_t *len) override;
virtual int32_t read(int32_t add, uint8_t* val, int32_t *len) override;
virtual int32_t write(int32_t add, uint8_t* val, int32_t len) override;
virtual int32_t read(int32_t add, uint8_t* val, int32_t* len) override;
virtual bool isOnline() override; virtual bool isOnline() override;
int32_t readCfgReg(int32_t add, uint32_t* val);
private: private:
int32_t write32(uint16_t add, uint32_t val); int32_t write32(uint16_t add, uint32_t val);
int32_t read32(uint16_t add, uint32_t* val); int32_t read32(uint16_t add, uint32_t* val);

6
components/sensors/i2ceeprom/p24c16_eeprom.cpp

@ -18,11 +18,11 @@ static int32_t halstatustoerr(HAL_StatusTypeDef status) {
void P24C16::initialize( I2C_HandleTypeDef* i2c_handle) { m_i2c_handle = i2c_handle; } void P24C16::initialize( I2C_HandleTypeDef* i2c_handle) { m_i2c_handle = i2c_handle; }
int32_t P24C16::write(int32_t add, uint8_t* val, int32_t* len) {
ZASSERT(*len % 4 == 0);
int32_t P24C16::write(int32_t add, uint8_t* val, int32_t len) {
ZASSERT(len % 4 == 0);
ZASSERT(add % 4 == 0); ZASSERT(add % 4 == 0);
int32_t ecode = 0; int32_t ecode = 0;
for (int32_t i = 0; i < *len; i += 4) {
for (int32_t i = 0; i < len; i += 4) {
ecode = write32(add + i, *(uint32_t*)&val[i]); ecode = write32(add + i, *(uint32_t*)&val[i]);
if (ecode != 0) return ecode; if (ecode != 0) return ecode;
} }

2
components/sensors/i2ceeprom/p24c16_eeprom.hpp

@ -15,7 +15,7 @@ class P24C16 : public ZI_EEPROM {
void initialize( I2C_HandleTypeDef* i2c_handle); void initialize( I2C_HandleTypeDef* i2c_handle);
virtual int32_t write(int32_t add, uint8_t* val, int32_t* len) override;
virtual int32_t write(int32_t add, uint8_t* val, int32_t len) override;
virtual int32_t read(int32_t add, uint8_t* val, int32_t* len) override; virtual int32_t read(int32_t add, uint8_t* val, int32_t* len) override;
virtual bool isOnline() override; virtual bool isOnline() override;

2
components/water_cooling_temperature_control_module/water_cooling_temperature_control_module.hpp

@ -34,7 +34,7 @@ namespace iflytop {
*/ */
class WaterCoolingTemperatureControlModule : public ZIModule, public ZI_WaterCoolingTemperatureControler { class WaterCoolingTemperatureControlModule : public ZIModule, public ZI_WaterCoolingTemperatureControler {
ENABLE_MODULE(WaterCoolingTemperatureControlModule, kwater_temperature_ctrl_module, PC_VERSION);
ENABLE_MODULE(WaterCoolingTemperatureControlModule, ktemperature_ctrl_module, PC_VERSION);
public: public:
typedef struct { typedef struct {

Loading…
Cancel
Save