diff --git a/recipes-extended/socket-uart/files/socat-socket-kline b/recipes-extended/socket-uart/files/socat-socket-kline new file mode 100644 index 0000000..8f0130f --- /dev/null +++ b/recipes-extended/socket-uart/files/socat-socket-kline @@ -0,0 +1,25 @@ +#!/bin/sh + +ping $SOCAT_SOCKET_KLINE_IP -w 3 -c 1 + +if [ $? -eq 0 ] +then + + if [ -x "$(command -v socat)" ]; then + echo "start listening socket-uart services with server IP $SOCAT_SOCKET_KLINE_IP on port $SOCAT_SOCKET_KLINE_PORT" + cmd='socat -s pty,link=/dev/ttyUM1,raw,echo=0,b19200 tcp:$SOCAT_SOCKET_KLINE_IP:$SOCAT_SOCKET_KLINE_PORT' + + if [[ -n $SOCAT_SOCKET_KLINE_MSS ]]; then + eval $cmd,mss=$SOCAT_SOCKET_KLINE_MSS + else + eval $cmd + fi + + else + echo "socat command not available on your target or environment" + # return 1 so that systemd knows the service failed to start + exit 1 + fi + +fi +exit 1 diff --git a/recipes-extended/socket-uart/files/socat-socket-lin b/recipes-extended/socket-uart/files/socat-socket-lin new file mode 100644 index 0000000..7424b66 --- /dev/null +++ b/recipes-extended/socket-uart/files/socat-socket-lin @@ -0,0 +1,25 @@ +#!/bin/sh + +ping $SOCAT_SOCKET_LIN_IP -w 3 -c 1 + +if [ $? -eq 0 ] +then + + if [ -x "$(command -v socat)" ]; then + echo "start listening socket-uart services with server IP $SOCAT_SOCKET_LIN_IP on port $SOCAT_SOCKET_LIN_PORT" + cmd='socat -s pty,link=/dev/ttyUM2,raw,echo=0 tcp:$SOCAT_SOCKET_LIN_IP:$SOCAT_SOCKET_LIN_PORT' + + if [[ -n $SOCAT_SOCKET_LIN_MSS ]]; then + eval $cmd,mss=$SOCAT_SOCKET_LIN_MSS + else + eval $cmd + fi + + else + echo "socat command not available on your target or environment" + # return 1 so that systemd knows the service failed to start + exit 1 + fi + +fi +exit 1 diff --git a/recipes-extended/socket-uart/files/socat-socket-uart b/recipes-extended/socket-uart/files/socat-socket-uart index a259aca..d66ff8b 100644 --- a/recipes-extended/socket-uart/files/socat-socket-uart +++ b/recipes-extended/socket-uart/files/socat-socket-uart @@ -1,16 +1,25 @@ -#!/bin/sh - -if [ -x "$(command -v socat)" ]; then - echo "start listening socket-uart services with server IP $SOCAT_SOCKET_UART_IP on port $SOCAT_SOCKET_UART_PORT" - cmd='socat -s pty,link=/dev/ttyUM0,raw,echo=0,b115200 tcp:$SOCAT_SOCKET_UART_IP:$SOCAT_SOCKET_UART_PORT' +#!/bin/sh + +ping $SOCAT_SOCKET_UART_IP -w 3 -c 1 + +if [ $? -eq 0 ] +then + + if [ -x "$(command -v socat)" ]; then + echo "start listening socket-uart services with server IP $SOCAT_SOCKET_UART_IP on port $SOCAT_SOCKET_UART_PORT" + cmd='socat -s pty,link=/dev/ttyUM0,raw,echo=0,b115200 tcp:$SOCAT_SOCKET_UART_IP:$SOCAT_SOCKET_UART_PORT' + + if [[ -n $SOCAT_SOCKET_UART_MSS ]]; then + eval $cmd,mss=$SOCAT_SOCKET_UART_MSS + else + eval $cmd + fi - if [[ -n $SOCAT_SOCKET_UART_MSS ]]; then - eval $cmd,mss=$SOCAT_SOCKET_UART_MSS else - eval $cmd + echo "socat command not available on your target or environment" + # return 1 so that systemd knows the service failed to start + exit 1 fi -else - echo "socat command not available on your target or environment" - # return 1 so that systemd knows the service failed to start - exit 1 fi +exit 1 diff --git a/recipes-extended/socket-uart/files/socket-kline.service b/recipes-extended/socket-uart/files/socket-kline.service new file mode 100644 index 0000000..33257a8 --- /dev/null +++ b/recipes-extended/socket-uart/files/socket-kline.service @@ -0,0 +1,21 @@ +[Unit] +Description=Bind kline socket with pseudo tty based on socat + +[Service] +Type=simple +ExecStart=/usr/bin/socat-socket-kline +PIDFile=/var/run/socket-kline.pid + + +Environment=SOCAT_SOCKET_KLINE_IP='192.168.1.64' SOCAT_SOCKET_KLINE_PORT='2202' SOCAT_SOCKET_KLINE_MSS='' + +ExecReload=/bin/kill -HUP $MAINPID +Restart=on-failure +RestartSec=10 + +[Unit] +Wants=network-online.target +After=network-online.target + +[Install] +WantedBy=multi-user.target diff --git a/recipes-extended/socket-uart/files/socket-lin.service b/recipes-extended/socket-uart/files/socket-lin.service new file mode 100644 index 0000000..acd487b --- /dev/null +++ b/recipes-extended/socket-uart/files/socket-lin.service @@ -0,0 +1,21 @@ +[Unit] +Description=Bind lin socket with pseudo tty based on socat + +[Service] +Type=simple +ExecStart=/usr/bin/socat-socket-lin +PIDFile=/var/run/socket-lin.pid + + +Environment=SOCAT_SOCKET_LIN_IP='192.168.1.64' SOCAT_SOCKET_LIN_PORT='2200' SOCAT_SOCKET_LIN_MSS='' + +ExecReload=/bin/kill -HUP $MAINPID +Restart=on-failure +RestartSec=10 + +[Unit] +Wants=network-online.target +After=network-online.target + +[Install] +WantedBy=multi-user.target diff --git a/recipes-extended/socket-uart/files/socket-uart.service b/recipes-extended/socket-uart/files/socket-uart.service index c9bdf37..c17f48a 100644 --- a/recipes-extended/socket-uart/files/socket-uart.service +++ b/recipes-extended/socket-uart/files/socket-uart.service @@ -6,9 +6,8 @@ Type=simple ExecStart=/usr/bin/socat-socket-uart PIDFile=/var/run/socket-uart.pid -#KillSignal=SIGQUIT -Environment=SOCAT_SOCKET_UART_IP='192.168.1.42' SOCAT_SOCKET_UART_PORT='2204' SOCAT_SOCKET_UART_MSS='256' +Environment=SOCAT_SOCKET_UART_IP='192.168.1.64' SOCAT_SOCKET_UART_PORT='2204' SOCAT_SOCKET_UART_MSS='' ExecReload=/bin/kill -HUP $MAINPID Restart=on-failure diff --git a/recipes-extended/socket-uart/socket-uart_0.0.1.bb b/recipes-extended/socket-uart/socket-uart_0.0.1.bb index 5abba58..98041f0 100644 --- a/recipes-extended/socket-uart/socket-uart_0.0.1.bb +++ b/recipes-extended/socket-uart/socket-uart_0.0.1.bb @@ -7,38 +7,34 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda SRC_URI = " \ file://socket-uart.service \ file://socat-socket-uart \ + file://socket-kline.service \ + file://socat-socket-kline \ + file://socket-lin.service \ + file://socat-socket-lin \ " S = "${WORKDIR}" RDEPENDS_${PN} = "socat" -# Override variable from local.conf with -# SOCAT_SOCKET_UART_DEFAULT_IP_pn-socket-uart = "6.6.6.6" -# SOCAT_SOCKET_UART_DEFAULT_PORT_pn-socket-uart = "2222" -# Don'"t set mss -# SOCAT_SOCKET_UART_DEFAULT_MSS_pn-socket-uart = "" -SOCAT_SOCKET_UART_DEFAULT_IP ??= "192.168.1.42" -SOCAT_SOCKET_UART_DEFAULT_PORT ??= "2204" -SOCAT_SOCKET_UART_DEFAULT_MSS ??= "" +SYSTEMD_SERVICE_${PN} = " \ + socket-uart.service \ + socket-kline.service \ + socket-lin.service \ + " -SYSTEMD_SERVICE_${PN} = "socket-uart.service" - -do_configure() { - sed -i "s/SOCAT_SOCKET_UART_IP='192.168.1.42'/SOCAT_SOCKET_UART_IP='${SOCAT_SOCKET_UART_DEFAULT_IP}'/g" ${S}/socket-uart.service - sed -i "s/SOCAT_SOCKET_UART_PORT='2204'/SOCAT_SOCKET_UART_PORT='${SOCAT_SOCKET_UART_DEFAULT_PORT}'/g" ${S}/socket-uart.service - sed -i "s/SOCAT_SOCKET_UART_MSS='256'/SOCAT_SOCKET_UART_MSS='${SOCAT_SOCKET_UART_DEFAULT_MSS}'/g" ${S}/socket-uart.service -} +FILES_${PN} = "${systemd_unitdir}/system ${bindir} " do_install() { - install -d ${D}/lib/systemd/system - install -m 644 ${WORKDIR}/socket-uart.service ${D}/lib/systemd/system/ + install -d ${D}${systemd_unitdir}/system + install -m 644 ${WORKDIR}/socket-uart.service ${D}${systemd_unitdir}/system/ + install -m 644 ${WORKDIR}/socket-kline.service ${D}${systemd_unitdir}/system/ + install -m 644 ${WORKDIR}/socket-lin.service ${D}${systemd_unitdir}/system/ - install -d ${D}/usr/bin/ - install -m 744 ${WORKDIR}/socat-socket-uart ${D}/usr/bin/ + + install -d ${D}${bindir} + install -m 744 ${WORKDIR}/socat-socket-uart ${D}${bindir} + install -m 744 ${WORKDIR}/socat-socket-kline ${D}${bindir} + install -m 744 ${WORKDIR}/socat-socket-lin ${D}${bindir} } - -# Add all SOCAT_SOCKET_* variables to sstate hash calculation and force package_write_rpm exectution from scratch everytime -do_configure[vardeps] = "SOCAT_SOCKET_UART_DEFAULT_IP SOCAT_SOCKET_UART_DEFAULT_PORT SOCAT_SOCKET_UART_DEFAULT_MSS" -do_package_write_rpm[nostamp] = "1"