From 33678fb90b87413a407c7566430e2dbac6e180d2 Mon Sep 17 00:00:00 2001 From: Hugo Jean Ponsin Date: Tue, 5 May 2026 14:37:42 +0200 Subject: [PATCH] adding AUTH_TOKEN into .env --- .env_exemple | 3 +++ db/command.proto | 10 +++++++++- db/feedback_records.db | 2 +- db/socket_record.db | 2 +- st.cmd | 11 +++++++++++ startioc.sh | 17 ++++------------- 6 files changed, 29 insertions(+), 16 deletions(-) create mode 100644 st.cmd diff --git a/.env_exemple b/.env_exemple index e69de29..eec5707 100644 --- a/.env_exemple +++ b/.env_exemple @@ -0,0 +1,3 @@ +export DEVICE_NAME="ePowerSwitch" +export EPOWERSWITCH_SOCKET_NUMBER=8 +export AUTH_TOKEN=$(echo $(USERNAME):$(PASSWORD) | base64) diff --git a/db/command.proto b/db/command.proto index 08e0fe7..c9a352a 100644 --- a/db/command.proto +++ b/db/command.proto @@ -1,7 +1,10 @@ get4 { InTerminator="\n"; + OutTerminator="\r\n"; out "GET /hidden.htm"; + out "Authorization: Basic \$1"; + out ""; in "Hidden Page"; in "%*d%*s%*d %*d:%*d:%*d"; in "Version: %*u.%*u.%*u.%*u"; @@ -14,7 +17,10 @@ get4 { get8 { InTerminator="\n"; + OutTerminator="\r\n"; out "GET /hidden.htm"; + out "Authorization: Basic \$1"; + out ""; in "Hidden Page"; in "%*d%*s%*d %*d:%*d:%*d"; in "Version: %*u.%*u.%*u.%*u"; @@ -31,6 +37,8 @@ get8 { set { OutTerminator = "\r\n"; - out "POST /hidden.htm/M0:O\$1=%s"; + out "POST /hidden.htm/M0:O\$2=%s"; + out "Authorization: Basic \$1"; + out ""; disconnect; } \ No newline at end of file diff --git a/db/feedback_records.db b/db/feedback_records.db index 55d980e..293a5d9 100644 --- a/db/feedback_records.db +++ b/db/feedback_records.db @@ -6,7 +6,7 @@ record(scalcout, "$(DEVICE_NAME)_outlet_getter") { field(DTYP, "stream") field(SCAN, "1 second") field(CALC, "0") - field(OUT, "@$(DB)command.proto get$(OUTLET_NUMBER)() $(PORT)") + field(OUT, "@$(DB)command.proto get$(OUTLET_NUMBER)($(AUTH_TOKEN)) $(PORT)") field(FLNK, "$(DEVICE_NAME)_get_outlet_0") } diff --git a/db/socket_record.db b/db/socket_record.db index ee1bbfc..3551239 100644 --- a/db/socket_record.db +++ b/db/socket_record.db @@ -1,7 +1,7 @@ record(stringout, "$(DEVICE_NAME)_set_$(PARAMETER_NAME)_$(PARAMETER_ID)") { field(DTYP, "stream") field(PINI, "NO") - field(OUT, "@$(DB)command.proto set($(PARAMETER_ID)) $(PORT)") + field(OUT, "@$(DB)command.proto set($(AUTH_TOKEN), $(PARAMETER_ID)) $(PORT)") } record(stringin, "$(DEVICE_NAME)_get_$(PARAMETER_NAME)_$(PARAMETER_ID)") { diff --git a/st.cmd b/st.cmd new file mode 100644 index 0000000..e7622be --- /dev/null +++ b/st.cmd @@ -0,0 +1,11 @@ +require ePowerSwitch,ponsin_h + +epicsEnvSet("ASYN_PORT", "myDriverPort") +epicsEnvSet("DB", "$(ePowerSwitch_DB)") + +# I use HTTP to use TCP and disconnect after, but no disconnection is done, so I disconnect manually. +drvAsynIPPortConfigure("$(ASYN_PORT)","127.0.0.1:55555 http", 0, 0, 0) + +dbLoadTemplate("$(DB)template$(EPOWERSWITCH_SOCKET_NUMBER).substitutions", "PORT=$(ASYN_PORT), DEVICE_NAME=$(DEVICE_NAME), DB=$(DB), AUTH_TOKEN=$(AUTH_TOKEN)") + +iocInit() diff --git a/startioc.sh b/startioc.sh index a245171..0d7a0ed 100755 --- a/startioc.sh +++ b/startioc.sh @@ -1,15 +1,6 @@ #!/bin/bash +source .env #see .env_exemple +echo $DEVICE_NAME +echo "Starting ePowerSwitch drivers" +iocsh st.cmd -if [ $1 -eq 4 -o $1 -eq 8 ] -then - source .env - export DEVICE_NAME="ePowerSwitch" - export EPOWERSWITCH_SOCKET_NUMBER=$1 - export - echo "Starting ePowerSwitch drivers with $1 outlets" - iocsh st.cmd -else - echo "invalid argument" - echo "$0 4 for 4 outlets" - echo "$0 8 for 8 outlets" -fi \ No newline at end of file