add changing of APRS styeeings via SMS

This commit is contained in:
KF7EEL 2021-10-23 19:04:19 -07:00
parent cfe667b035
commit 6a17d1611e
2 changed files with 92 additions and 50 deletions

View File

@ -692,54 +692,57 @@ def decdeg2dms(dd):
def user_setting_write(dmr_id, setting, value, call_type):
## try:
# Open file and load as dict for modification
logger.info(setting.upper())
with open(user_settings_file, 'r') as f:
## if f.read() == '{}':
## user_dict = {}
user_dict = ast.literal_eval(f.read())
logger.info('Current settings: ' + str(user_dict))
if dmr_id not in user_dict:
user_dict[dmr_id] = [{'call': str(get_alias((dmr_id), subscriber_ids))}, {'ssid': ''}, {'icon': ''}, {'comment': ''}, {'pin': ''}, {'APRS': False}]
if setting.upper() == 'ICON':
user_dict[dmr_id][2]['icon'] = value
if setting.upper() == 'SSID':
user_dict[dmr_id][1]['ssid'] = value
if setting.upper() == 'COM':
user_comment = user_dict[dmr_id][3]['comment'] = value[0:35]
if setting.upper() == 'APRS ON':
user_dict[dmr_id][5] = {'APRS': True}
if call_type == 'unit':
send_sms(False, dmr_id, 0000, 0000, 'unit', 'APRS MSG TX/RX Enabled')
if call_type == 'vcsbk':
send_sms(False, 9, 0000, 0000, 'group', 'APRS MSG TX/RX Enabled')
if setting.upper() == 'APRS OFF':
user_dict[dmr_id][5] = {'APRS': False}
if call_type == 'unit':
send_sms(False, dmr_id, 0000, 0000, 'unit', 'APRS MSG TX/RX Disabled')
if call_type == 'vcsbk':
send_sms(False, 9, 0000, 0000, 'group', 'APRS MSG TX/RX Disabled')
if setting.upper() == 'PIN':
#try:
#if user_dict[dmr_id]:
user_dict[dmr_id][4]['pin'] = value
if call_type == 'unit':
send_sms(False, dmr_id, 0000, 0000, 'unit', 'You can now use your pin on the dashboard.')
if call_type == 'vcsbk':
send_sms(False, 9, 0000, 0000, 'group', 'You can now use your pin on the dashboard.')
#if not user_dict[dmr_id]:
# user_dict[dmr_id] = [{'call': str(get_alias((dmr_id), subscriber_ids))}, {'ssid': ''}, {'icon': ''}, {'comment': ''}, {'pin': pin}]
#except:
# user_dict[dmr_id].append({'pin': value})
f.close()
logger.info('Loaded user settings. Write changes.')
# Write modified dict to file
with open(user_settings_file, 'w') as user_dict_file:
user_dict_file.write(str(user_dict))
user_dict_file.close()
logger.info('User setting saved')
f.close()
packet_assembly = ''
if CONFIG['WEB_SERVICE']['REMOTE_CONFIG_ENABLED'] == True:
send_sms_cmd(CONFIG, dmr_id, 'APRS-' + setting + '=' + str(value))
if CONFIG['WEB_SERVICE']['REMOTE_CONFIG_ENABLED'] == False:
# Open file and load as dict for modification
logger.info(setting.upper())
with open(user_settings_file, 'r') as f:
## if f.read() == '{}':
## user_dict = {}
user_dict = ast.literal_eval(f.read())
logger.info('Current settings: ' + str(user_dict))
if dmr_id not in user_dict:
user_dict[dmr_id] = [{'call': str(get_alias((dmr_id), subscriber_ids))}, {'ssid': ''}, {'icon': ''}, {'comment': ''}, {'pin': ''}, {'APRS': False}]
if setting.upper() == 'ICON':
user_dict[dmr_id][2]['icon'] = value
if setting.upper() == 'SSID':
user_dict[dmr_id][1]['ssid'] = value
if setting.upper() == 'COM':
user_comment = user_dict[dmr_id][3]['comment'] = value[0:35]
if setting.upper() == 'APRS ON':
user_dict[dmr_id][5] = {'APRS': True}
if call_type == 'unit':
send_sms(False, dmr_id, 0000, 0000, 'unit', 'APRS MSG TX/RX Enabled')
if call_type == 'vcsbk':
send_sms(False, 9, 0000, 0000, 'group', 'APRS MSG TX/RX Enabled')
if setting.upper() == 'APRS OFF':
user_dict[dmr_id][5] = {'APRS': False}
if call_type == 'unit':
send_sms(False, dmr_id, 0000, 0000, 'unit', 'APRS MSG TX/RX Disabled')
if call_type == 'vcsbk':
send_sms(False, 9, 0000, 0000, 'group', 'APRS MSG TX/RX Disabled')
if setting.upper() == 'PIN':
#try:
#if user_dict[dmr_id]:
user_dict[dmr_id][4]['pin'] = value
if call_type == 'unit':
send_sms(False, dmr_id, 0000, 0000, 'unit', 'You can now use your pin on the dashboard.')
if call_type == 'vcsbk':
send_sms(False, 9, 0000, 0000, 'group', 'You can now use your pin on the dashboard.')
#if not user_dict[dmr_id]:
# user_dict[dmr_id] = [{'call': str(get_alias((dmr_id), subscriber_ids))}, {'ssid': ''}, {'icon': ''}, {'comment': ''}, {'pin': pin}]
#except:
# user_dict[dmr_id].append({'pin': value})
f.close()
logger.info('Loaded user settings. Write changes.')
# Write modified dict to file
with open(user_settings_file, 'w') as user_dict_file:
user_dict_file.write(str(user_dict))
user_dict_file.close()
logger.info('User setting saved')
f.close()
packet_assembly = ''
# Process SMS, do something bases on message

View File

@ -3225,6 +3225,33 @@ Name: <strong>''' + p.name + '''</strong>&nbsp; -&nbsp; Port: <strong>''' + str(
)
db.session.add(add_ss)
db.session.commit()
def oo_server_add(_server, _other_options):
s = ServerList.query.filter_by(name=_server).first()
s.other_options = str(_other_options)
db.session.commit()
def sms_aprs_edit(_user, _dmr_id, _setting, _value):
u = User.query.filter(User.username.ilike(_user)).first()
aprs_settings = ast.literal_eval(u.aprs)
print(_setting)
if _setting == 'ssid':
aprs_settings[_dmr_id][1][_setting] = _value
if _setting == 'icon':
aprs_settings[_dmr_id][2][_setting] = _value
if _setting == 'com':
aprs_settings[_dmr_id][3]['comment'] = _value
if _setting == 'pin':
aprs_settings[_dmr_id][4][_setting] = int(_value)
if _setting.upper() == 'APRS':
if _value.upper() == 'ON':
aprs_settings[_dmr_id][5][_setting] = True
if _value.upper() == 'OFF':
aprs_settings[_dmr_id][5][_setting] = False
print(aprs_settings[_dmr_id])
u.aprs = str(aprs_settings)
db.session.commit()
def tp_del(_id):
tpd = TinyPage.query.filter_by(id=_id).first()
@ -6890,10 +6917,10 @@ Name: <strong>''' + p.name + '''</strong>&nbsp; -&nbsp; Port: <strong>''' + str(
)
sms_que_purge(hblink_req['get_sms_que'])
elif 'sms_cmd' in hblink_req:
print(get_aprs_settings())
## print(get_aprs_settings())
if hblink_req['sms_cmd']:
split_cmd = str(hblink_req['cmd']).split(' ')
print(split_cmd)
## print(split_cmd)
if hblink_req['cmd'][:1] == '?':
## tst = ServerList.query.filter(ServerList.other_options.ilike('%DATA_GATEWAY%')).first()
## print(tst)
@ -6943,6 +6970,18 @@ Name: <strong>''' + p.name + '''</strong>&nbsp; -&nbsp; Port: <strong>''' + str(
sms_que_add('', '', 0, hblink_req['rf_id'], 'motorola', 'unit', hblink_req['sms_cmd'], '', str(i.snd_id) + ': ' + re.sub('<.*?>', '', str(i.message)))
except:
sms_que_add('', '', 0, hblink_req['rf_id'], 'motorola', 'unit', hblink_req['sms_cmd'], '', 'Not found or other error')
elif hblink_req['cmd'][:5] == 'APRS-':
if hblink_req['cmd'][5:9] == 'APRS':
if 'ON' in split_cmd[1]:
sms_aprs_edit(hblink_req['call'], hblink_req['rf_id'], 'APRS', 'ON')
if 'OFF' in split_cmd[1]:
sms_aprs_edit(hblink_req['call'], hblink_req['rf_id'], 'APRS', 'OFF')
elif hblink_req['cmd'][5:9] != 'APRS':
aprs_set = re.sub('APRS-|=.*','',split_cmd[0])
aprs_val = re.sub('.*=|,','',split_cmd[0])
sms_aprs_edit(hblink_req['call'], hblink_req['rf_id'], aprs_set.lower(), aprs_val)