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': ''}}
>>>