"Your controller is either not programmed or running a very old version of BrewPi. " + "Please upload a new version of BrewPi to your controller.") # script will continue so you can at least program the controller lcdText = [ 'Could not receive', 'version from controller', 'Please (re)program', 'your controller' ] else: logMessage("Found " + hwVersion.toExtendedString() + \ " on port " + ser.name + "\n") if LooseVersion(hwVersion.toString()) < LooseVersion(compatibleHwVersion): logMessage( "Warning: minimum BrewPi version compatible with this script is " + compatibleHwVersion + " but version number received is " + hwVersion.toString()) if int(hwVersion.log) != int(expandLogMessage.getVersion()): logMessage( "Warning: version number of local copy of logMessages.h " + "does not match log version number received from controller." + "controller version = " + str(hwVersion.log) + ", local copy version = " + str(expandLogMessage.getVersion())) if hwVersion.family == 'Arduino': exit( "\n ERROR: the newest version of BrewPi is not compatible with Arduino. \n" + "You can use our legacy branch with your Arduino, in which we only include the backwards compatible changes. \n" + "To change to the legacy branch, run: sudo ~/brewpi-tools/updater.py --ask , and choose the legacy branch." ) bg_ser = None
logMessage("Checking software version on controller... ") hwVersion = brewpiVersion.getVersionFromSerial(ser) if hwVersion is None: logMessage("Warning: Cannot receive version number from controller. " + "Your controller is either not programmed or running a very old version of BrewPi. " + "Please upload a new version of BrewPi to your controller.") # script will continue so you can at least program the controller lcdText = ['Could not receive', 'version from controller', 'Please (re)program', 'your controller'] else: logMessage("Found " + hwVersion.toExtendedString() + \ " on port " + ser.name + "\n") if LooseVersion( hwVersion.toString() ) < LooseVersion(compatibleHwVersion): logMessage("Warning: minimum BrewPi version compatible with this script is " + compatibleHwVersion + " but version number received is " + hwVersion.toString()) if int(hwVersion.log) != int(expandLogMessage.getVersion()): logMessage("Warning: version number of local copy of logMessages.h " + "does not match log version number received from controller." + "controller version = " + str(hwVersion.log) + ", local copy version = " + str(expandLogMessage.getVersion())) bg_ser = None if ser is not None: ser.flush() # set up background serial processing, which will continuously read data from serial and put whole lines in a queue bg_ser = BackGroundSerial(ser) bg_ser.start() # request settings from controller, processed later when reply is received bg_ser.write('s') # request control settings cs
+ " with a " + str(avrVersion.shield) + " shield, " + "running BrewPi version " + str(brewpiVersion) + " build " + str(avrVersion.build) ) if brewpiVersion != compatibleBrewpiVersion: logMessage( "Warning: BrewPi version compatible with this script is " + compatibleBrewpiVersion + " but version number received is " + brewpiVersion ) if int(avrVersion.log) != int(expandLogMessage.getVersion()): logMessage( "Warning: version number of local copy of logMessages.h " + "does not match log version number received from Arduino." + "Arduino version = " + str(avrVersion.log) + ", local copy version = " + str(expandLogMessage.getVersion()) ) requestVersion = False break else: ser.write("n") time.sleep(1) retries += 1 if retries > 5: