Equipment States and State Classes | Traverse via script

Script Example

Python
def toNodeStruct(obj):
name=obj.getName()
objType = obj.getMESObjectTypeName()
code = None
stateType = ''

if objType == 'EquipmentState':
code = obj.getStateCode()
stateType = obj.getStateTypeName()

return{
'name':name,
'objectType':objType,
'stateData':{
'code':code,
'stateType':stateType
},
'children': [toNodeStruct(child.getMESObject()) for child in obj.getChildCollection().getList()]
}

eqPath = 'Enterprise\\El Dorado Hills\\Packaging Area\\Packaging Line 1'
eqObj = system.mes.loadMESObjectByEquipmentPath(eqPath)
eqClassObj = system.mes.loadMESObject(eqObj.getEquipmentStateClassUUID())
states = (toNodeStruct(eqClassObj))
import pprint
pprint.pprint(states)
>>> 
{'children': [{'children': [],
               'name': u'Blocked',
               'objectType': u'EquipmentState',
               'stateData': {'code': 5, 'stateType': u'Blocked'}},
              {'children': [],
               'name': u'Disabled',
               'objectType': u'EquipmentState',
               'stateData': {'code': 0, 'stateType': u'Disabled'}},
              {'children': [],
               'name': u'Idle',
               'objectType': u'EquipmentState',
               'stateData': {'code': 2, 'stateType': u'Idle'}},
              {'children': [],
               'name': u'Planned Downtime',
               'objectType': u'EquipmentState',
               'stateData': {'code': 4, 'stateType': u'Planned Downtime'}},
              {'children': [],
               'name': u'Running',
               'objectType': u'EquipmentState',
               'stateData': {'code': 1, 'stateType': u'Running'}},
              {'children': [],
               'name': u'Starved',
               'objectType': u'EquipmentState',
               'stateData': {'code': 6, 'stateType': u'Starved'}},
              {'children': [],
               'name': u'Unplanned Downtime',
               'objectType': u'EquipmentState',
               'stateData': {'code': 3, 'stateType': u'Unplanned Downtime'}}],
 'name': u'Default',
 'objectType': u'EquipmentStateClass',
 'stateData': {'code': None, 'stateType': ''}}
>>>