Automated Change by GitHub Action

This commit is contained in:
okunze
2025-06-11 12:21:48 +00:00
committed by github-actions[bot]
parent 1a7ab2e005
commit 755a2ca262
46 changed files with 6182 additions and 9 deletions

View File

@ -0,0 +1,109 @@
#!/usr/bin/python3
#
# Argon Register Helper methods
#
import time
import smbus
# I2C Addresses
ADDR_ARGONONEFAN=0x1a
ADDR_ARGONONEREG=ADDR_ARGONONEFAN
# ARGONONEREG Addresses
ADDR_ARGONONEREG_DUTYCYCLE=0x80
ADDR_ARGONONEREG_FW=0x81
ADDR_ARGONONEREG_IR=0x82
ADDR_ARGONONEREG_CTRL=0x86
# Initialize bus
def argonregister_initializebusobj():
try:
return smbus.SMBus(1)
except Exception:
try:
# Older version
return smbus.SMBus(0)
except Exception:
print("Unable to detect i2c")
return None
# Checks if the FW supports control registers
def argonregister_checksupport(busobj):
if busobj is None:
return False
try:
oldval = argonregister_getbyte(busobj, ADDR_ARGONONEREG_DUTYCYCLE)
newval = oldval + 1
if newval >= 100:
newval = 98
argonregister_setbyte(busobj, ADDR_ARGONONEREG_DUTYCYCLE, newval)
newval = argonregister_getbyte(busobj, ADDR_ARGONONEREG_DUTYCYCLE)
if newval != oldval:
argonregister_setbyte(busobj, ADDR_ARGONONEREG_DUTYCYCLE, oldval)
return True
return False
except:
return False
def argonregister_getbyte(busobj, address):
if busobj is None:
return 0
return busobj.read_byte_data(ADDR_ARGONONEREG, address)
def argonregister_setbyte(busobj, address, bytevalue):
if busobj is None:
return
busobj.write_byte_data(ADDR_ARGONONEREG,address,bytevalue)
time.sleep(1)
def argonregister_getfanspeed(busobj, regsupport=None):
if busobj is None:
return 0
usereg=False
if regsupport is None:
usereg=argonregister_checksupport(busobj)
else:
usereg=regsupport
if usereg == True:
return argonregister_getbyte(busobj, ADDR_ARGONONEREG_DUTYCYCLE)
else:
return 0
def argonregister_setfanspeed(busobj, newspeed, regsupport=None):
if busobj is None:
return
if newspeed > 100:
newspeed = 100
elif newspeed < 0:
newspeed = 0
usereg=False
if regsupport is None:
usereg=argonregister_checksupport(busobj)
else:
usereg=regsupport
if usereg == True:
argonregister_setbyte(busobj, ADDR_ARGONONEREG_DUTYCYCLE, newspeed)
else:
busobj.write_byte(ADDR_ARGONONEFAN,newspeed)
time.sleep(1)
def argonregister_signalpoweroff(busobj):
if busobj is None:
return
if argonregister_checksupport(busobj):
argonregister_setbyte(busobj, ADDR_ARGONONEREG_CTRL, 1)
else:
busobj.write_byte(ADDR_ARGONONEFAN,0xFF)
def argonregister_setircode(busobj, vallist):
if busobj is None:
return
busobj.write_i2c_block_data(ADDR_ARGONONEREG, ADDR_ARGONONEREG_IR, vallist)