-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathrtl_433.init
More file actions
executable file
·123 lines (101 loc) · 2.5 KB
/
Copy pathrtl_433.init
File metadata and controls
executable file
·123 lines (101 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/bin/sh /etc/rc.common
START=99
USE_PROCD=1
PROG=/usr/bin/rtl_433
append_arg() {
local cfg="$1"
local var="$2"
local opt="$3"
local def="$4"
local val
config_get val "$cfg" "$var"
[ -n "$val" -o -n "$def" ] && procd_append_param command "$opt" "${val:-$def}"
}
append_bool() {
local cfg="$1"
local var="$2"
local opt="$3"
local def="$4"
local val
config_get_bool val "$cfg" "$var" "$def"
[ "$val" = 1 ] && procd_append_param command "$opt"
}
append_list() {
local cfg="$1"
local var="$2"
local opt="$3"
local vals entry
config_get vals "$cfg" "$var"
[ -n "$vals" ] && {
for entry in $vals; do
procd_append_param command "$opt" "$entry"
done
}
}
validate_rtl_433_section()
{
uci_validate_section "rtl_433" "rtl_433" "${1}" \
'enabled:bool' \
'runtime:uinteger' \
'respawn_interval:uinteger' \
'device:string' \
'gain:float' \
'frequencies:uinteger' \
'hop_time:uinteger' \
'ppm_error:uinteger' \
'sample_rate:uinteger' \
'demodulators:uinteger' \
'level:float' \
'short_value:uinteger' \
'long_value:uinteger' \
'samples:uinteger' \
'units:or("si", "native", "customary")' \
'utc:bool' \
'output:string'
return $?
}
load_rtl_433() {
local cfg="$1"
local enabled
local respawn_interval=3540
validate_rtl_433_section "$cfg" || { echo "validation failed"; return 1; }
config_get enabled "$cfg" enabled
[ "$enabled" = "1" ] || return 1
config_get cfg_respawn_interval "$cfg" respawn_interval
[ -n "$cfg_respawn_interval" ] && respawn_interval="$cfg_respawn_interval"
procd_open_instance
procd_set_param command "$PROG" -q
# append_arg "$cfg" runtime "-T" "60"
append_arg "$cfg" runtime "-T"
# Tuner options
append_arg "$cfg" device "-d"
append_arg "$cfg" gain "-g"
append_list "$cfg" frequencies "-f"
append_arg "$cfg" hop_time "-h"
append_arg "$cfg" ppm_error "-p"
append_arg "$cfg" sample_rate "-s"
# Demodulator options
append_list "$cfg" demodulators "-R"
append_arg "$cfg" level "-l"
append_arg "$cfg" short_value "-z"
append_arg "$cfg" long_value "-x"
append_arg "$cfg" samples "-n"
# File I/O options
append_arg "$cfg" units "-C"
append_bool "$cfg" utc "-U"
append_list "$cfg" output "-F"
procd_set_param stdout 1
procd_set_param stderr 0
procd_set_param respawn 0 $respawn_interval 0
procd_close_instance
}
start_service() {
config_load "rtl_433"
config_foreach load_rtl_433 "rtl_433"
}
service_triggers() {
procd_add_reload_trigger "rtl_433"
procd_open_validate
validate_rtl_433_section
procd_close_validate
}