Files
CTC_Badge/Firmware/updates.py
2024-07-13 13:05:41 -05:00

59 lines
1.9 KiB
Python

from CONFIG.OTA_CONFIG import OTA_HOST, PROJECT_NAME, FILENAMES
from CONFIG.MQTT_CONFIG import MQTT_CLIENT_ID
import uos
import urequests
import micropython as mp
import gc
def update_file_replace(msg_string):
print(f"Starting update process for {msg_string}...")
filename = msg_string
mp.mem_info(1)
gc.collect()
try:
updated = False
print(f"Updating file {filename}")
for i,item in enumerate(FILENAMES):
print(f"Seeing if {filename} is in {item}")
if filename in item:
file_to_write = item
print(f"Found filename! Simple name: {filename} Fullly Qualified: {item}")
try:
uos.mkdir('tmp')
except:
pass
updated = False
file_to_write = FILENAMES[i]
response = urequests.get(f'{OTA_HOST}/ota_updates/{MQTT_CLIENT_ID}/{filename}', timeout=5)
response_text = response.text
response.close()
#print(f"Found file {filename} with {response_text}")
# Get the file we need to write
# Write to a tmp file
print(f"Going to try to write to tmp/{file_to_write}")
with open(f'tmp/{filename}', 'w') as source_file:
source_file.write(response_text)
# Overwrite our onboard file
with open(f'tmp/{filename}', 'r') as source_file, open(file_to_write, 'w') as target_file:
target_file.write(source_file.read())
uos.remove(f'tmp/{filename}')
try:
uos.rmdir('tmp')
except:
pass
break
except Exception as e:
print(f"Exception updating file! {e}")