Commit bb722eae authored by captainwong's avatar captainwong

hb_com

parent ee9a946c
This diff is collapsed.
This diff is collapsed.
...@@ -152,10 +152,12 @@ ...@@ -152,10 +152,12 @@
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\..\ademco.c" /> <ClCompile Include="..\..\ademco.c" />
<ClCompile Include="..\..\hb_com.c" />
<ClCompile Include="dllmain.cpp" /> <ClCompile Include="dllmain.cpp" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="..\..\ademco.h" /> <ClInclude Include="..\..\ademco.h" />
<ClInclude Include="..\..\hb_com.h" />
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">
......
...@@ -21,10 +21,16 @@ ...@@ -21,10 +21,16 @@
<ClCompile Include="..\..\ademco.c"> <ClCompile Include="..\..\ademco.c">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\hb_com.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="..\..\ademco.h"> <ClInclude Include="..\..\ademco.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\hb_com.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
</Project> </Project>
\ No newline at end of file
#include "../../ademco.h" #include "../../ademco.h"
#include "../../hb_com.h"
#include <jlib/win32/UnicodeTool.h> #include <jlib/win32/UnicodeTool.h>
#include <jlib/win32/path_op.h> #include <jlib/win32/path_op.h>
#include <jlib/util/std_util.h> #include <jlib/util/std_util.h>
#include <map> #include <map>
#ifdef _WIN64 #ifdef _WIN64
#ifdef _DEBUG #ifdef _DEBUG
#pragma comment(lib, "../x64/Debug/ademco.lib") #pragma comment(lib, "../x64/Debug/ademco.lib")
...@@ -19,12 +21,12 @@ ...@@ -19,12 +21,12 @@
#endif #endif
const char* print_bool(bool b) { const char* print_bool(bool b) {
return b ? "√" : " "; // "×"; return b ? "√" : " "; // "×";
} }
AdemcoEvent statusEvents[] = { AdemcoEvent statusEvents[] = {
// 主机或分机状态报告 // 主机或分机状态报告
EVENT_ARM, EVENT_ARM,
EVENT_DISARM, EVENT_DISARM,
EVENT_HALFARM_1456, EVENT_HALFARM_1456,
...@@ -34,7 +36,7 @@ AdemcoEvent statusEvents[] = { ...@@ -34,7 +36,7 @@ AdemcoEvent statusEvents[] = {
AdemcoEvent alarmEvents[] = { AdemcoEvent alarmEvents[] = {
// 防区报警 // 防区报警
EVENT_BURGLAR, EVENT_BURGLAR,
EVENT_DOORRINGING, EVENT_DOORRINGING,
EVENT_FIRE, EVENT_FIRE,
...@@ -50,7 +52,7 @@ AdemcoEvent alarmEvents[] = { ...@@ -50,7 +52,7 @@ AdemcoEvent alarmEvents[] = {
AdemcoEvent excepEvents[] = { AdemcoEvent excepEvents[] = {
// 区异常 // 防区异常
EVENT_AC_BROKE, EVENT_AC_BROKE,
EVENT_AC_RECOVER, EVENT_AC_RECOVER,
EVENT_LOWBATTERY, EVENT_LOWBATTERY,
...@@ -68,14 +70,14 @@ AdemcoEvent excepEvents[] = { ...@@ -68,14 +70,14 @@ AdemcoEvent excepEvents[] = {
EVENT_LOST, EVENT_LOST,
EVENT_LOST_RECOVER, EVENT_LOST_RECOVER,
// 标准事件,但不做处理 // 标准事件,但不做处理
EVENT_3100, EVENT_3100,
}; };
AdemcoEvent privateEvents[] = { AdemcoEvent privateEvents[] = {
// ------------------私有事件----------------------------------------- // ------------------私有事件-----------------------------------------
EVENT_SERIAL485DIS, EVENT_SERIAL485DIS,
EVENT_SERIAL485CONN, EVENT_SERIAL485CONN,
...@@ -129,7 +131,7 @@ AdemcoEvent privateEvents[] = { ...@@ -129,7 +131,7 @@ AdemcoEvent privateEvents[] = {
void printEvents(const AdemcoEvent* events, size_t len) void printEvents(const AdemcoEvent* events, size_t len)
{ {
printf("|事件码|含义|en|\n|-----|----|--|\n"); printf("|事件码|含义|en|\n|-----|----|--|\n");
for (size_t i = 0; i < len; i++) { for (size_t i = 0; i < len; i++) {
auto e = events[i]; auto e = events[i];
printf("|%04d|%s|%s|\n", e, printf("|%04d|%s|%s|\n", e,
...@@ -206,10 +208,10 @@ std::vector<std::string> get_machine_brands(HbMachineType t) ...@@ -206,10 +208,10 @@ std::vector<std::string> get_machine_brands(HbMachineType t)
std::string brand_to_path(const std::string& brand) std::string brand_to_path(const std::string& brand)
{ {
std::vector<std::string> exts = { "png", "jpg" }; std::vector<std::string> exts = { "png", "jpg" };
std::string path = jlib::win32::utf16_to_mbcs(L"..\\..\\docs\\主机类型\\smartresize\\HB-") + brand; std::string path = jlib::win32::utf16_to_mbcs(L"..\\..\\docs\\主机类型\\smartresize\\HB-") + brand;
for (auto ext : exts) { for (auto ext : exts) {
if (jlib::win32::fileExists(path + "-web." + ext)) { if (jlib::win32::fileExists(path + "-web." + ext)) {
return jlib::win32::utf16_to_mbcs(L"./主机类型/smartresize/HB-") + brand + "-web." + ext; return jlib::win32::utf16_to_mbcs(L"./主机类型/smartresize/HB-") + brand + "-web." + ext;
} }
} }
return {}; return {};
...@@ -230,11 +232,11 @@ void print_machine_brands(HbMachineType t) ...@@ -230,11 +232,11 @@ void print_machine_brands(HbMachineType t)
void print_machineTypes() void print_machineTypes()
{ {
printf("### *恒博主机类型对照表*\n\n"); printf("### *恒博主机类型对照表*\n\n");
printf("*SMS指主机自身是否可以拨打电话、发送短信,不是指通过阿里语音打电话*\n"); printf("*SMS指主机自身是否可以拨打电话、发送短信,不是指通过阿里语音打电话*\n");
printf("|事件码类型|主机类型|布防|撤防|半布防|设置|信号强度|防区|有线防区|SMS|内核|网络|型号|\n" printf("|事件码类型|主机类型|布防|撤防|半布防|设置|信号强度|防区|有线防区|SMS|内核|网络|型号|\n"
"|---------|-------|----|----|-----|----|-------|----|-------|---|----|---|----|\n"); "|---------|-------|----|----|-----|----|-------|----|-------|---|----|---|----|\n");
for (auto e : AdemcoEvents) { for (auto e : AdemcoEvents) {
...@@ -267,9 +269,9 @@ void print_machineTypes() ...@@ -267,9 +269,9 @@ void print_machineTypes()
void print_imgs() void print_imgs()
{ {
printf("\n\n### *恒博主机型号示例图片*\n\n"); printf("\n\n### *恒博主机型号示例图片*\n\n");
printf("|型号|示例图片|\n" printf("|型号|示例图片|\n"
"|---|--------|\n"); "|---|--------|\n");
std::map<std::string, std::string> imgs; std::map<std::string, std::string> imgs;
...@@ -302,7 +304,7 @@ bool zprop_is_contain(HbZoneProperty prop) { ...@@ -302,7 +304,7 @@ bool zprop_is_contain(HbZoneProperty prop) {
void print_available_zone_props() void print_available_zone_props()
{ {
printf("### *恒博主机类型与支持的防区属性对照表*\n\n"); printf("### *恒博主机类型与支持的防区属性对照表*\n\n");
//auto all_props = getAvailableZoneProperties(); //auto all_props = getAvailableZoneProperties();
...@@ -314,7 +316,7 @@ void print_available_zone_props() ...@@ -314,7 +316,7 @@ void print_available_zone_props()
printf("* 防区属性是否支持失联报告\n\n"); printf("* 防区属性是否支持失联报告\n\n");
printf("|"); printf("|");
for (auto zp : hbZoneProperties) { for (auto zp : hbZoneProperties) {
printf("|"); print_prop(zp); printf("|"); print_prop(zp);
...@@ -327,15 +329,15 @@ void print_available_zone_props() ...@@ -327,15 +329,15 @@ void print_available_zone_props()
} }
printf("|\n"); printf("|\n");
printf("|失联支持"); printf("|失联支持");
for (auto zp : hbZoneProperties) { for (auto zp : hbZoneProperties) {
printf("|%s", print_bool(hbZonePropCanReportLost(zp))); printf("|%s", print_bool(hbZonePropCanReportLost(zp)));
} }
printf("|\n\n"); printf("|\n\n");
printf("* 主机类型与支持的防区属性对照表\n\n"); printf("* 主机类型与支持的防区属性对照表\n\n");
printf("|事件码|类型|型号"); printf("|事件码|类型|型号");
for (auto zp : hbZoneProperties) { for (auto zp : hbZoneProperties) {
//printf("|"); print_prop(zp); //printf("|"); print_prop(zp);
printf("|%02X", (int)zp); printf("|%02X", (int)zp);
...@@ -371,16 +373,16 @@ void print_available_zone_props() ...@@ -371,16 +373,16 @@ void print_available_zone_props()
void print_g250_alarm_codes() void print_g250_alarm_codes()
{ {
//printf("# 工程主机串口通信协议\n\n"); //printf("# 工程主机串口通信协议\n\n");
//printf("9600, N, 8, 1\n\n"); //printf("9600, N, 8, 1\n\n");
//printf("SUM = DATA(N) = DATA(0) + DATA(1) + ... + DATA(N-1)\n\n"); //printf("SUM = DATA(N) = DATA(0) + DATA(1) + ... + DATA(N-1)\n\n");
//// 按键码 //// 按键码
//printf("\n\n## EB AB addr data sum\n"); //printf("\n\n## EB AB addr data sum\n");
//printf("PC到主机,按键\n"); //printf("PC到主机,按键\n");
//printf("* addr: PC模拟键盘地址,1~4,暂时固定为3\n"); //printf("* addr: PC模拟键盘地址,1~4,暂时固定为3\n");
//printf("* data: 按键码\n\n"); //printf("* data: 按键码\n\n");
//printf("|键码|按键|\n"); //printf("|按键码|按键|\n");
//printf("|-----|----|\n"); //printf("|-----|----|\n");
//for (Key k = Key::Key_NULL; k <= Key::Key_STOP_ALARM; k = Key(k + 1)) { //for (Key k = Key::Key_NULL; k <= Key::Key_STOP_ALARM; k = Key(k + 1)) {
// auto s = keyToString(k); // auto s = keyToString(k);
...@@ -390,15 +392,15 @@ void print_g250_alarm_codes() ...@@ -390,15 +392,15 @@ void print_g250_alarm_codes()
//} //}
//// EB B1 报警码 //// EB B1 报警码
//printf("\n\n## EB B1 data0 data1 data2 code data4 sum\n"); //printf("\n\n## EB B1 data0 data1 data2 code data4 sum\n");
//printf("主机到PC事件报告\n"); //printf("主机到PC事件报告\n");
//printf("* data0: 命令字总字长,固定为8\n"); //printf("* data0: 命令字总字长,固定为8\n");
//printf("* data1: 防区号高位\n"); //printf("* data1: 防区号高位\n");
//printf("* data2: 防区号低位\n"); //printf("* data2: 防区号低位\n");
//printf("* data4: 00 表示data1与data2为主机直属防区号,01~F0 表示data1与data2为分机防区号(已废弃),EE 表示分机自身状态(已废弃)\n"); //printf("* data4: 00 表示data1与data2为主机直属防区号,01~F0 表示data1与data2为分机防区号(已废弃),EE 表示分机自身状态(已废弃)\n");
//printf("* code: 报警码\n\n"); //printf("* code: 报警码\n\n");
//printf("|报警码|安定宝事件码|含义|\n"); //printf("|报警码|安定宝事件码|含义|\n");
//printf("|------|----------|----|\n"); //printf("|------|----------|----|\n");
//static Char codes[] = { //static Char codes[] = {
...@@ -439,16 +441,16 @@ void print_g250_alarm_codes() ...@@ -439,16 +441,16 @@ void print_g250_alarm_codes()
int main() int main()
{ {
if (0) { if (0) {
printf("### 主机状态\n\n"); printf("### 主机状态\n\n");
printEvents(statusEvents, _countof(statusEvents)); printEvents(statusEvents, _countof(statusEvents));
printf("### 防区报警\n\n"); printf("### 防区报警\n\n");
printEvents(alarmEvents, _countof(alarmEvents)); printEvents(alarmEvents, _countof(alarmEvents));
printf("### 区异常\n\n"); printf("### 防区异常\n\n");
printEvents(excepEvents, _countof(excepEvents)); printEvents(excepEvents, _countof(excepEvents));
printf("### *恒博私有事件码*\n\n"); printf("### *恒博私有事件码*\n\n");
printEvents(privateEvents, _countof(privateEvents)); printEvents(privateEvents, _countof(privateEvents));
print_machineTypes(); print_machineTypes();
......
This diff is collapsed.
This diff is collapsed.
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
%{ %{
/* Includes the header in the wrapper code */ /* Includes the header in the wrapper code */
#include "../ademco.h" #include "../hb_com.h"
%} %}
#ifdef SWIGJAVA #ifdef SWIGJAVA
...@@ -36,4 +36,5 @@ JAVA_ARRAYS_TYPEMAPS(uint8_t, byte, jbyte, Uint8, "[B") ...@@ -36,4 +36,5 @@ JAVA_ARRAYS_TYPEMAPS(uint8_t, byte, jbyte, Uint8, "[B")
/* Parse the header file to generate wrappers */ /* Parse the header file to generate wrappers */
%include "../ademco.h" %include "../ademco.h"
%include "../hb_com.h"
...@@ -4,7 +4,7 @@ mkdir -p com/hb3344/ademco ...@@ -4,7 +4,7 @@ mkdir -p com/hb3344/ademco
swig -java -package com.hb3344.ademco -outdir com/hb3344/ademco -o libademco_java_wrap.c libademco.swig swig -java -package com.hb3344.ademco -outdir com/hb3344/ademco -o libademco_java_wrap.c libademco.swig
JAVA_INCLUDE=${JAVA_HOME}/include JAVA_INCLUDE=${JAVA_HOME}/include
JAVA_INCLUDE_OS=${JAVA_INCLUDE}/linux JAVA_INCLUDE_OS=${JAVA_INCLUDE}/linux
cc -fpic -c ../ademco.c libademco_java_wrap.c -I"../" -I${JAVA_INCLUDE} -I${JAVA_INCLUDE_OS} cc -fpic -c ../ademco.c ../hb_com.c libademco_java_wrap.c -I"../" -I${JAVA_INCLUDE} -I${JAVA_INCLUDE_OS}
ld -shared ademco.o libademco_java_wrap.o -o libademco_java.so ld -shared ademco.o hb_com.o libademco_java_wrap.o -o libademco_java.so
javac JavaDemo.java javac JavaDemo.java
# java -Djava.library.path=./ JavaDemo # java -Djava.library.path=./ JavaDemo
\ No newline at end of file
...@@ -4,7 +4,7 @@ mkdir -p com/hb3344/ademco ...@@ -4,7 +4,7 @@ mkdir -p com/hb3344/ademco
/usr/local/bin/swig -java -package com.hb3344.ademco -outdir com/hb3344/ademco -o libademco_java_wrap.c libademco.swig /usr/local/bin/swig -java -package com.hb3344.ademco -outdir com/hb3344/ademco -o libademco_java_wrap.c libademco.swig
JAVA_INCLUDE=${JAVA_HOME}/include JAVA_INCLUDE=${JAVA_HOME}/include
JAVA_INCLUDE_OS=${JAVA_INCLUDE}/darwin JAVA_INCLUDE_OS=${JAVA_INCLUDE}/darwin
gcc -fpic -c ../ademco.c libademco_java_wrap.c -I"../" -I${JAVA_INCLUDE} -I${JAVA_INCLUDE_OS} gcc -fpic -c ../ademco.c ../hb_com.c libademco_java_wrap.c -I"../" -I${JAVA_INCLUDE} -I${JAVA_INCLUDE_OS}
gcc -shared ademco.o libademco_java_wrap.o -o libademco_java.dylib gcc -shared ademco.o hb_com.o libademco_java_wrap.o -o libademco_java.dylib
javac JavaDemo.java javac JavaDemo.java
# java -Djava.library.path=./ JavaDemo # java -Djava.library.path=./ JavaDemo
mkdir com\hb3344\ademco mkdir com\hb3344\ademco
"C:\Users\Jack\Downloads\swigwin-3.0.12\swig.exe" -csharp -namespace com.hb3344.ademco -outdir com/hb3344/ademco -o libademco_csharp_wrap.c libademco.swig "C:\Users\Jack\Downloads\swigwin-4.0.2\swig.exe" -csharp -namespace com.hb3344.ademco -outdir com/hb3344/ademco -o libademco_csharp_wrap.c libademco.swig
cl -c ../ademco.c libademco_csharp_wrap.c -I"../" cl -c ../ademco.c ../hb_com.c libademco_csharp_wrap.c libhbcom_csharp_wrap.c -I"../"
cl -LD ademco.obj libademco_csharp_wrap.obj -o libademco.dll cl -LD ademco.obj hb_com.obj libademco_csharp_wrap.obj -o libademco.dll
csc CSharpDemo.cs -recurse:com/hb3344/ademco/*.cs csc CSharpDemo.cs -recurse:com/hb3344/ademco/*.cs
rem CSharpDemo.exe rem CSharpDemo.exe
mkdir com\hb3344\ademco mkdir com\hb3344\ademco
"C:\Users\Jack\Downloads\swigwin-4.0.2\swig.exe" -java -package com.hb3344.ademco -outdir com/hb3344/ademco -o libademco_java_wrap.c libademco.swig "C:\Users\Jack\Downloads\swigwin-4.0.2\swig.exe" -java -package com.hb3344.ademco -outdir com/hb3344/ademco -o libademco_java_wrap.c libademco.swig
cl -c ../ademco.c libademco_java_wrap.c -I"../" -I"%JAVA_HOME%include" -I"%JAVA_HOME%include/win32" cl -c ../ademco.c ../hb_com.c libademco_java_wrap.c -I"../" -I"%JAVA_HOME%include" -I"%JAVA_HOME%include/win32"
cl -LD ademco.obj libademco_java_wrap.obj -o ademco_java.dll cl -LD ademco.obj hb_com.obj libademco_java_wrap.obj -o ademco_java.dll
javac -encoding utf-8 JavaDemo.java javac -encoding utf-8 JavaDemo.java
rem java JavaDemo rem java JavaDemo
#!/bin/bash #!/bin/bash
set -e
mkdir -p linux_java mkdir -p linux_java
cd linux_java cd linux_java
cp -r ../../swig/com/ . cp -r ../../swig/com/ .
......
#!/bin/bash #!/bin/bash
set -e
mkdir -p mac_java mkdir -p mac_java
cd mac_java cd mac_java
cp -r ../../swig/com . cp -r ../../swig/com .
......
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