Skip to content

Commit

Permalink
publish
Browse files Browse the repository at this point in the history
  • Loading branch information
captainwong committed Aug 3, 2023
1 parent a94e728 commit 845eccb
Show file tree
Hide file tree
Showing 7 changed files with 69 additions and 19 deletions.
14 changes: 14 additions & 0 deletions examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,17 @@ Windows 下的 安定宝 `dll` 工程。
## server_demo

C++ 编写的简易版接警中心,可用来接收主机连接,进行简单交互:接收主机事件;布撤防。

## httprelay

C 编写的简易版 TCP 服务器与 HTTP 转发器,可以用来接收主机连接,并转发主机事件到指定的 URI.

依赖 `libuv, libcurl`.

示例:

```bash
./httprelay 12345 http://your-http-server.com:8080/ademco
```

httprelay 须运行在公网环境,报警主机配置直连接警中心IP、端口,主机有事件发生时将转发至 http://your-http-server.com:8080/ademco
17 changes: 9 additions & 8 deletions examples/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
mkdir -p build
cd build

opt="-std=c++11 -O3"

eb=0
if [ x$1 != x ] ;then
if [ $1 -eq 1 ]; then
eb=1
fi
cc=gcc
cxx=g++
if [ $(command -v clang++ &> /dev/null ; echo $?) -eq 0 ]
cc=clang
cxx=clang++
fi

g++ $opt ../server_demo/server_demo.cpp ../../ademco.c -I../../ -lpthread -o server_demo

${cxx} -std=c++11 -O3 ../server_demo/server_demo.cpp ../../ademco.c -I../../ -lpthread -o server_demo

${cc} ../../ademco.c ../../hb_com.c ../httprelay/cJSON/cJSON.c ../httprelay/uvlib/*.c ../httprelay/uvlib/llhttp/src/*.c ../httprelay/*.c -I ../httprelay/uvlib/llhttp/include -luv -lcurl -o httprelay
19 changes: 10 additions & 9 deletions examples/httprelay/httprelay.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include "uvlib/uv_tcpserver.h"
#include "cJSON/cJSON.h"
#include <curl/curl.h>
#include <string.h>

typedef struct machine_info_s {
char acct[ADEMCO_PACKET_ACCT_MAX_LEN + 1];
Expand Down Expand Up @@ -123,7 +124,7 @@ void on_tcp_connection(uv_tcpserver_client_context_t* client, int connected) {

uv_tcp_parse_result_t on_tcp_parse(uv_tcpserver_client_context_t* client, const char* buf, size_t len, size_t* ate) {
AdemcoPacket pkt;
auto res = ademcoPacketParse(buf, len, &pkt, ate);
AdemcoParseResult res = ademcoPacketParse(buf, len, &pkt, ate);
switch (res) {
case RESULT_OK:
switch (pkt.id) {
Expand Down Expand Up @@ -175,34 +176,34 @@ uv_tcp_parse_result_t on_tcp_parse(uv_tcpserver_client_context_t* client, const
}
}

int init_tcpd(const char* addr, int port) {
int init_tcpd(int port) {
static uv_tcpserver_settings_t settings = { on_tcp_connection, on_tcp_parse, NULL };
int r = uv_tcpserver_create(&context.tcpd, context.loop, &settings);
fatal_on_uv_err(r, "uv_tcpserver_create");
r = uv_tcpserver_start_listen(context.tcpd, addr, port);
r = uv_tcpserver_start_listen(context.tcpd, "0.0.0.0", port);
fatal_on_uv_err(r, "uv_tcpserver_start_listen");
printf("tcp server listening on %s:%d\n", addr, port);
printf("tcp server listening on %s:%d\n", "0.0.0.0", port);
return r;
}

int main(int argc, char** argv) {
if (argc != 4) {
fprintf(stderr, "Usage: %s tcp_bind_addr tcp_server_listening_port http_client_relay_to_uri\n"
" Example: %s 0.0.0.0 12345 http://your-http-server.com/ademco:8080\n",
if (argc != 3) {
fprintf(stderr, "Usage: %s tcp_server_listening_port http_client_relay_to_uri\n"
" Example: %s 12345 http://your-http-server.com:8080/ademco\n",
argv[0], argv[0]);
exit(1);
}

uv_log_set_level(uv_log_level_debug);
memset(&context, 0, sizeof(context));
context.uri = argv[3];
context.uri = argv[2];

context.loop = uv_default_loop();
fatal_if_null(context.loop);

curl_global_init(CURL_GLOBAL_ALL);

if (init_tcpd(argv[1], atoi(argv[2]))) {
if (init_tcpd(atoi(argv[1]))) {
abort();
}

Expand Down
1 change: 1 addition & 0 deletions tools/clean.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@ rm -rf mac_java
rm -rf win_csharp
rm -rf win_java
rm -rf server_demo
rm -rf win_node
cd ../swig
rm -rf *.exp *.lib *.dll *.exe *.obj *.class com/
22 changes: 20 additions & 2 deletions tools/mkrelease.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#!/bin/bash

branch=http

# examples
./clean.sh
./examples.bat
Expand All @@ -9,12 +11,16 @@ mkdir examples/x86
mkdir examples/x64
cp "/e/dev/AlarmCenterTestTools/Release/直连型主机模拟器V1.13.exe" examples/x86/
cp "/g/dev_libs/libevent-2.1.12-stable-install/lib/event_core.dll" examples/x86/
cp "/g/dev_libs/curl-7.87.0/builds/libcurl-vc14-x86-debug-dll-ipv6-sspi-schannel/bin/libcurl_debug.dll" examples/x86/
cp ../examples/Win32/Release/server_demo.exe examples/x86/
cp ../examples/Win32/Release/httprelay.exe examples/x86/
cp ../examples/Release/ademco.dll examples/x86/
cp ../examples/Release/ademco.lib examples/x86/
cp ../examples/x64/Release/server_demo_x64.exe examples/x64/
cp ../examples/x64/Release/ademco.dll examples/x64/
cp ../examples/x64/Release/ademco.lib examples/x64/
cp ../examples/x64/Release/httprelay.exe examples/x64/
cp "/g/dev_libs/curl-7.87.0/builds/libcurl-vc14-x64-release-dll-ipv6-sspi-schannel/bin/libcurl_debug.dll" examples/x86/
rm -f examples.zip
cd examples
zip -r ../examples.zip . *
Expand Down Expand Up @@ -52,14 +58,26 @@ rm -rf win_csharp


# ubuntu20.04 java
ssh -t root@192.168.2.107 "cd /root/projects/ademco_hb && git checkout master && git reset --hard HEAD && git pull origin master && cd swig && export JAVA_HOME='/usr/lib/jvm/java-8-openjdk-amd64' && ./linux_java.sh && cd ../tools && ./linux_java.sh"
ssh -t root@192.168.2.107 "cd /root/projects/ademco_hb && git checkout ${branch} && git reset --hard HEAD && git pull origin ${branch} && cd swig && export JAVA_HOME='/usr/lib/jvm/java-8-openjdk-amd64' && ./linux_java.sh && cd ../tools && ./linux_java.sh"
scp root@192.168.2.107:/root/projects/ademco_hb/tools/linux_java.zip .
ssh -t root@192.168.2.107 "rm -f /root/projects/ademco_hb/tools/linux_java.zip"

# macOS java
ssh -t jack@JackMacBook-Pro.local "cd /Users/jack/projects/ademco_hb && git checkout master && git reset --hard HEAD && git pull origin master && cd swig && ./mac_java.sh && cd ../tools && ./mac_java.sh"
ssh -t jack@JackMacBook-Pro.local "cd /Users/jack/projects/ademco_hb && git checkout ${branch} && git reset --hard HEAD && git pull origin ${branch} && cd swig && ./mac_java.sh && cd ../tools && ./mac_java.sh"
scp jack@JackMacBook-Pro.local:/Users/jack/projects/ademco_hb/tools/mac_java.zip .
ssh -t jack@JackMacBook-Pro.local "rm -f /Users/jack/projects/ademco_hb/tools/mac_java.zip"

# win-node
./clean.sh
mkdir -p win_node
./win_node.bat
cp -r ../swig/build/ win_node/
cp ../swig/nodejs-demo.js win_node/
rm -f win_node.zip
cd win_node
zip -r ../win_node.zip . *
cd ..
rm -rf win_node/



13 changes: 13 additions & 0 deletions tools/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash

# win-node
./clean.sh
mkdir -p win_node
./win_node.bat
cp -r ../swig/build/ win_node/
cp ../swig/nodejs-demo.js win_node/
rm -f win_node.zip
cd win_node
zip -r ../win_node.zip . *
cd ..
rm -rf win_node/
2 changes: 2 additions & 0 deletions tools/win_node.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
cd ..\swig
win_node.bat

0 comments on commit 845eccb

Please sign in to comment.