2
0
mirror of https://opendev.org/x/pyghmi synced 2025-02-05 13:32:48 +00:00

Fix software sensor data

Software sensors are not in the SDR, and
the owner ID is used to distinguish them.
Incorporate the owner ID to qualify
the sensors.

Change-Id: I984eaab21fd992bfd9bf8eda4e22943f9812a104
This commit is contained in:
Jarrod Johnson 2020-09-08 13:33:53 -04:00
parent 39ed56e94e
commit 2dd0d1e4d2
2 changed files with 5 additions and 2 deletions

View File

@ -498,7 +498,8 @@ class EventHandler(object):
raise pygexc.PyghmiException(
'Unrecognized Event message version {0}'.format(eventdata[2]))
sensor_type = eventdata[3]
sensorid = '{0}.{1}'.format(eventdata[4], eventdata[1] & 0b11)
sensorid = '{0}.{1}.{2}'.format(
eventdata[0], eventdata[4], eventdata[1] & 0b11)
event_data = eventdata[6:]
deassertion = (eventdata[5] & 0b10000000 == 0b10000000)
event_type = eventdata[5] & 0b1111111

View File

@ -377,6 +377,7 @@ class SDREntry(object):
# event only, compact and full are very similar
# this function handles the common aspects of compact and full
# offsets from spec, minus 6
self.sensor_owner = entry[0]
self.sensor_lun = entry[1] & 0x03
self.sensor_number = entry[2]
self.entity = ipmiconst.entity_ids.get(
@ -836,7 +837,8 @@ class SDR(object):
newent = SDREntry(sdrbytes, self.ipmicmd, False, self.mfg_id,
self.prod_id)
if newent.sdrtype == TYPE_SENSOR:
id = '{0}.{1}'.format(newent.sensor_number, newent.sensor_lun)
id = '{0}.{1}.{2}'.format(
newent.sensor_owner, newent.sensor_number, newent.sensor_lun)
if id in self.sensors:
self.broken_sensor_ids[id] = True
return