Index: shared/scripts/denaliMessages.py =================================================================== diff -u -r40df2a58a855b561c1ca8dabd3b272ac48b8924e -r34ec092c464500431f428cadea93696885cc15e0 --- shared/scripts/denaliMessages.py (.../denaliMessages.py) (revision 40df2a58a855b561c1ca8dabd3b272ac48b8924e) +++ shared/scripts/denaliMessages.py (.../denaliMessages.py) (revision 34ec092c464500431f428cadea93696885cc15e0) @@ -16,9 +16,9 @@ import utils import messageBuilder -from enum import Enum +from enum import IntEnum -class GuiActionType(Enum): +class GuiActionType(IntEnum): Unknown = 0 PowerOff = 1 KeepAlive = 7 @@ -80,6 +80,7 @@ subprocess.call(['cansend', 'can0', '040#00.00.26.02.00.00.C6.00']) ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def buildSetTreatmentBloodFlowRate(vFlowSetPt, vMeasFlow = 0, vRotSpd = 0, vMotSpd = 0, vMCSpd = 0, vMCCurr = 0, vPWM = 0): msg = messageBuilder.buildMessage( 5, 4 * 7, utils.toU32(vFlowSetPt ), @@ -100,6 +101,7 @@ subprocess.call(['cansend', 'can0', '040#{}'.format(frame)]) ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def buildSetTreatmentDialysateFlowRate(vFlowSetPt, vMeasFlow = 0, vRotSpd = 0, vMotSpd = 0, vMCSpd = 0, vMCCurr = 0, vPWM = 0): msg = messageBuilder.buildMessage( 8, 4 * 7, utils.toU32(vFlowSetPt ), @@ -121,7 +123,7 @@ ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def buildTreatmentAdjustBloodDialysateResponse(vAccepted, vReason, vBloodRate, vDialysate): - msg = messageBuilder.buildMessage( 24, 4 * 4, + msg = messageBuilder.buildMessage( GuiActionType.AdjustBloodDialysateRsp, 4 * 4, utils.toU32(vAccepted), utils.toU32(vReason), utils.toU32(vBloodRate), @@ -135,4 +137,22 @@ for frame in frames: subprocess.call(['cansend', 'can0', '020#{}'.format(frame)]) - +## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +def buildAlarm(vState, vTop, vEsclatesIn, vSilentExpires, vFlags): + msg = messageBuilder.buildMessage( GuiActionType.AlarmStatus, 4 * 4 + 2, + utils.toU32(vState ), + utils.toU32(vTop ), + utils.toU32(vEsclatesIn ), + utils.toU32(vSilentExpires ), + utils.toU16(vFlags ) + ) + return messageBuilder.toFrames(msg) +## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +def sendAlarm(vState, vTop, vEsclatesIn, vSilentExpires, vFlags): + frames = buildAlarm(vState, vTop, vEsclatesIn, vSilentExpires, vFlags) + frames = messageBuilder.toCandumpFormat(frames) + for frame in frames: + subprocess.call(['cansend', 'can0', '001#{}'.format(frame)]) + +