Skip to content

Commit

Permalink
dropping support for firmware earlier than v3.1
Browse files Browse the repository at this point in the history
  • Loading branch information
kwindrem committed Jul 17, 2024
1 parent ac24f6c commit 50f0523
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 105 deletions.
106 changes: 2 additions & 104 deletions ShutdownMonitor.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,114 +18,12 @@
import time
import re
import dbus

# accommodate both Python 2 and 3
# if the Python 3 GLib import fails, import the Python 2 gobject
try:
from gi.repository import GLib # for Python 3
except ImportError:
import gobject as GLib # for Python 2

# convert a version string to an integer to make comparisions easier
# refer to PackageManager.py for full description

def VersionToNumber (version):
version = version.replace ("large","L")
numberParts = re.split ('\D+', version)
otherParts = re.split ('\d+', version)
# discard blank elements
# this can happen if the version string starts with alpha characters (like "v")
# of if there are no numeric digits in the version string
try:
while numberParts [0] == "":
numberParts.pop(0)
except:
pass

numberPartsLength = len (numberParts)

if numberPartsLength == 0:
return 0
versionNumber = 0
releaseType='release'
if numberPartsLength >= 2:
if 'b' in otherParts or '~' in otherParts:
releaseType = 'beta'
versionNumber += 60000
elif 'a' in otherParts:
releaseType = 'alpha'
versionNumber += 30000
elif 'd' in otherParts:
releaseType = 'develop'

# if release all parts contribute to the main version number
# and offset is greater than all prerelease versions
if releaseType == 'release':
versionNumber += 90000
# if pre-release, last part will be the pre release part
# and others part will be part the main version number
else:
numberPartsLength -= 1
versionNumber += int (numberParts [numberPartsLength])

# include core version number
versionNumber += int (numberParts [0]) * 10000000000000
if numberPartsLength >= 2:
versionNumber += int (numberParts [1]) * 1000000000
if numberPartsLength >= 3:
versionNumber += int (numberParts [2]) * 100000

return versionNumber


# get venus version
versionFile = "/opt/victronenergy/version"
try:
file = open (versionFile, 'r')
except:
VenusVersion = ""
VenusVersionNumber = 0
else:
VenusVersion = file.readline().strip()
VenusVersionNumber = VersionToNumber (VenusVersion)
file.close()

from gi.repository import GLib
# add the path to our own packages for import
# use an established Victron service to maintain compatiblity
setupHelperVeLibPath = "/data/SetupHelper/velib_python"
veLibPath = ""
if os.path.exists ( setupHelperVeLibPath ):
for libVersion in os.listdir ( setupHelperVeLibPath ):
# use 'latest' for newest versions even if not specifically checked against this verison when created
if libVersion == "latest":
newestVersionNumber = VersionToNumber ( "v9999.9999.9999" )
else:
newestVersionNumber = VersionToNumber ( libVersion )
oldestVersionPath = os.path.join (setupHelperVeLibPath, libVersion, "oldestVersion" )
if os.path.exists ( oldestVersionPath ):
try:
fd = open (oldestVersionPath, 'r')
oldestVersionNumber = VersionToNumber ( fd.readline().strip () )
fd.close()
except:
oldestVersionNumber = 0
else:
oldestVersionNumber = 0
if VenusVersionNumber >= oldestVersionNumber and VenusVersionNumber <= newestVersionNumber:
veLibPath = os.path.join (setupHelperVeLibPath, libVersion)
break

# no SetupHelper velib - use one in systemcalc
if veLibPath == "":
veLibPath = os.path.join('/opt/victronenergy/dbus-systemcalc-py', 'ext', 'velib_python')

logging.warning ("using " + veLibPath + " for velib_python")
sys.path.insert(1, veLibPath)

sys.path.insert(1, "/data/SetupHelper/velib_python")
from vedbus import VeDbusService
from settingsdevice import SettingsDevice


ShutdownServiceName = 'com.victronenergy.shutdown'

# These methods permit creation of a separate connection for each Repeater
Expand Down
4 changes: 4 additions & 0 deletions changes
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
v3.6:
dropping support for firmware earlier than v3.10
moved velib_python in SetupHelper to a single version

v3.5:
use velib_python to the one in SetupHelper (if it exists)

Expand Down
2 changes: 1 addition & 1 deletion version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v3.5
v3.6

0 comments on commit 50f0523

Please sign in to comment.