mirror of
https://github.com/UtilitechAS/amsreader-firmware.git
synced 2026-01-15 16:25:43 +00:00
74 lines
1.5 KiB
C++
74 lines
1.5 KiB
C++
#ifndef _KAIFAHAN_h
|
|
#define _KAIFAHAN_h
|
|
|
|
#if defined(ARDUINO) && ARDUINO >= 100
|
|
#include "Arduino.h"
|
|
#else
|
|
#include "WProgram.h"
|
|
#endif
|
|
|
|
class KaifaHan
|
|
{
|
|
public:
|
|
byte GetListID(byte *buffer, int start, int length);
|
|
long GetPackageTime(byte *buffer, int start, int length);
|
|
int GetInt(int dataPosition, byte *buffer, int start, int length);
|
|
String GetString(int dataPosition, byte *buffer, int start, int length);
|
|
protected:
|
|
|
|
private:
|
|
int findValuePosition(int dataPosition, byte *buffer, int start, int length);
|
|
time_t toUnixTime(int year, int month, int day, int hour, int minute, int second);
|
|
};
|
|
|
|
enum class List : byte {
|
|
ListUnknown = 0x00,
|
|
List1 = 0x01,
|
|
List2 = 0x0D,
|
|
List3 = 0x12
|
|
};
|
|
|
|
|
|
enum class List1_ObisObjects {
|
|
ActivePowerImported
|
|
};
|
|
|
|
enum class List2_ObisObjects {
|
|
ObisListVersionIdentifier,
|
|
MeterID,
|
|
MeterType,
|
|
ActivePowerImported,
|
|
ActivePowerExported,
|
|
ReactivePowerImported,
|
|
ReactivePowerExported,
|
|
CurrentPhaseL1,
|
|
CurrentPhaseL2,
|
|
CurrentPhaseL3,
|
|
VoltagePhaseL1,
|
|
VoltagePhaseL2,
|
|
VoltagePhaseL3
|
|
};
|
|
|
|
enum class List3_ObisObjects {
|
|
ObisListVersionIdentifier,
|
|
MeterID,
|
|
MeterType,
|
|
ActivePowerImported,
|
|
ActivePowerExported,
|
|
ReactivePowerImported,
|
|
ReactivePowerExported,
|
|
CurrentPhaseL1,
|
|
CurrentPhaseL2,
|
|
CurrentPhaseL3,
|
|
VoltagePhaseL1,
|
|
VoltagePhaseL2,
|
|
VoltagePhaseL3,
|
|
ClockAndDate,
|
|
TotalActiveEnergyImported,
|
|
TotalActiveEnergyExported,
|
|
TotalReactiveEnergyImported,
|
|
TotalReactiveEnergyExported
|
|
};
|
|
|
|
#endif
|