Commit bb722eae authored by captainwong's avatar captainwong

hb_com

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