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
* @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;
};

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);
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]);
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;
}
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() {
uint32_t val = 0;
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 "sdk\components\api\zi_eeprom.hpp"
#include "sdk\os\zos.hpp"
#ifdef HAL_I2C_MODULE_ENABLED
namespace iflytop {
using namespace std;
//ref::https://iflytop1.feishu.cn/wiki/PO1LwwvaNi4F10kiobMcjSK4nBg
// ref::https://iflytop1.feishu.cn/wiki/PO1LwwvaNi4F10kiobMcjSK4nBg
class M24LRXXE_I2C_EEPROM : public ZI_EEPROM {
I2C_HandleTypeDef* m_i2c_handle;
public:
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;
int32_t readCfgReg(int32_t add, uint32_t* val);
private:
int32_t write32(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; }
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);
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]);
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);
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 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 {
ENABLE_MODULE(WaterCoolingTemperatureControlModule, kwater_temperature_ctrl_module, PC_VERSION);
ENABLE_MODULE(WaterCoolingTemperatureControlModule, ktemperature_ctrl_module, PC_VERSION);
public:
typedef struct {

Loading…
Cancel
Save