summaryrefslogtreecommitdiff
path: root/src/p18/defines.cc
diff options
context:
space:
mode:
authorEvgeny Zinoviev <me@ch1p.io>2021-06-07 01:40:32 +0300
committerEvgeny Zinoviev <me@ch1p.io>2021-12-02 04:05:15 +0300
commit3aed59276c2b7275603f6da18377b77718948667 (patch)
tree86816d82ab02b6e4761175d599f5749490706792 /src/p18/defines.cc
parentd86ca1e596b094cba101e0e3e6c8cdb71f8116e9 (diff)
wipp17
Diffstat (limited to 'src/p18/defines.cc')
-rw-r--r--src/p18/defines.cc262
1 files changed, 0 insertions, 262 deletions
diff --git a/src/p18/defines.cc b/src/p18/defines.cc
deleted file mode 100644
index 999f81a..0000000
--- a/src/p18/defines.cc
+++ /dev/null
@@ -1,262 +0,0 @@
-// SPDX-License-Identifier: BSD-3-Clause
-
-#include <iostream>
-
-#include "defines.h"
-#include "types.h"
-
-namespace p18 {
-
-const std::map<CommandType, std::string> raw_commands = {
- {CommandType::GetProtocolID, "PI"},
- {CommandType::GetCurrentTime, "T"},
- {CommandType::GetTotalGenerated, "ET"},
- {CommandType::GetYearGenerated, "EY"},
- {CommandType::GetMonthGenerated, "EM"},
- {CommandType::GetDayGenerated, "ED"},
- {CommandType::GetSeriesNumber, "ID"},
- {CommandType::GetCPUVersion, "VFW"},
- {CommandType::GetRatedInformation, "PIRI"},
- {CommandType::GetGeneralStatus, "GS"},
- {CommandType::GetWorkingMode, "MOD"},
- {CommandType::GetFaultsAndWarnings, "FWS"},
- {CommandType::GetFlagsAndStatuses, "FLAG"},
- {CommandType::GetDefaults, "DI"},
- {CommandType::GetAllowedChargingCurrents, "MCHGCR"},
- {CommandType::GetAllowedACChargingCurrents, "MUCHGCR"},
- {CommandType::GetParallelRatedInformation, "PRI"},
- {CommandType::GetParallelGeneralStatus, "PGS"},
- {CommandType::GetACChargingTimeBucket, "ACCT"},
- {CommandType::GetACLoadsSupplyTimeBucket, "ACLT"},
- {CommandType::SetLoads, "LON"},
- {CommandType::SetFlag, "P"},
- {CommandType::SetDefaults, "PF"},
- {CommandType::SetBatteryMaxChargingCurrent, "MCHGC"},
- {CommandType::SetBatteryMaxACChargingCurrent, "MUCHGC"},
- /* The protocol documentation defines two commands, "F50" and "F60",
- but it's identical as if there were just one "F" command with an argument. */
- {CommandType::SetACOutputFreq, "F"},
- {CommandType::SetBatteryMaxChargingVoltage, "MCHGV"},
- {CommandType::SetACOutputRatedVoltage, "V"},
- {CommandType::SetOutputSourcePriority, "POP"},
- {CommandType::SetBatteryChargingThresholds, "BUCD"},
- {CommandType::SetChargingSourcePriority, "PCP"},
- {CommandType::SetSolarPowerPriority, "PSP"},
- {CommandType::SetACInputVoltageRange, "PGR"},
- {CommandType::SetBatteryType, "PBT"},
- {CommandType::SetOutputModel, "POPM"},
- {CommandType::SetBatteryCutOffVoltage, "PSDV"},
- {CommandType::SetSolarConfig, "ID"},
- {CommandType::ClearGenerated, "CLE"},
- {CommandType::SetDateTime, "DAT"},
- {CommandType::SetACChargingTimeBucket, "ACCT"},
- {CommandType::SetACLoadsSupplyTimeBucket, "ACLT"},
-};
-
-const std::array<int, 5> ac_output_rated_voltages = {202, 208, 220, 230, 240};
-
-const std::array<float, 8> bat_ac_recharging_voltages_12v = {11, 11.3, 11.5, 11.8, 12, 12.3, 12.5, 12.8};
-const std::array<float, 8> bat_ac_recharging_voltages_24v = {22, 22.5, 23, 23.5, 24, 24.5, 25, 25.5};
-const std::array<float, 8> bat_ac_recharging_voltages_48v = {44, 45, 46, 47, 48, 49, 50, 51};
-
-const std::array<float, 12> bat_ac_redischarging_voltages_12v = {0, 12, 12.3, 12.5, 12.8, 13, 13.3, 13.5, 13.8, 14, 14.3, 14.5};
-const std::array<float, 12> bat_ac_redischarging_voltages_24v = {0, 24, 24.5, 25, 25.5, 26, 26.5, 27, 27.5, 28, 28.5, 29};
-const std::array<float, 12> bat_ac_redischarging_voltages_48v = {0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58};
-
-const std::map<int, std::string> fault_codes = {
- {1, "Fan is locked"},
- {2, "Over temperature"},
- {3, "Battery voltage is too high"},
- {4, "Battery voltage is too low"},
- {5, "Output short circuited or Over temperature"},
- {6, "Output voltage is too high"},
- {7, "Over load time out"},
- {8, "Bus voltage is too high"},
- {9, "Bus soft start failed"},
- {11, "Main relay failed"},
- {51, "Over current inverter"},
- {52, "Bus soft start failed"},
- {53, "Inverter soft start failed"},
- {54, "Self-test failed"},
- {55, "Over DC voltage on output of inverter"},
- {56, "Battery connection is open"},
- {57, "Current sensor failed"},
- {58, "Output voltage is too low"},
- {60, "Inverter negative power"},
- {71, "Parallel version different"},
- {72, "Output circuit failed"},
- {80, "CAN communication failed"},
- {81, "Parallel host line lost"},
- {82, "Parallel synchronized signal lost"},
- {83, "Parallel battery voltage detect different"},
- {84, "Parallel LINE voltage or frequency detect different"},
- {85, "Parallel LINE input current unbalanced"},
- {86, "Parallel output setting different"},
-};
-
-const std::array<Flag, 9> flags = {{
- {"BUZZ", 'A', "Silence buzzer or open buzzer"},
- {"OLBP", 'B', "Overload bypass function"},
- {"LCDE", 'C', "LCD display escape to default page after 1min timeout"},
- {"OLRS", 'D', "Overload restart"},
- {"OTRS", 'E', "Overload temperature restart"},
- {"BLON", 'F', "Backlight on"},
- {"ALRM", 'G', "Alarm on primary source interrupt"},
- {"FTCR", 'H', "Fault code record"},
- {"MTYP", 'I', "Machine type (1=Grid-Tie, 0=Off-Grid-Tie)"},
-}};
-
-ENUM_STR(BatteryType) {
- switch (val) {
- case BatteryType::AGM: return os << "AGM" ;
- case BatteryType::Flooded: return os << "Flooded";
- case BatteryType::User: return os << "User";
- };
- ENUM_STR_DEFAULT;
-}
-
-ENUM_STR(InputVoltageRange) {
- switch (val) {
- case InputVoltageRange::Appliance: return os << "Appliance";
- case InputVoltageRange::USP: return os << "USP";
- }
- ENUM_STR_DEFAULT;
-}
-
-ENUM_STR(OutputSourcePriority) {
- switch (val) {
- case OutputSourcePriority::SolarUtilityBattery:
- return os << "Solar-Utility-Battery";
- case OutputSourcePriority::SolarBatteryUtility:
- return os << "Solar-Battery-Utility";
- }
- ENUM_STR_DEFAULT;
-}
-
-ENUM_STR(ChargerSourcePriority) {
- switch (val) {
- case ChargerSourcePriority::SolarFirst:
- return os << "Solar-First";
- case ChargerSourcePriority::SolarAndUtility:
- return os << "Solar-and-Utility";
- case ChargerSourcePriority::SolarOnly:
- return os << "Solar-only";
- }
- ENUM_STR_DEFAULT;
-}
-
-ENUM_STR(MachineType) {
- switch (val) {
- case MachineType::OffGridTie: return os << "Off-Grid-Tie";
- case MachineType::GridTie: return os << "Grid-Tie";
- }
- ENUM_STR_DEFAULT;
-}
-
-ENUM_STR(Topology) {
- switch (val) {
- case Topology::TransformerLess: return os << "Transformer-less";
- case Topology::Transformer: return os << "Transformer";
- }
- ENUM_STR_DEFAULT;
-}
-
-ENUM_STR(OutputModelSetting) {
- switch (val) {
- case OutputModelSetting::SingleModule:
- return os << "Single module";
- case OutputModelSetting::ParallelOutput:
- return os << "Parallel output";
- case OutputModelSetting::Phase1OfThreePhaseOutput:
- return os << "Phase 1 of three phase output";
- case OutputModelSetting::Phase2OfThreePhaseOutput:
- return os << "Phase 2 of three phase output";
- case OutputModelSetting::Phase3OfThreePhaseOutput:
- return os << "Phase 3 of three phase";
- }
- ENUM_STR_DEFAULT;
-}
-
-ENUM_STR(SolarPowerPriority) {
- switch (val) {
- case SolarPowerPriority::BatteryLoadUtility:
- return os << "Battery-Load-Utility";
- case SolarPowerPriority::LoadBatteryUtility:
- return os << "Load-Battery-Utility";
- }
- ENUM_STR_DEFAULT;
-}
-
-ENUM_STR(MPPTChargerStatus) {
- switch (val) {
- case MPPTChargerStatus::Abnormal: return os << "Abnormal";
- case MPPTChargerStatus::NotCharging: return os << "Not charging";
- case MPPTChargerStatus::Charging: return os << "Charging";
- }
- ENUM_STR_DEFAULT;
-}
-
-ENUM_STR(BatteryPowerDirection) {
- switch (val) {
- case BatteryPowerDirection::DoNothing: return os << "Do nothing";
- case BatteryPowerDirection::Charge: return os << "Charge";
- case BatteryPowerDirection::Discharge: return os << "Discharge";
- }
- ENUM_STR_DEFAULT;
-}
-
-ENUM_STR(DC_AC_PowerDirection) {
- switch (val) {
- case DC_AC_PowerDirection::DoNothing: return os << "Do nothing";
- case DC_AC_PowerDirection::AC_DC: return os << "AC/DC";
- case DC_AC_PowerDirection::DC_AC: return os << "DC/AC";
- }
- ENUM_STR_DEFAULT;
-}
-
-ENUM_STR(LinePowerDirection) {
- switch (val) {
- case LinePowerDirection::DoNothing: return os << "Do nothing";
- case LinePowerDirection::Input: return os << "Input";
- case LinePowerDirection::Output: return os << "Output";
- }
- ENUM_STR_DEFAULT;
-}
-
-ENUM_STR(WorkingMode) {
- switch (val) {
- case WorkingMode::PowerOnMode: return os << "Power on mode";
- case WorkingMode::StandbyMode: return os << "Standby mode";
- case WorkingMode::BypassMode: return os << "Bypass mode";
- case WorkingMode::BatteryMode: return os << "Battery mode";
- case WorkingMode::FaultMode: return os << "Fault mode";
- case WorkingMode::HybridMode: return os << "Hybrid mode";
- }
- ENUM_STR_DEFAULT;
-}
-
-ENUM_STR(ParallelConnectionStatus) {
- switch (val) {
- case ParallelConnectionStatus::NotExistent: return os << "Non-existent";
- case ParallelConnectionStatus::Existent: return os << "Existent";
- }
- ENUM_STR_DEFAULT;
-}
-
-ENUM_STR(LoadConnectionStatus) {
- switch (val) {
- case LoadConnectionStatus::Disconnected: return os << "Disconnected";
- case LoadConnectionStatus::Connected: return os << "Connected";
- }
- ENUM_STR_DEFAULT;
-}
-
-ENUM_STR(ConfigurationStatus) {
- switch (val) {
- case ConfigurationStatus::Default: return os << "Default";
- case ConfigurationStatus::Changed: return os << "Changed";
- }
- ENUM_STR_DEFAULT;
-}
-
-} \ No newline at end of file