From 7a0f9477f2e006d6128cc5a8bf225c8d6de2ad59 Mon Sep 17 00:00:00 2001 From: James Woglom Date: Wed, 15 Jan 2025 18:56:08 -0500 Subject: [PATCH] eventparser: add todict function on all event classes --- tconnectsync/eventparser/build_events.py | 18 + tconnectsync/eventparser/events.py | 693 +++++++++++++++++++++++ tconnectsync/eventparser/raw_event.py | 9 +- 3 files changed, 719 insertions(+), 1 deletion(-) diff --git a/tconnectsync/eventparser/build_events.py b/tconnectsync/eventparser/build_events.py index 20b86db..492b087 100644 --- a/tconnectsync/eventparser/build_events.py +++ b/tconnectsync/eventparser/build_events.py @@ -68,6 +68,15 @@ class {name}(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), +{fields_dict} + ) + ''' def firstLower(text): @@ -97,6 +106,14 @@ def build_fields(event_def): return '\n'.join([f'{" "*4}{f}' for f in ret]) +def build_fields_dict(event_def): + ret = [] + for name, field in event_def["data"].items(): + suffix = 'Raw' if "transform" in field and name[-3:] != 'Raw' else '' + f = f'{fieldNameFormat(name)}{suffix}=self.{fieldNameFormat(name)}{suffix},' + ret.append(f) + return '\n'.join([f'{" "*12}{f}' for f in ret]) + def build_decode(event_def): p1s = [] @@ -134,6 +151,7 @@ def build_event(event_id, event_def): return TEMPLATE.format( name = eventNameFormat(event_def["name"]), fields = build_fields(event_def), + fields_dict = build_fields_dict(event_def), build_p1 = build_decode(event_def)[0], build_p2 = build_decode(event_def)[1], transform_funcs = build_transform_funcs(event_def), diff --git a/tconnectsync/eventparser/events.py b/tconnectsync/eventparser/events.py index 550bb0c..adfd191 100644 --- a/tconnectsync/eventparser/events.py +++ b/tconnectsync/eventparser/events.py @@ -88,6 +88,19 @@ class LidBasalRateChange(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + commandedbasalrate=self.commandedbasalrate, + basebasalrate=self.basebasalrate, + maxbasalrate=self.maxbasalrate, + IDP=self.IDP, + changetypeRaw=self.changetypeRaw, + ) + @dataclass class LidAlertActivated(BaseEvent): @@ -268,6 +281,18 @@ class LidAlertActivated(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + alertidRaw=self.alertidRaw, + faultlocatordata=self.faultlocatordata, + param1=self.param1, + param2=self.param2, + ) + @dataclass class LidAlarmActivated(BaseEvent): @@ -450,6 +475,18 @@ class LidAlarmActivated(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + alarmidRaw=self.alarmidRaw, + faultlocatordata=self.faultlocatordata, + param1=self.param1, + param2=self.param2, + ) + @dataclass class LidMalfunctionActivated(BaseEvent): @@ -491,6 +528,18 @@ class LidMalfunctionActivated(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + malfidRaw=self.malfidRaw, + faultlocatordata=self.faultlocatordata, + param1=self.param1, + param2=self.param2, + ) + @dataclass class LidPumpingSuspended(BaseEvent): @@ -553,6 +602,18 @@ class LidPumpingSuspended(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + presuspendstate=self.presuspendstate, + insulinamount=self.insulinamount, + suspendreasonRaw=self.suspendreasonRaw, + rpatimeout=self.rpatimeout, + ) + @dataclass class LidPumpingResumed(BaseEvent): @@ -588,6 +649,16 @@ class LidPumpingResumed(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + preresumestate=self.preresumestate, + insulinamount=self.insulinamount, + ) + @dataclass class LidTimeChanged(BaseEvent): @@ -626,6 +697,17 @@ class LidTimeChanged(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + timeprior=self.timeprior, + timeafter=self.timeafter, + Rawrtctime=self.Rawrtctime, + ) + @dataclass class LidDateChanged(BaseEvent): @@ -664,6 +746,17 @@ class LidDateChanged(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + dateprior=self.dateprior, + dateafter=self.dateafter, + Rawrtctime=self.Rawrtctime, + ) + @dataclass class LidBgReadingTaken(BaseEvent): @@ -788,6 +881,22 @@ class LidBgReadingTaken(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + selectediobRaw=self.selectediobRaw, + BG=self.BG, + bgentrytypeRaw=self.bgentrytypeRaw, + IOB=self.IOB, + targetbg=self.targetbg, + ISF=self.ISF, + bgsourcetypeRaw=self.bgsourcetypeRaw, + cgmcalibrationRaw=self.cgmcalibrationRaw, + ) + @dataclass class LidBolusCompleted(BaseEvent): @@ -860,6 +969,19 @@ class LidBolusCompleted(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + completionstatusRaw=self.completionstatusRaw, + bolusid=self.bolusid, + insulindelivered=self.insulindelivered, + insulinrequested=self.insulinrequested, + IOB=self.IOB, + ) + @dataclass class LidBolexCompleted(BaseEvent): @@ -932,6 +1054,19 @@ class LidBolexCompleted(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + completionstatusRaw=self.completionstatusRaw, + bolusid=self.bolusid, + insulindelivered=self.insulindelivered, + insulinrequested=self.insulinrequested, + IOB=self.IOB, + ) + @dataclass class LidAlertCleared(BaseEvent): @@ -1106,6 +1241,16 @@ class LidAlertCleared(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + alertidRaw=self.alertidRaw, + faultlocatordata=self.faultlocatordata, + ) + @dataclass class LidAlarmCleared(BaseEvent): @@ -1279,6 +1424,15 @@ class LidAlarmCleared(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + alarmidRaw=self.alarmidRaw, + ) + @dataclass class LidCartridgeFilled(BaseEvent): @@ -1314,6 +1468,16 @@ class LidCartridgeFilled(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + insulinvolume=self.insulinvolume, + v2Volume=self.v2Volume, + ) + @dataclass class LidShelfMode(BaseEvent): @@ -1361,6 +1525,20 @@ class LidShelfMode(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + msecsincereset=self.msecsincereset, + lipocurrent=self.lipocurrent, + lipoAbc=self.lipoAbc, + lipoIbc=self.lipoIbc, + lipoRemcap=self.lipoRemcap, + lipoMv=self.lipoMv, + ) + @dataclass class LidBolusActivated(BaseEvent): @@ -1419,6 +1597,18 @@ class LidBolusActivated(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + selectediobRaw=self.selectediobRaw, + bolusid=self.bolusid, + IOB=self.IOB, + bolussize=self.bolussize, + ) + @dataclass class LidBolexActivated(BaseEvent): @@ -1477,6 +1667,18 @@ class LidBolexActivated(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + selectediobRaw=self.selectediobRaw, + bolusid=self.bolusid, + IOB=self.IOB, + bolexsize=self.bolexsize, + ) + @dataclass class LidDataLogCorruption(BaseEvent): @@ -1512,6 +1714,16 @@ class LidDataLogCorruption(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + block=self.block, + reason=self.reason, + ) + @dataclass class LidCannulaFilled(BaseEvent): @@ -1568,6 +1780,16 @@ class LidCannulaFilled(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + primesize=self.primesize, + completionstatusRaw=self.completionstatusRaw, + ) + @dataclass class LidTubingFilled(BaseEvent): @@ -1627,6 +1849,17 @@ class LidTubingFilled(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + primesize=self.primesize, + completionstatusRaw=self.completionstatusRaw, + position=self.position, + ) + @dataclass class LidBolusRequestedMsg1(BaseEvent): @@ -1720,6 +1953,21 @@ class LidBolusRequestedMsg1(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + bolusid=self.bolusid, + bolustypeRaw=self.bolustypeRaw, + correctionbolusincludedRaw=self.correctionbolusincludedRaw, + carbamount=self.carbamount, + BG=self.BG, + carbratioRaw=self.carbratioRaw, + IOB=self.IOB, + ) + @dataclass class LidBolusRequestedMsg2(BaseEvent): @@ -1859,6 +2107,23 @@ class LidBolusRequestedMsg2(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + selectediobRaw=self.selectediobRaw, + bolusid=self.bolusid, + optionsRaw=self.optionsRaw, + standardpercent=self.standardpercent, + duration=self.duration, + ISF=self.ISF, + targetbg=self.targetbg, + useroverrideRaw=self.useroverrideRaw, + declinedcorrectionRaw=self.declinedcorrectionRaw, + ) + @dataclass class LidBolusRequestedMsg3(BaseEvent): @@ -1900,6 +2165,18 @@ class LidBolusRequestedMsg3(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + bolusid=self.bolusid, + foodbolussize=self.foodbolussize, + correctionbolussize=self.correctionbolussize, + totalbolussize=self.totalbolussize, + ) + @dataclass class LidNewDay(BaseEvent): @@ -1938,6 +2215,17 @@ class LidNewDay(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + commandedbasalrate=self.commandedbasalrate, + featuresbitmask=self.featuresbitmask, + featurebitmaskindex=self.featurebitmaskindex, + ) + @dataclass class LidArmInit(BaseEvent): @@ -1979,6 +2267,18 @@ class LidArmInit(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + version=self.version, + configabits=self.configabits, + configbbits=self.configbbits, + numlogentries=self.numlogentries, + ) + @dataclass class LidPlgsPeriodic(BaseEvent): @@ -2158,6 +2458,22 @@ class LidPlgsPeriodic(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + timestamp=self.timestamp, + FMR=self.FMR, + PGV=self.PGV, + fmrstatusRaw=self.fmrstatusRaw, + pgvvalidRaw=self.pgvvalidRaw, + rulestateRaw=self.rulestateRaw, + hominstateRaw=self.hominstateRaw, + statusRaw=self.statusRaw, + ) + @dataclass class LidCgmAlertActivated(BaseEvent): @@ -2228,6 +2544,18 @@ class LidCgmAlertActivated(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + dalertidRaw=self.dalertidRaw, + faultlocatordata=self.faultlocatordata, + param1=self.param1, + param2=self.param2, + ) + @dataclass class LidCgmAlertCleared(BaseEvent): @@ -2289,6 +2617,15 @@ class LidCgmAlertCleared(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + dalertidRaw=self.dalertidRaw, + ) + @dataclass class LidVersionInfo(BaseEvent): @@ -2330,6 +2667,18 @@ class LidVersionInfo(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + version=self.version, + configabits=self.configabits, + configbbits=self.configbbits, + armcrc=self.armcrc, + ) + @dataclass class LidUpdateStatus(BaseEvent): @@ -2397,6 +2746,21 @@ class LidUpdateStatus(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + swupdatestatus=self.swupdatestatus, + metadataandversionstatus=self.metadataandversionstatus, + fulldlandcrcstatus=self.fulldlandcrcstatus, + filedlandsideloadstatus=self.filedlandsideloadstatus, + externalflashstatus=self.externalflashstatus, + updatesuccessfulRaw=self.updatesuccessfulRaw, + swpartnum=self.swpartnum, + ) + @dataclass class LidCgmStartSessionGx(BaseEvent): @@ -2435,6 +2799,17 @@ class LidCgmStartSessionGx(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + currenttransmittertime=self.currenttransmittertime, + sessionstarttime=self.sessionstarttime, + sessionduration=self.sessionduration, + ) + @dataclass class LidCgmJoinSessionGx(BaseEvent): @@ -2515,6 +2890,18 @@ class LidCgmJoinSessionGx(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + currenttransmittertime=self.currenttransmittertime, + sessionstarttime=self.sessionstarttime, + sessionduration=self.sessionduration, + sessionjoinreasonRaw=self.sessionjoinreasonRaw, + ) + @dataclass class LidCgmStopSessionGx(BaseEvent): @@ -2598,6 +2985,19 @@ class LidCgmStopSessionGx(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + currenttransmittertime=self.currenttransmittertime, + sessionstarttime=self.sessionstarttime, + sessionstoptime=self.sessionstoptime, + sessionduration=self.sessionduration, + sessionstopreasonRaw=self.sessionstopreasonRaw, + ) + @dataclass class LidAaUserModeChange(BaseEvent): @@ -2821,6 +3221,23 @@ class LidAaUserModeChange(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + exercisechoiceRaw=self.exercisechoiceRaw, + exercisetime=self.exercisetime, + currentusermodeRaw=self.currentusermodeRaw, + previoususermodeRaw=self.previoususermodeRaw, + requestedactionRaw=self.requestedactionRaw, + sleepstartedbyguiRaw=self.sleepstartedbyguiRaw, + exercisestoppedbytimerRaw=self.exercisestoppedbytimerRaw, + activesleepscheduleRaw=self.activesleepscheduleRaw, + eatingsoonstoppedbytimerRaw=self.eatingsoonstoppedbytimerRaw, + ) + @dataclass class LidAaPcmChange(BaseEvent): @@ -3004,6 +3421,21 @@ class LidAaPcmChange(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + currentpcmRaw=self.currentpcmRaw, + previouspcmRaw=self.previouspcmRaw, + pumpsuspendedRaw=self.pumpsuspendedRaw, + calculationavailableRaw=self.calculationavailableRaw, + cgmavailableRaw=self.cgmavailableRaw, + closedlooppreferredRaw=self.closedlooppreferredRaw, + sufficientclosedloopparamsRaw=self.sufficientclosedloopparamsRaw, + ) + @dataclass class LidCgmDataGxb(BaseEvent): @@ -3139,6 +3571,23 @@ class LidCgmDataGxb(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + glucosevaluestatusRaw=self.glucosevaluestatusRaw, + cgmDataTypeRaw=self.cgmDataTypeRaw, + rateRaw=self.rateRaw, + algorithmstate=self.algorithmstate, + RSSI=self.RSSI, + currentglucosedisplayvalue=self.currentglucosedisplayvalue, + egvTimestamp=self.egvTimestamp, + egvInfoBitmaskRaw=self.egvInfoBitmaskRaw, + interval=self.interval, + ) + @dataclass class LidBasalDelivery(BaseEvent): @@ -3206,6 +3655,19 @@ class LidBasalDelivery(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + commandedRateSourceRaw=self.commandedRateSourceRaw, + commandedRate=self.commandedRate, + profileBasalRate=self.profileBasalRate, + algorithmRate=self.algorithmRate, + tempRate=self.tempRate, + ) + @dataclass class LidBolusDelivery(BaseEvent): @@ -3338,6 +3800,24 @@ class LidBolusDelivery(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + bolusid=self.bolusid, + bolusDeliveryStatusRaw=self.bolusDeliveryStatusRaw, + bolusTypeRaw=self.bolusTypeRaw, + bolusSourceRaw=self.bolusSourceRaw, + remoteId=self.remoteId, + requestedNow=self.requestedNow, + requestedLater=self.requestedLater, + extendedDurationRequested=self.extendedDurationRequested, + deliveredTotal=self.deliveredTotal, + correction=self.correction, + ) + @dataclass class LidVersionsA(BaseEvent): @@ -3379,6 +3859,18 @@ class LidVersionsA(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + armpartnumber=self.armpartnumber, + armswversion=self.armswversion, + blepartnumber=self.blepartnumber, + bleswversion=self.bleswversion, + ) + @dataclass class LidAaDailyStatus(BaseEvent): @@ -3480,6 +3972,17 @@ class LidAaDailyStatus(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + pumpcontrolstateRaw=self.pumpcontrolstateRaw, + usermodeRaw=self.usermodeRaw, + sensortypeRaw=self.sensortypeRaw, + ) + @dataclass class LidCgmAlertActivatedDex(BaseEvent): @@ -3573,6 +4076,19 @@ class LidCgmAlertActivatedDex(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + dalertidRaw=self.dalertidRaw, + sensortypeRaw=self.sensortypeRaw, + faultlocatordata=self.faultlocatordata, + param1=self.param1, + param2=self.param2, + ) + @dataclass class LidCgmAlertClearedDex(BaseEvent): @@ -3657,6 +4173,16 @@ class LidCgmAlertClearedDex(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + dalertidRaw=self.dalertidRaw, + sensortypeRaw=self.sensortypeRaw, + ) + @dataclass class LidCgmAlertAckDex(BaseEvent): @@ -3762,6 +4288,17 @@ class LidCgmAlertAckDex(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + dalertidRaw=self.dalertidRaw, + sensortypeRaw=self.sensortypeRaw, + acksourceRaw=self.acksourceRaw, + ) + @dataclass class LidCgmDataFsl2(BaseEvent): @@ -3931,6 +4468,23 @@ class LidCgmDataFsl2(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + glucosevaluestatusRaw=self.glucosevaluestatusRaw, + cgmDataTypeRaw=self.cgmDataTypeRaw, + rateRaw=self.rateRaw, + algorithmstateRaw=self.algorithmstateRaw, + RSSI=self.RSSI, + currentglucosedisplayvalue=self.currentglucosedisplayvalue, + egvTimestamp=self.egvTimestamp, + egvInfoBitmaskRaw=self.egvInfoBitmaskRaw, + interval=self.interval, + ) + @dataclass class LidCgmJoinSessionG7(BaseEvent): @@ -3966,6 +4520,16 @@ class LidCgmJoinSessionG7(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + cgmtimestamp=self.cgmtimestamp, + sessionsignature=self.sessionsignature, + ) + @dataclass class LidCgmDataG7(BaseEvent): @@ -4141,6 +4705,23 @@ class LidCgmDataG7(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + glucosevaluestatusRaw=self.glucosevaluestatusRaw, + cgmDataTypeRaw=self.cgmDataTypeRaw, + rateRaw=self.rateRaw, + algorithmstateRaw=self.algorithmstateRaw, + RSSI=self.RSSI, + currentglucosedisplayvalue=self.currentglucosedisplayvalue, + egvTimestamp=self.egvTimestamp, + egvInfoBitmaskRaw=self.egvInfoBitmaskRaw, + interval=self.interval, + ) + @dataclass class LidCgmStartSessionFsl2(BaseEvent): @@ -4176,6 +4757,16 @@ class LidCgmStartSessionFsl2(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + sessionstarttime=self.sessionstarttime, + sessionduration=self.sessionduration, + ) + @dataclass class LidCgmStopSessionFsl2(BaseEvent): @@ -4217,6 +4808,18 @@ class LidCgmStopSessionFsl2(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + sessionstarttime=self.sessionstarttime, + sessionstoptime=self.sessionstoptime, + sessionduration=self.sessionduration, + sessionstopreason=self.sessionstopreason, + ) + @dataclass class LidCgmJoinSessionFsl2(BaseEvent): @@ -4258,6 +4861,18 @@ class LidCgmJoinSessionFsl2(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + sessionstarttime=self.sessionstarttime, + sessionjointime=self.sessionjointime, + sessionduration=self.sessionduration, + sessionjoinreason=self.sessionjoinreason, + ) + @dataclass class LidCgmStopSessionG7(BaseEvent): @@ -4305,6 +4920,20 @@ class LidCgmStopSessionG7(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + currenttransmittertime=self.currenttransmittertime, + sessionstarttime=self.sessionstarttime, + sessionstoptime=self.sessionstoptime, + sessionduration=self.sessionduration, + sessionstopreason=self.sessionstopreason, + stopsessioncode=self.stopsessioncode, + ) + @dataclass class LidCgmAlertActivatedFsl2(BaseEvent): @@ -4396,6 +5025,19 @@ class LidCgmAlertActivatedFsl2(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + dalertidRaw=self.dalertidRaw, + sensortypeRaw=self.sensortypeRaw, + faultlocatordata=self.faultlocatordata, + param1=self.param1, + param2=self.param2, + ) + @dataclass class LidCgmAlertClearedFsl2(BaseEvent): @@ -4478,6 +5120,16 @@ class LidCgmAlertClearedFsl2(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + dalertidRaw=self.dalertidRaw, + sensortypeRaw=self.sensortypeRaw, + ) + @dataclass class LidDailyBasal(BaseEvent): @@ -4528,6 +5180,20 @@ class LidDailyBasal(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + dailytotalbasal=self.dailytotalbasal, + lastbasalrate=self.lastbasalrate, + iob=self.iob, + batterychargepercentmsbRaw=self.batterychargepercentmsbRaw, + batterychargepercentlsbRaw=self.batterychargepercentlsbRaw, + batterylipomillivolts=self.batterylipomillivolts, + ) + @dataclass class LidCarbsEntered(BaseEvent): @@ -4560,6 +5226,15 @@ class LidCarbsEntered(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + carbs=self.carbs, + ) + @dataclass class LidUsbConnected(BaseEvent): @@ -4592,6 +5267,15 @@ class LidUsbConnected(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + negotiatedcurrent=self.negotiatedcurrent, + ) + @dataclass class LidUsbDisconnected(BaseEvent): @@ -4624,6 +5308,15 @@ class LidUsbDisconnected(BaseEvent): def eventId(self): return self.ID + def todict(self): + return dict( + id=self.ID, + name=self.NAME, + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + negotiatedcurrent=self.negotiatedcurrent, + ) + EVENT_IDS = { 3: LidBasalRateChange, 4: LidAlertActivated, diff --git a/tconnectsync/eventparser/raw_event.py b/tconnectsync/eventparser/raw_event.py index 4bb67cc..25f9874 100644 --- a/tconnectsync/eventparser/raw_event.py +++ b/tconnectsync/eventparser/raw_event.py @@ -63,4 +63,11 @@ class RawEvent: def eventTimestamp(self): return self.timestamp - + def todict(self): + return dict( + id=self.id, + name="RawEvent", + seqNum=self.seqNum, + eventTimestamp=str(self.eventTimestamp), + raw=''.join('{:02x}'.format(x) for x in self.raw), + )