{"id":19421502,"url":"https://github.com/sitbon/sernet","last_synced_at":"2026-05-12T23:02:14.177Z","repository":{"id":137573870,"uuid":"51389939","full_name":"sitbon/sernet","owner":"sitbon","description":"Forward data between serial ports and an IP network","archived":false,"fork":false,"pushed_at":"2016-02-09T19:45:12.000Z","size":57,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"packet-routing","last_synced_at":"2025-01-07T18:31:16.317Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sitbon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-02-09T18:45:33.000Z","updated_at":"2016-02-09T19:47:02.000Z","dependencies_parsed_at":"2023-04-29T23:23:59.254Z","dependency_job_id":null,"html_url":"https://github.com/sitbon/sernet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitbon%2Fsernet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitbon%2Fsernet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitbon%2Fsernet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitbon%2Fsernet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sitbon","download_url":"https://codeload.github.com/sitbon/sernet/tar.gz/refs/heads/packet-routing","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240599194,"owners_count":19826959,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T13:28:31.908Z","updated_at":"2026-05-12T23:02:09.157Z","avatar_url":"https://github.com/sitbon.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Sernet\n=============\n\nThe purpose of this utility is to facilitate communication between\nserial ports and networks, primarily for XBee packets.\n\nRequirements\n=============\n\nThis project uses CMake to build and bash/tmux to run the different\ncomponents. Tmux is optional but helpful because typical operation\nrequires up to three processes to run at the same time and it puts\ntheir output all in the same terminal (like screen, but with panes).\n\nThis has been lightly tested on Mac, heavily used on Linux.\n\nBuilding\n=============\n\nIn the project top-level folder:\n\n    mkdir build\n    cd build\n    cmake ..\n    make\n    cd ..\n\nAt this point you can run ./build/sernet or any of the utility scripts\n(fwd.sh, osc.sh, tmux.sh).\n\nHow it works\n=============\n\nThere are three primary important components to sernet, which allow for\nflexibility when dealing with multiple sources but can also complicate\nmore simple use cases. Hopefully this explanation will make it usable\nin any appropriate scenario.\n\nThe three main components are as follows:\n\nfwd: serial forwarding agent\n-------------\nWhen run directly, this listens for XBee packets on a specified serial port\nand sends them as UDP messages to a specified IP address. Example:\n\n    ./build/sernet fwd -i /dev/ttyUSB0 -r 115200 -h 127.0.0.1 -p 4434 \n\nThe port option defaults to 4434 and the rate defaults to 230400 (the max speed\nof the XBee radios). It is recommended that you customize `fwd.sh` with your\ndesired parameters as it also handles starting multiple instances in the case\nwhere you are reading from more than one serial port.\n\nYou can get usage for the command (and any other) with the `--help` option,\ne.g. `./build/sernet fwd --help`.\n\ndst: packet sink and processing\n-------------\nThis may not be helpful in many use cases, but it's been left as-is to enable\ndistributed processing. By default, it takes in packets on port 4434 (on any\ninterface) and (depending on a compile-time constant, see `dst.c`) deduplicates\nthe messages before forwarding them over a UNIX socket at `/tmp/sernet`.\n\nosc: conversion from UDP packets to OSC-UDP messages\n-------------\nThis reads from the UNIX socket and forwards out to a specified IP address\nand port. See (and customize) `osc.sh` or the program usage for parameter\ndetails. If multicast output is desired, one must currently use another tool\ncalled `mtou` in order to translate unicast to multicast (contact Phillip\nfor more info).\n\nRunning with tmux\n=============\n\nAfter installing tmux, copy `tmux.conf` to `~/.tmux.conf` -- this provides\na configuration that is compatible with the script that organizes the panes.\n\n`tmux.sh` runs `fwd`, `dst`, and `osc` all at once and is capable of (re)starting\nall of those processes using the `-r` parameter.\n\nWhen you invoke `tmux.sh -r`, you should see three panes with sernet running.\nIf you want to restart one of them, navigate to the appropriate pane\n(ctrl+a, left/right/up/down) and simply press enter to exit the program, and\nthen use the up arrow to recall the same command. If you want to exit the session,\none of many methods is to stop each script and ctrl+d until all the panes are\ngone. You can also call `tmux kill-session -t sernet` in order to terminate\neverything at once.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsitbon%2Fsernet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsitbon%2Fsernet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsitbon%2Fsernet/lists"}