All Projects → RoanBrand → SerialToTCPBridgeProtocol

RoanBrand / SerialToTCPBridgeProtocol

Licence: other
An error tolerant serial UART to TCP connection, raw data bridge.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to SerialToTCPBridgeProtocol

Esp8266 Wifi Uart Bridge
Transparent WiFi (TCP, UDP) to UART Bridge, in AP or STATION mode
Stars: ✭ 107 (+568.75%)
Mutual labels:  serial, bridge
Openmqttgateway
MQTT gateway for ESP8266, ESP32, Sonoff RF Bridge or Arduino with bidirectional 433mhz/315mhz/868mhz, Infrared communications, BLE, Bluetooth, beacons detection, mi flora, mi jia, LYWSD02, LYWSD03MMC, Mi Scale, TPMS, BBQ thermometer compatibility, SMS & LORA.
Stars: ✭ 2,413 (+14981.25%)
Mutual labels:  gateway, bridge
knx-go
KNX clients and protocol implementation in Go
Stars: ✭ 62 (+287.5%)
Mutual labels:  gateway, bridge
Whapp Irc
whatsapp web <-> irc gateway
Stars: ✭ 208 (+1200%)
Mutual labels:  gateway, bridge
Esp32 Serial Bridge
Wifi to 3x Serial bridge based on a ESP32
Stars: ✭ 169 (+956.25%)
Mutual labels:  serial, bridge
serial2mqtt
Serial to MQTT adapter serivce
Stars: ✭ 21 (+31.25%)
Mutual labels:  serial, gateway
Slack-IRC-Gateway
Bridge Slack rooms to IRC channels
Stars: ✭ 33 (+106.25%)
Mutual labels:  gateway, bridge
lemon
The micro service gateway framework. Dubbo, HTTP etc.
Stars: ✭ 17 (+6.25%)
Mutual labels:  gateway
skype-to-telegram
Skype to Telegram bot, for receive your message from skype in telegram
Stars: ✭ 14 (-12.5%)
Mutual labels:  bridge
SerialProtocol
A protocol for sending data between two Arduino devices, or between an Arduino and another device through a serial port
Stars: ✭ 36 (+125%)
Mutual labels:  serial
sx1302 hal
SX1302/SX1303 Hardware Abstraction Layer and Tools (packet forwarder...)
Stars: ✭ 121 (+656.25%)
Mutual labels:  gateway
matrix-puppet-slack
puppet style slack bridge for matrix
Stars: ✭ 46 (+187.5%)
Mutual labels:  bridge
native-js-interactive-encapsulation
主要用于vue和原生的交互
Stars: ✭ 18 (+12.5%)
Mutual labels:  bridge
guli-mall
尚硅谷-谷粒商城代码及文档https://www.yuque.com/zhangshuaiyin/guli-mall
Stars: ✭ 233 (+1356.25%)
Mutual labels:  gateway
react-native-mercadopago-px
🚀 MercadoPago PX bridge for react-native
Stars: ✭ 87 (+443.75%)
Mutual labels:  bridge
javayh-platform
javayh-platform 使用Springboot2.2.6为开发脚手架,SpringCloud为云端服务框架,Nacos为注册中心、分布式配置管理中心,Oauth2协议实现统一授权,Mybatis作为持久层框架,提供了代码生成器,SQL防注入,SwaggerAPI文档,Redis 作为缓存服务等强大的功能
Stars: ✭ 32 (+100%)
Mutual labels:  gateway
ParadoxRs232toMqtt
esp8266, serial bus to mqtt for Paradox alarm systems
Stars: ✭ 66 (+312.5%)
Mutual labels:  serial
tcpdam
A parking proxy for tcp connections
Stars: ✭ 17 (+6.25%)
Mutual labels:  tcp-connection
react-native-android-wear-demo
Showcase of a two-way communication between React Native and Android Wear apps.
Stars: ✭ 93 (+481.25%)
Mutual labels:  bridge
arduino-audio-tools
Arduino Audio Tools (Music Player, Music Recorder supporting I2S, Microphones, DAC, ADC, A2DP, Url, MP3, AAC, AudioKit, ES8388)
Stars: ✭ 393 (+2356.25%)
Mutual labels:  serial

Serial to TCP Bridge Protocol

An error tolerant serial UART to TCP connection, raw data bridge.

See Documentation

Description

Host side gateway service written in Go that listens on COM ports for serial clients.
This is meant to bridge the gap between tcp connections and serial devices using UART/RS-232/Virtual COM over USB, etc.
Clients implementing the protocol client have a tcp like api that they can use to make connections to real servers.
The goal of the project is to have the means to connect the simplest and cheapest devices to the internet, albeit indirectly.
For now, I use this to connect microcontrollers on development boards to servers running on localhost through the Virtual COM port over USB, without requiring any Ethernet/Wi-Fi hardware.

Included in this repo is an implementation of the Protocol Gateway and Client, written in Go. They work on Windows, Linux and even Raspbian.
The following clients are also available:

Client Platform Language
ArduinoSerialToTCPBridgeClient Arduino C++
STM32SerialToTCPBridgeClient STM32 C

Use

  • Install Go and set your $GOPATH.
  • Open a terminal, then run go get -u github.com/RoanBrand/SerialToTCPBridgeProtocol. This will fetch dependencies and build the gateway service.
  • Copy the config.json example to $GOPATH/bin next to the binary and set it according to your configuration.
  • Run the binary.

Details

  • The protocol provides the app an in order, duplicates free and error checked byte stream by adding a CRC32 and simple retry mechanism. See this for background.
  • The Protocol Gateway opens a real TCP connection to a set destination on behalf of the Protocol Client.
  • The Protocol Client connects to the Protocol Gateway over a serial-like connection, which can possibly corrupt data.
  • The client specifies the destination IPv4 address and port.
  • The gateway forwards traffic bi-directionally, as long as tcp connection is open and serial line is good.

Tests

  • Open a terminal, then run go get -u github.com/RoanBrand/goBuffers.
  • In the terminal, change directory to the protocol folder inside the repository.
  • Run go test -v in the terminal.

Future plans

  • Add ping option to periodically test serial line and drop upstream connection if timeout.
  • Multiple connections per client to servers.
  • Capability to scan system and listen on all found COM ports for clients.
  • Turn into OS service.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].