Compare commits
2 Commits
b5de72a6d1
...
79e5760d19
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
79e5760d19 | ||
|
|
dcbe637ccc |
@@ -79,7 +79,7 @@ void TimerEvent_handling(Timing_RTC event){
|
|||||||
}
|
}
|
||||||
printf("\r\nCHx Closs : ");
|
printf("\r\nCHx Closs : ");
|
||||||
for (j = 0; j < Relay_Number_MAX; j++) {
|
for (j = 0; j < Relay_Number_MAX; j++) {
|
||||||
if(*(&(event.Relay_CH1)+j) == STATE_Closs)
|
if(*(&(event.Relay_CH1)+j) == STATE_Close)
|
||||||
printf("CH%d ", j+1);
|
printf("CH%d ", j+1);
|
||||||
}
|
}
|
||||||
if(Retain_channels){
|
if(Retain_channels){
|
||||||
@@ -233,7 +233,7 @@ void TimerEvent_CHxn_Set(datetime_t time,Status_adjustment *Relay_n, Repetition_
|
|||||||
for (int i = 0; i < Relay_Number_MAX; i++) {
|
for (int i = 0; i < Relay_Number_MAX; i++) {
|
||||||
if(Relay_n[i] == STATE_Open)
|
if(Relay_n[i] == STATE_Open)
|
||||||
printf("Open ");
|
printf("Open ");
|
||||||
else if(Relay_n[i] == STATE_Closs)
|
else if(Relay_n[i] == STATE_Close)
|
||||||
printf("Closs ");
|
printf("Closs ");
|
||||||
else if(Relay_n[i] == STATE_Retain)
|
else if(Relay_n[i] == STATE_Retain)
|
||||||
printf("Retain ");
|
printf("Retain ");
|
||||||
@@ -253,7 +253,7 @@ void TimerEvent_CHxn_Set(datetime_t time,Status_adjustment *Relay_n, Repetition_
|
|||||||
for (int i = 0; i < Relay_Number_MAX; i++) {
|
for (int i = 0; i < Relay_Number_MAX; i++) {
|
||||||
if (Relay_n[i] == STATE_Open)
|
if (Relay_n[i] == STATE_Open)
|
||||||
len += snprintf(Event_content + len, sizeof(Event_content) - len, "Open ");
|
len += snprintf(Event_content + len, sizeof(Event_content) - len, "Open ");
|
||||||
else if(Relay_n[i] == STATE_Closs)
|
else if(Relay_n[i] == STATE_Close)
|
||||||
len += snprintf(Event_content + len, sizeof(Event_content) - len, "Closs ");
|
len += snprintf(Event_content + len, sizeof(Event_content) - len, "Closs ");
|
||||||
else if(Relay_n[i] == STATE_Retain)
|
else if(Relay_n[i] == STATE_Retain)
|
||||||
len += snprintf(Event_content + len, sizeof(Event_content) - len, "Retain ");
|
len += snprintf(Event_content + len, sizeof(Event_content) - len, "Retain ");
|
||||||
@@ -312,7 +312,7 @@ void TimerEvent_printf(Timing_RTC event){
|
|||||||
}
|
}
|
||||||
printf("\r\nCHx Closs : ");
|
printf("\r\nCHx Closs : ");
|
||||||
for (j = 0; j < Relay_Number_MAX; j++) {
|
for (j = 0; j < Relay_Number_MAX; j++) {
|
||||||
if(open[j] == STATE_Closs)
|
if(open[j] == STATE_Close)
|
||||||
printf("CH%d ", j+1);
|
printf("CH%d ", j+1);
|
||||||
}
|
}
|
||||||
printf("\r\nCHx Retain : ");
|
printf("\r\nCHx Retain : ");
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ bool Relay_Open(uint8_t CHx)
|
|||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
bool Relay_Closs(uint8_t CHx)
|
bool Relay_Close(uint8_t CHx)
|
||||||
{
|
{
|
||||||
if(!Set_EXIO(CHx, false)){
|
if(!Set_EXIO(CHx, false)){
|
||||||
printf("Failed to Closs CH%d!!!\r\n", CHx);
|
printf("Failed to Closs CH%d!!!\r\n", CHx);
|
||||||
@@ -35,7 +35,7 @@ bool Relay_CHx(uint8_t CHx, bool State)
|
|||||||
if(State)
|
if(State)
|
||||||
result = Relay_Open(CHx);
|
result = Relay_Open(CHx);
|
||||||
else
|
else
|
||||||
result = Relay_Closs(CHx);
|
result = Relay_Close(CHx);
|
||||||
if(!result)
|
if(!result)
|
||||||
Failure_Flag = 1;
|
Failure_Flag = 1;
|
||||||
return result;
|
return result;
|
||||||
@@ -233,12 +233,12 @@ void Relay_Immediate_CHxn(Status_adjustment * Relay_n, uint8_t Mode_Flag)
|
|||||||
else if(Mode_Flag == RTC_Mode)
|
else if(Mode_Flag == RTC_Mode)
|
||||||
printf("RTC Data :\r\n");
|
printf("RTC Data :\r\n");
|
||||||
for (int i = 0; i < 8; i++) {
|
for (int i = 0; i < 8; i++) {
|
||||||
if(Relay_n[i] == STATE_Open || Relay_n[i] == STATE_Closs){
|
if(Relay_n[i] == STATE_Open || Relay_n[i] == STATE_Close){
|
||||||
Relay_Flag[i] = (bool)Relay_n[i];
|
Relay_Flag[i] = (bool)Relay_n[i];
|
||||||
ret = Relay_CHx(i+1,Relay_n[i]);
|
ret = Relay_CHx(i+1,Relay_n[i]);
|
||||||
if(Relay_n[i] == STATE_Open)
|
if(Relay_n[i] == STATE_Open)
|
||||||
printf("|*** Relay CH%d on ***|\r\n",i+1);
|
printf("|*** Relay CH%d on ***|\r\n",i+1);
|
||||||
else if(Relay_n[i] == STATE_Closs)
|
else if(Relay_n[i] == STATE_Close)
|
||||||
printf("|*** Relay CH%d off ***|\r\n",i+1);
|
printf("|*** Relay CH%d off ***|\r\n",i+1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
#define RTC_Mode 6
|
#define RTC_Mode 6
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
STATE_Closs = 0, // Closs Relay
|
STATE_Close = 0, // Closs Relay
|
||||||
STATE_Open = 1, // Open Relay
|
STATE_Open = 1, // Open Relay
|
||||||
STATE_Retain = 2, // Stay in place
|
STATE_Retain = 2, // Stay in place
|
||||||
} Status_adjustment;
|
} Status_adjustment;
|
||||||
@@ -44,7 +44,7 @@ typedef enum {
|
|||||||
extern bool Relay_Flag[8]; // Relay current status flag
|
extern bool Relay_Flag[8]; // Relay current status flag
|
||||||
|
|
||||||
void Relay_Init(void);
|
void Relay_Init(void);
|
||||||
bool Relay_Closs(uint8_t CHx);
|
bool Relay_Close(uint8_t CHx);
|
||||||
bool Relay_Open(uint8_t CHx);
|
bool Relay_Open(uint8_t CHx);
|
||||||
bool Relay_CHx_Toggle(uint8_t CHx);
|
bool Relay_CHx_Toggle(uint8_t CHx);
|
||||||
bool Relay_CHx(uint8_t CHx, bool State);
|
bool Relay_CHx(uint8_t CHx, bool State);
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ namespace drivers
|
|||||||
|
|
||||||
const bool TCA9554PWR::writeRegister(const uint8_t reg, const uint8_t val)
|
const bool TCA9554PWR::writeRegister(const uint8_t reg, const uint8_t val)
|
||||||
{
|
{
|
||||||
if (m_i2c.Write(m_address, reg, {val}))
|
if (m_i2c.write(m_address, reg, {val}))
|
||||||
return true;
|
return true;
|
||||||
log_e("Unable to write register: reg[%d], val[%d] ", reg, val);
|
log_e("Unable to write register: reg[%d], val[%d] ", reg, val);
|
||||||
return false;
|
return false;
|
||||||
@@ -20,7 +20,7 @@ namespace drivers
|
|||||||
const bool TCA9554PWR::readRegister(const uint8_t reg, uint8_t &val)
|
const bool TCA9554PWR::readRegister(const uint8_t reg, uint8_t &val)
|
||||||
{
|
{
|
||||||
std::vector<uint8_t> data;
|
std::vector<uint8_t> data;
|
||||||
if (m_i2c.Read(m_address, reg, 1, data))
|
if (m_i2c.read(m_address, reg, 1, data))
|
||||||
{
|
{
|
||||||
val = data.back();
|
val = data.back();
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ namespace drivers
|
|||||||
isInitialized = true;
|
isInitialized = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool I2C::Read(const uint8_t deviceAddr, const uint8_t deviceReg, const uint8_t len, std::vector<uint8_t> &data)
|
const bool I2C::read(const uint8_t deviceAddr, const uint8_t deviceReg, const uint8_t len, std::vector<uint8_t> &data)
|
||||||
{
|
{
|
||||||
busy.try_lock();
|
busy.try_lock();
|
||||||
Wire.beginTransmission(deviceAddr);
|
Wire.beginTransmission(deviceAddr);
|
||||||
@@ -49,7 +49,7 @@ namespace drivers
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool I2C::Write(const uint8_t deviceAddr, const uint8_t deviceReg, const std::vector<uint8_t> &data)
|
const bool I2C::write(const uint8_t deviceAddr, const uint8_t deviceReg, const std::vector<uint8_t> &data)
|
||||||
{
|
{
|
||||||
busy.lock();
|
busy.lock();
|
||||||
Wire.beginTransmission(deviceAddr);
|
Wire.beginTransmission(deviceAddr);
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ namespace drivers
|
|||||||
I2C(void);
|
I2C(void);
|
||||||
~I2C(void);
|
~I2C(void);
|
||||||
|
|
||||||
const bool Read(const uint8_t deviceAddr, const uint8_t deviceReg, const uint8_t len, std::vector<uint8_t> &data);
|
const bool read(const uint8_t deviceAddr, const uint8_t deviceReg, const uint8_t len, std::vector<uint8_t> &data);
|
||||||
const bool Write(const uint8_t deviceAddr, const uint8_t deviceReg, const std::vector<uint8_t> &data);
|
const bool write(const uint8_t deviceAddr, const uint8_t deviceReg, const std::vector<uint8_t> &data);
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -190,4 +190,68 @@ void datetime_to_str(char *datetime_str, datetime_t time)
|
|||||||
{
|
{
|
||||||
sprintf(datetime_str, " %d.%d.%d %d:%d:%d %s", time.year, time.month,
|
sprintf(datetime_str, " %d.%d.%d %d:%d:%d %s", time.year, time.month,
|
||||||
time.day, time.hour, time.minute, time.second, Week[time.dotw]);
|
time.day, time.hour, time.minute, time.second, Week[time.dotw]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace drivers
|
||||||
|
{
|
||||||
|
|
||||||
|
PCF85063::PCF85063(I2C &i2c, const uint8_t address) : m_i2c(i2c), m_address(address)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const bool PCF85063::reset(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const bool PCF85063::setTime(datetime_t time)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const bool PCF85063::setDate(datetime_t date)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const bool PCF85063::setDatetime(datetime_t datetime)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const bool PCF85063::readDate(datetime_t &datetime)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const bool PCF85063::readTime(datetime_t &datetime)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const bool PCF85063::readDatetime(datetime_t &datetime)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const bool PCF85063::enableAlarm(const bool enable)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const bool PCF85063::setAlarm(datetime_t time)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const bool PCF85063::readAlarm(datetime_t &time)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const bool PCF85063::getAlarmFlafs(uint8_t &flags)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::string PCF85063::datetime2str(datetime_t &time)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const uint8_t PCF85063::decToBcd(int val)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const int PCF85063::bcdToDec(uint8_t val)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "I2C_Driver.h"
|
#include "I2C_Driver.h"
|
||||||
|
#include <string>
|
||||||
|
|
||||||
// PCF85063_ADDRESS
|
// PCF85063_ADDRESS
|
||||||
#define PCF85063_ADDRESS (0x51)
|
#define PCF85063_ADDRESS (0x51)
|
||||||
@@ -90,3 +91,48 @@ void PCF85063_Set_Alarm(datetime_t time);
|
|||||||
void PCF85063_Read_Alarm(datetime_t *time);
|
void PCF85063_Read_Alarm(datetime_t *time);
|
||||||
|
|
||||||
void datetime_to_str(char *datetime_str, datetime_t time);
|
void datetime_to_str(char *datetime_str, datetime_t time);
|
||||||
|
|
||||||
|
namespace drivers
|
||||||
|
{
|
||||||
|
|
||||||
|
class PCF85063
|
||||||
|
{
|
||||||
|
I2C &m_i2c;
|
||||||
|
uint8_t m_address;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uint16_t year;
|
||||||
|
uint8_t month;
|
||||||
|
uint8_t day;
|
||||||
|
uint8_t dotw;
|
||||||
|
uint8_t hour;
|
||||||
|
uint8_t minute;
|
||||||
|
uint8_t second;
|
||||||
|
} datetime_t;
|
||||||
|
|
||||||
|
public:
|
||||||
|
PCF85063(I2C &i2c, const uint8_t address, const uint8_t ctrl1, const uint8_t ctrl2);
|
||||||
|
|
||||||
|
const bool reset(void);
|
||||||
|
|
||||||
|
const bool setTime(datetime_t time);
|
||||||
|
const bool setDate(datetime_t date);
|
||||||
|
const bool setDatetime(datetime_t datetime);
|
||||||
|
|
||||||
|
const bool readDate(datetime_t &datetime);
|
||||||
|
const bool readTime(datetime_t &datetime);
|
||||||
|
const bool readDatetime(datetime_t &datetime);
|
||||||
|
|
||||||
|
const bool enableAlarm(const bool enable);
|
||||||
|
const bool setAlarm(datetime_t time);
|
||||||
|
const bool readAlarm(datetime_t &time);
|
||||||
|
const bool getAlarmFlafs(uint8_t& flags);
|
||||||
|
|
||||||
|
private:
|
||||||
|
const std::string datetime2str(datetime_t &time);
|
||||||
|
const uint8_t decToBcd(int val);
|
||||||
|
const int bcdToDec(uint8_t val);
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ void setup() {
|
|||||||
Flash_test();
|
Flash_test();
|
||||||
GPIO_Init(); // RGB . Buzzer GPIO
|
GPIO_Init(); // RGB . Buzzer GPIO
|
||||||
//I2C_Init();
|
//I2C_Init();
|
||||||
RTC_Init();// RTC
|
//RTC_Init(); // RTC
|
||||||
SD_Init();
|
SD_Init();
|
||||||
Serial_Init(); // UART(RS485/CAN)
|
Serial_Init(); // UART(RS485/CAN)
|
||||||
MQTT_Init();// MQTT
|
MQTT_Init();// MQTT
|
||||||
|
|||||||
Reference in New Issue
Block a user