mirror of
https://github.com/gunu3371/m1s_ups_control.git
synced 2024-09-25 05:35:40 +00:00
52 lines
1.4 KiB
Python
Executable File
52 lines
1.4 KiB
Python
Executable File
import serial
|
|
import os
|
|
import time
|
|
import subprocess
|
|
import pwmio
|
|
import board
|
|
|
|
piezo = pwmio.PWMOut(board.D15, variable_frequency=True)
|
|
piezo.duty_cycle = 0
|
|
piezo.frequency = 523
|
|
|
|
ups_loc = subprocess.check_output(['sudo','/bin/bash','kill.sh'])
|
|
ups_loc = ups_loc.decode("UTF-8")
|
|
ups_loc = ups_loc.replace("\n", "")
|
|
ser = serial.Serial(ups_loc, 9600)
|
|
|
|
def swr(a):
|
|
a = bytes(a, 'utf-8')
|
|
ser.write(a)
|
|
a = ser.readline().decode("UTF-8")
|
|
a = a.replace("\n", "")
|
|
a = a.replace("\r", "")
|
|
a = a.replace("#", "")
|
|
a = a.replace("@", "")
|
|
return(a)
|
|
|
|
prt = str()
|
|
while True:
|
|
print("------------------------------------------------------")
|
|
print("------------------------------------------------------")
|
|
a = swr('@Fx#').replace("F","")
|
|
print("firmware ver ",a)
|
|
vol = swr('@V0#').replace("V","")
|
|
print("current voltage "+vol+"mV")
|
|
a = swr('@C0#').replace("","")
|
|
if a != "CF1C1":
|
|
piezo.duty_cycle = 0
|
|
print("Power Status Normal")
|
|
elif a == "CF0C0":
|
|
print("UPS !ERROR!")
|
|
else:
|
|
print("Power Loss Detect")
|
|
piezo.duty_cycle = 45000
|
|
if int(vol) <= 3600:
|
|
ser.write(b'@Px#')
|
|
os.system("shutdown now")
|
|
print("------------------------------------------------------")
|
|
print("------------------------------------------------------")
|
|
time.sleep(1)
|
|
piezo.duty_cycle = 0
|
|
time.sleep(1)
|