Commit 8bf24ba2 authored by captainwong's avatar captainwong

add event solar disturb recover 3387; update g250

parent 76cceefd
...@@ -98,6 +98,7 @@ ...@@ -98,6 +98,7 @@
|3302|复电|BATATTERY_RECOVER| |3302|复电|BATATTERY_RECOVER|
|1311|坏电|BADBATTERY| |1311|坏电|BADBATTERY|
|1387|光扰|SOLARDISTURB| |1387|光扰|SOLARDISTURB|
|3387|光扰恢复|SOLARDISTURB_RECOVER|
|1381|失效|DISCONNECT| |1381|失效|DISCONNECT|
|3381|恢复|RECONNECT| |3381|恢复|RECONNECT|
|1384|防区电源故障|BATTERY_EXCEPTION| |1384|防区电源故障|BATTERY_EXCEPTION|
......
...@@ -53,6 +53,7 @@ ADEMCO_EVENT excepEvents[] = { ...@@ -53,6 +53,7 @@ ADEMCO_EVENT excepEvents[] = {
EVENT_BATTERY_RECOVER, EVENT_BATTERY_RECOVER,
EVENT_BADBATTERY, EVENT_BADBATTERY,
EVENT_SOLARDISTURB, EVENT_SOLARDISTURB,
EVENT_SOLARDISTURB_RECOVER,
EVENT_DISCONNECT, EVENT_DISCONNECT,
EVENT_RECONNECT, EVENT_RECONNECT,
EVENT_BATTERY_EXCEPTION, EVENT_BATTERY_EXCEPTION,
......
...@@ -88,6 +88,7 @@ enum ADEMCO_EVENT : uint32_t { ...@@ -88,6 +88,7 @@ enum ADEMCO_EVENT : uint32_t {
EVENT_BATTERY_RECOVER = 3302, // 复电 EVENT_BATTERY_RECOVER = 3302, // 复电
EVENT_BADBATTERY = 1311, // 坏电 EVENT_BADBATTERY = 1311, // 坏电
EVENT_SOLARDISTURB = 1387, // 光扰 EVENT_SOLARDISTURB = 1387, // 光扰
EVENT_SOLARDISTURB_RECOVER = 3387, // 光扰恢复
EVENT_DISCONNECT = 1381, // 失效 EVENT_DISCONNECT = 1381, // 失效
EVENT_RECONNECT = 3381, // 恢复 EVENT_RECONNECT = 3381, // 恢复
EVENT_BATTERY_EXCEPTION = 1384, // 电源故障 EVENT_BATTERY_EXCEPTION = 1384, // 电源故障
...@@ -196,6 +197,7 @@ static constexpr ADEMCO_EVENT AdemcoEvents[] = { ...@@ -196,6 +197,7 @@ static constexpr ADEMCO_EVENT AdemcoEvents[] = {
EVENT_BATTERY_RECOVER, EVENT_BATTERY_RECOVER,
EVENT_BADBATTERY, EVENT_BADBATTERY,
EVENT_SOLARDISTURB, EVENT_SOLARDISTURB,
EVENT_SOLARDISTURB_RECOVER,
EVENT_DISCONNECT, EVENT_DISCONNECT,
EVENT_RECONNECT, EVENT_RECONNECT,
EVENT_LOST, EVENT_LOST,
...@@ -277,6 +279,7 @@ inline std::string ademcoEventToStringEnglish(ADEMCO_EVENT ademco_event, bool wi ...@@ -277,6 +279,7 @@ inline std::string ademcoEventToStringEnglish(ADEMCO_EVENT ademco_event, bool wi
case EVENT_BATTERY_RECOVER: return n_to_s(ademco_event) + "BATATTERY_RECOVER"; case EVENT_BATTERY_RECOVER: return n_to_s(ademco_event) + "BATATTERY_RECOVER";
case EVENT_BADBATTERY: return n_to_s(ademco_event) + "BADBATTERY"; case EVENT_BADBATTERY: return n_to_s(ademco_event) + "BADBATTERY";
case EVENT_SOLARDISTURB: return n_to_s(ademco_event) + "SOLARDISTURB"; case EVENT_SOLARDISTURB: return n_to_s(ademco_event) + "SOLARDISTURB";
case EVENT_SOLARDISTURB_RECOVER: return n_to_s(ademco_event) + "SOLARDISTURB_RECOVER";
case EVENT_DISCONNECT: return n_to_s(ademco_event) + "DISCONNECT"; case EVENT_DISCONNECT: return n_to_s(ademco_event) + "DISCONNECT";
case EVENT_RECONNECT: return n_to_s(ademco_event) + "RECONNECT"; case EVENT_RECONNECT: return n_to_s(ademco_event) + "RECONNECT";
case EVENT_LOST: return n_to_s(ademco_event) + "LOST"; case EVENT_LOST: return n_to_s(ademco_event) + "LOST";
...@@ -361,6 +364,7 @@ inline const std::wstring ademcoEventToStringChinese(ADEMCO_EVENT ademco_event, ...@@ -361,6 +364,7 @@ inline const std::wstring ademcoEventToStringChinese(ADEMCO_EVENT ademco_event,
case EVENT_BATTERY_RECOVER: return n_to_s(ademco_event) + L"复电"; case EVENT_BATTERY_RECOVER: return n_to_s(ademco_event) + L"复电";
case EVENT_BADBATTERY: return n_to_s(ademco_event) + L"坏电"; case EVENT_BADBATTERY: return n_to_s(ademco_event) + L"坏电";
case EVENT_SOLARDISTURB: return n_to_s(ademco_event) + L"光扰"; case EVENT_SOLARDISTURB: return n_to_s(ademco_event) + L"光扰";
case EVENT_SOLARDISTURB_RECOVER: return n_to_s(ademco_event) + L"光扰恢复";
case EVENT_DISCONNECT: return n_to_s(ademco_event) + L"失效"; case EVENT_DISCONNECT: return n_to_s(ademco_event) + L"失效";
case EVENT_RECONNECT: return n_to_s(ademco_event) + L"恢复"; case EVENT_RECONNECT: return n_to_s(ademco_event) + L"恢复";
case EVENT_LOST: return n_to_s(ademco_event) + L"失联"; case EVENT_LOST: return n_to_s(ademco_event) + L"失联";
...@@ -482,6 +486,7 @@ inline EventLevel GetEventLevel(ADEMCO_EVENT ademco_event) ...@@ -482,6 +486,7 @@ inline EventLevel GetEventLevel(ADEMCO_EVENT ademco_event)
case EVENT_BATTERY_RECOVER: case EVENT_BATTERY_RECOVER:
case EVENT_BATTERY_EXCEPTION_RECOVER: case EVENT_BATTERY_EXCEPTION_RECOVER:
case EVENT_OTHER_EXCEPTION_RECOVER: case EVENT_OTHER_EXCEPTION_RECOVER:
case EVENT_SOLARDISTURB_RECOVER:
return EVENT_LEVEL_EXCEPTION_RESUME; return EVENT_LEVEL_EXCEPTION_RESUME;
case EVENT_AC_BROKE: case EVENT_AC_BROKE:
...@@ -525,7 +530,8 @@ inline ADEMCO_EVENT getExceptionEventByResumeEvent(ADEMCO_EVENT resume_event) ...@@ -525,7 +530,8 @@ inline ADEMCO_EVENT getExceptionEventByResumeEvent(ADEMCO_EVENT resume_event)
case EVENT_BATTERY_RECOVER: return EVENT_LOWBATTERY; case EVENT_BATTERY_RECOVER: return EVENT_LOWBATTERY;
case EVENT_BATTERY_EXCEPTION_RECOVER: return EVENT_BATTERY_EXCEPTION; case EVENT_BATTERY_EXCEPTION_RECOVER: return EVENT_BATTERY_EXCEPTION;
case EVENT_OTHER_EXCEPTION_RECOVER: return EVENT_OTHER_EXCEPTION; case EVENT_OTHER_EXCEPTION_RECOVER: return EVENT_OTHER_EXCEPTION;
case EVENT_AC_RECOVER: return EVENT_AC_BROKE; case EVENT_AC_RECOVER: return EVENT_AC_BROKE;
case EVENT_SOLARDISTURB_RECOVER: return EVENT_SOLARDISTURB;
default: return EVENT_INVALID_EVENT; default: return EVENT_INVALID_EVENT;
} }
} }
......
...@@ -1595,9 +1595,9 @@ enum Sound : Char { ...@@ -1595,9 +1595,9 @@ enum Sound : Char {
SOUND_PART_ALARM, SOUND_PART_ALARM,
//! "接警中心报警选择" 85 //! "接警中心报警选择" 85
SOUND_SEL_ALARM_CENTER, SOUND_SEL_ALARM_CENTER,
//! "网络主机" 86 //! "网络主机" 86 没有资源
SOUND_NET_MACHINE, SOUND_NET_MACHINE,
//! 已断开连接 87 //! 已断开连接 87 没有资源
SOUND_DISCONNECT, SOUND_DISCONNECT,
//! 88 //! 88
...@@ -2005,7 +2005,7 @@ enum AlarmCode : Char { ...@@ -2005,7 +2005,7 @@ enum AlarmCode : Char {
//! 关机 //! 关机
ALARM_SHUTDOWN = 0xED, ALARM_SHUTDOWN = 0xED,
//! 防拆 //! 防拆
ALARM_TEMPER = 0xBA, ALARM_TAMPER = 0xBA,
//! 发低电 //! 发低电
ALARM_S_BATTERY_LOW = 0xAB, ALARM_S_BATTERY_LOW = 0xAB,
//! 收低电 //! 收低电
...@@ -2250,14 +2250,6 @@ struct AllZoneInfo { ...@@ -2250,14 +2250,6 @@ struct AllZoneInfo {
} }
}; };
/**
* @brief 串口透传协议
* @note 网络传输模块与主机模块通信协议
* @note 客户端(手机APP、接警中心等)会用到一些透传数据
*/
namespace com
{
//! PC到主机,查询主机(自身或防区)或分机(自身或防区)状态 //! PC到主机,查询主机(自身或防区)或分机(自身或防区)状态
struct Query { struct Query {
static constexpr Char len = 8; static constexpr Char len = 8;
...@@ -2314,12 +2306,22 @@ struct Query { ...@@ -2314,12 +2306,22 @@ struct Query {
return queryZoneStatusOfSubMachine(ademco::Zone4MachineSelf); return queryZoneStatusOfSubMachine(ademco::Zone4MachineSelf);
} }
static Query queryZoneStatusOfSubMachine(Char zone) { static Query queryZoneStatusOfSubMachine(uint16_t zone) {
Query query; Query query;
query.setZone(zone); query.setZone(zone);
query.data[5] = Param::Get::P1::QuerySubMachine; query.data[5] = Param::Get::P1::QuerySubMachine;
query.data[6] = 0xEE; query.data[6] = 0xEE;
sum(query); return query; sum(query);
return query;
}
static Query setQuery(uint16_t zone = 0, Param::Set::P1 action = Param::Set::P1::SetArm) {
Query query;
query.setZone(zone);
query.data[5] = action;
query.data[6] = 0xEE;
sum(query);
return query;
} }
}; };
...@@ -2352,8 +2354,41 @@ struct WriteToMachineRequest { ...@@ -2352,8 +2354,41 @@ struct WriteToMachineRequest {
} }
}; };
} // namespace com //! 从 EB B1 。。。命令[5]提取的事件码
} // namespace old ademco::ADEMCO_EVENT ademcoEventFromCode(Char code) {
switch (code) {
case MachineStatus::Arm: return ademco::ADEMCO_EVENT::EVENT_ARM;
case MachineStatus::Disarm: return ademco::ADEMCO_EVENT::EVENT_DISARM;
case MachineStatus::HalfArm: return ademco::ADEMCO_EVENT::EVENT_HALFARM;
case AlarmCode::MACHINE_EMERGENCY: return ademco::ADEMCO_EVENT::EVENT_EMERGENCY;
case AlarmCode::ALARM_BURGLAR: return ademco::ADEMCO_EVENT::EVENT_BURGLAR;
case AlarmCode::ALARM_FIRE: return ademco::ADEMCO_EVENT::EVENT_FIRE;
case AlarmCode::ALARM_DURESS: return ademco::ADEMCO_EVENT::EVENT_DURESS;
case AlarmCode::ALARM_GAS: return ademco::ADEMCO_EVENT::EVENT_GAS;
case AlarmCode::ALARM_WATER: return ademco::ADEMCO_EVENT::EVENT_WATER;
case AlarmCode::ALARM_TAMPER: return ademco::ADEMCO_EVENT::EVENT_TAMPER;
case AlarmCode::ALARM_S_BATTERY_LOW:
case AlarmCode::ALARM_R_BATTERY_LOW: return ademco::ADEMCO_EVENT::EVENT_LOWBATTERY;
case AlarmCode::ALARM_S_BATTERY_BROKE:
case AlarmCode::ALARM_R_BATTERY_BROKE: return ademco::ADEMCO_EVENT::EVENT_BADBATTERY;
case AlarmCode::ALARM_BETTERY_RECOVER: return ademco::ADEMCO_EVENT::EVENT_BATTERY_RECOVER;
case AlarmCode::ALARM_SOLAR_DISTURB: return ademco::ADEMCO_EVENT::EVENT_SOLARDISTURB;
case AlarmCode::ALARM_SOLAR_RECOVER: return ademco::ADEMCO_EVENT::EVENT_SOLARDISTURB_RECOVER;
case AlarmCode::ALARM_LONGTIME_DISCONN: return ademco::ADEMCO_EVENT::EVENT_DISCONNECT;
case AlarmCode::ALARM_LONGTIME_RECOVER: return ademco::ADEMCO_EVENT::EVENT_RECONNECT;
case AlarmCode::ALARM_DOOR_RING: return ademco::ADEMCO_EVENT::EVENT_DOORRINGING;
case AlarmCode::ALARM_SM_EXCEPTION: return ademco::ADEMCO_EVENT::EVENT_SUB_MACHINE_SENSOR_EXCEPTION;
case AlarmCode::ALARM_SM_EXCEPT_RESUME: return ademco::ADEMCO_EVENT::EVENT_SUB_MACHINE_SENSOR_RESUME;
case AlarmCode::ALARM_SM_POWER_EXCEPT: return ademco::ADEMCO_EVENT::EVENT_SUB_MACHINE_POWER_EXCEPTION;
case AlarmCode::ALARM_SM_POWER_RESUME: return ademco::ADEMCO_EVENT::EVENT_SUB_MACHINE_POWER_RESUME;
case AlarmCode::ALARM_STARTUP:
case AlarmCode::ALARM_SHUTDOWN:
case AlarmCode::ALARM_SENDER_REBOOT:
default: return ademco::ADEMCO_EVENT::EVENT_INVALID_EVENT;
}
}
} // namespace g250
} // namespace hb } // namespace hb
...@@ -103,19 +103,19 @@ static ademco::ADEMCO_EVENT ademcoEventFromZoneProperty(common::ZoneProperty zp) ...@@ -103,19 +103,19 @@ static ademco::ADEMCO_EVENT ademcoEventFromZoneProperty(common::ZoneProperty zp)
} }
//! 从防区属性推出应该发送什么警情事件码 //! 从防区属性推出应该发送什么警情事件码
static ademco::ADEMCO_EVENT ademcoEventFromZonePropertyOld(old::ZoneProperty zp) static ademco::ADEMCO_EVENT ademcoEventFromZonePropertyOld(g250::ZoneProperty zp)
{ {
switch (zp) { switch (zp) {
case hb::old::ZP_GLOBAL: return ademco::EVENT_BURGLAR; case hb::g250::ZP_GLOBAL: return ademco::EVENT_BURGLAR;
case hb::old::ZP_HALF: return ademco::EVENT_BURGLAR; case hb::g250::ZP_HALF: return ademco::EVENT_BURGLAR;
case hb::old::ZP_EMERGENCY: return ademco::EVENT_EMERGENCY; case hb::g250::ZP_EMERGENCY: return ademco::EVENT_EMERGENCY;
case hb::old::ZP_DOORRING: return ademco::EVENT_DOORRINGING; case hb::g250::ZP_DOORRING: return ademco::EVENT_DOORRINGING;
case hb::old::ZP_FIRE: return ademco::EVENT_FIRE; case hb::g250::ZP_FIRE: return ademco::EVENT_FIRE;
case hb::old::ZP_DURESS: return ademco::EVENT_DURESS; case hb::g250::ZP_DURESS: return ademco::EVENT_DURESS;
case hb::old::ZP_GAS: return ademco::EVENT_GAS; case hb::g250::ZP_GAS: return ademco::EVENT_GAS;
case hb::old::ZP_WATER: return ademco::EVENT_WATER; case hb::g250::ZP_WATER: return ademco::EVENT_WATER;
case hb::old::ZP_SHIELD: case hb::g250::ZP_SHIELD:
default: return ademco::EVENT_INVALID_EVENT; default: return ademco::EVENT_INVALID_EVENT;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment