Files
ipsc2hbpc/ipsc2hbpc.service
Cort BuffingtonandClaude Opus 4.8 a8b4eca5c0 Initial commit: ipsc2hbpc — C reimplementation of ipsc2hbp
Feature-for-feature, config-for-config port of the Python ipsc2hbp IPSC↔HBP
translator to dependency-free C11 (links only libc).

- src/dmr/: self-contained DMR DSP/FEC library (BPTC(196,96), embedded LC,
  AMBE 49<->72, RS(12,9), Hamming, Golay), validated bit-for-bit against
  dmr_utils3 via golden vectors.
- src/: config (in-tree TOML parser), logging, poll() event loop, UDP,
  SHA-1/SHA-256/HMAC, IPSC master/peer protocol, HBP client, call translator.
- Single-threaded event loop mirrors the original asyncio design.
- tests/: DSP self-test + byte-for-byte translator parity vs the Python
  reference (IPSC->HBP DMRD and HBP->IPSC GROUP_VOICE).

make && make test both pass; integration-tested against the fake peer/master.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 08:37:41 -05:00

27 lines
739 B
Desktop File

# ipsc2hbpc.service — systemd unit for the C implementation.
# Installed by `sudo make install` to /lib/systemd/system/ipsc2hbpc.service.
#
# NOTE: Conflicts= ensures systemd will not run this alongside the original
# Python ipsc2hbp.service. Stop and disable that unit before enabling this one.
[Unit]
Description=IPSC to HomeBrew Protocol bridge (C)
Documentation=https://github.com/n0mjs710/ipsc2hbpc
After=network.target
Wants=network.target
Conflicts=ipsc2hbp.service
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/ipsc2hbpc -c /etc/ipsc2hbp/ipsc2hbp.toml
Restart=on-failure
RestartSec=10s
TimeoutStopSec=10s
StandardOutput=journal
StandardError=journal
SyslogIdentifier=ipsc2hbpc
[Install]
WantedBy=multi-user.target