Giter Club home page Giter Club logo

iotedge.skynet's Introduction

Design

  • Control processor: console, MQTT, etc.
  • Data processor: To fetch, process, and publish data
  • Pipeline: To link data processors together

Feature

  • MQTT controller (Plain/TLS/Websocket)
  • Console controller (Authentication)
  • Websocket controller (Authentication)
  • System/Appliation Upgrade (Remote SW repository)
  • Configuration storage
  • Data storage (Data retention)
  • Json/MessagePack pack
  • Zlib compressor
  • COV(change of value) publish
  • Buffer/Group publish
  • Log rotate
  • Proxy support by FRP
  • Monitor by NodeExporter
  • VPN by WireGuard
  • Websocket proxy (e.g. for noVNC)
  • Modbus TCP/RTU(ASCII)/RTU(ASCII) over TCP
  • Simens S7
  • Kafka publisher
  • MQTT publisher
  • File publisher
  • OPCUA: Binding open62541
  • Python runtime
  • HTTP data acquisition
  • BACnet: Binding bacnet-stack

Build & Run

Build

Build python

apt-get install libbz2-dev liblzma-dev zlib1g-dev libffi-dev
https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz
./configure --enable-shared
make
cp libpython3.8.a ../iotedge/bin/prebuilt/libpython.a.3.8

Build openssl

https://github.com/openssl/openssl/archive/OpenSSL_1_1_1g.tar.gz
./config no-tests
make
cp libcrypto.a ../iotedge/bin/prebuilt/libcrypto.a.1.1.1g
cp libssl.a ../iotedge/bin/prebuilt/libssl.a.1.1.1g

Build snap7

cd 3rd/snap7-1.4.2/build/unix
make -f x86_64_linux.mk clean|all|install
make -f arm_v7_linux.mk clean|all|install
cp ../bin/x86_64/libsnap7.a ../../../../bin/prebuilt/libsnap7.a.1.4.2

Build open62541

https://github.com/open62541/open62541/archive/v1.1.tar.gz
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DUA_ENABLE_ENCRYPTION_OPENSSL=ON -DOPENSSL_CRYPTO_LIBRARY="../../iotedge/bin/prebuilt/libcrypto.a.1.1.1g" -DOPENSSL_SSL_LIBRARY="../../iotedge/bin/prebuilt/libssl.a.1.1.1g" -DOPENSSL_INCLUDE_DIR="../../iotedge/3rd/openssl-1.1.1g" ..
make
cp bin/libopen62541.a ../../iotedge/bin/prebuilt/libopen62541.a.1.1

Install dependency

https://luarocks.org/releases/luarocks-3.3.1.tar.gz
./configure --with-lua-bin=../iotedge/skynet/3rd/lua --with-lua-include=../iotedge/skynet/3rd/lua --with-lua=../iotedge/skynet/3rd/lua
make bootstrap

luarocks install luafilesystem
luarocks install lsqlite3complete

git clone https://github.com/cloudwu/lua-cjson.git
make LUA_VERSION=5.4 LUA_INCLUDE_DIR=../iotedge/skynet/3rd/lua

Run

  • cp config.xx config
  • Edit config
  • ./bin/skynet iotedge.config
  • telnet localhost 30000
  • Type help

Production

  • ./dev/release.sh x86_64|arm_v7 host:path
  • ./scripts/install.sh install config.tb host id uri username
  • ./scripts/install.sh install config.local host
  • ./scripts/install.sh upgrade config.tb dir port
  • ./scripts/install.sh upgrade config.local dir port

Dependences

  • github.com/cloudwu/lua-cjson
  • github.com/keplerproject/luafilesystem
  • github.com/brimworks/lua-zlib
  • github.com/fatedier/frp
  • github.com/prometheus/node_exporter
  • lua.sqlite.org: lsqlite3complete
  • git.zx2c4.com/wireguard-go

iotedge.skynet's People

Contributors

xeniumlee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

iotedge.skynet's Issues

skynet iot edge相关

当前iot edge功能是将skynet运行在嵌入式板卡上,感觉做的这些和我们目前有很多相像之处;后续有什么规划....

编译通过后,如何运行?

    首先,目录中没有bin目录,首先建立bin目录并在该目录下建立prebuilt文件夹,将openssl和snap7编译好的库文件放到其中。
    编译顺利通过,之后通过release.sh脚本打包生成文件,利用install.sh安装到系统目录中。在执行上述脚本时是否要带参数,目前编译通过,运行没成功。麻烦指导下

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.