#include"TcPch.h"
#pragma hdrstop
#include"IoFIMS.h"
#include"DEVICE.h"
#include"debug.h"
IoFIMS::IoFIMS(const char* className,const char* name,const char* module):BaseDevice(className, name, module){
}
//AUTOIO_BEGIN
IoFIMS* _initFIMS1_0(){
	static IoFIMS staticFIMS1("IoFIMS","FIMS1",MODULE_NAME);
	IoFIMS::poFIMS1=&staticFIMS1;
	IoFIMS* dev=&staticFIMS1;
	strcpy(dev->id,"FIMS1");
	strcpy(dev->display,"FIMS1");
	strcpy(dev->schematicId,"FIMS1");
	strcpy(dev->unit,"");
	dev->diDock.create("diDock",&NDI->FIMS1_FOUP_dock,"NDI.FIMS1_FOUP_dock",TRUE);
	dev->diUndock.create("diUndock",&NDI->FIMS1_FOUP_undock,"NDI.FIMS1_FOUP_undock",TRUE);
	dev->diExist.create("diExist",&NDI->FIMS1_FOUP_exist,"NDI.FIMS1_FOUP_exist",TRUE);
	dev->diO2CheckOT.create("diO2CheckOT",&NDI->ILK_FIMS1_O2_Check_OT,"NDI.ILK_FIMS1_O2_Check_OT",TRUE);
	dev->diSeal.create("diSeal",&NDI->FIMS1_seal,"NDI.FIMS1_seal",TRUE);
	dev->diRelease.create("diRelease",&NDI->FIMS1_release,"NDI.FIMS1_release",TRUE);
	return dev;
}
IoFIMS* _initFIMS1_1(IoFIMS *dev){
	dev->diDoorOpen.create("diDoorOpen",&NDI->FIMS1_door_open,"NDI.FIMS1_door_open",TRUE);
	dev->diDoorClose.create("diDoorClose",&NDI->FIMS1_door_close,"NDI.FIMS1_door_close",TRUE);
	dev->diLatchOn.create("diLatchOn",&NDI->FIMS1_FOUP_latch_on,"NDI.FIMS1_FOUP_latch_on",TRUE);
	dev->diLatchOff.create("diLatchOff",&NDI->FIMS1_FOUP_latch_off,"NDI.FIMS1_FOUP_latch_off",TRUE);
	dev->diCollisionAvoidanceDown.create("diCollisionAvoidanceDown",&NDI->FIMS1_collision_avoidance_down,"NDI.FIMS1_collision_avoidance_down",TRUE);
	dev->diCollisionAvoidanceUp.create("diCollisionAvoidanceUp",&NDI->FIMS1_collision_avoidance_up,"NDI.FIMS1_collision_avoidance_up",TRUE);
	dev->diFOUPwafershiftdetection.create("diFOUPwafershiftdetection",&NDI->FIMS1_FOUP_wafer_shift_detection,"NDI.FIMS1_FOUP_wafer_shift_detection",TRUE);
	dev->diLoadComplete.create("diLoadComplete",&NDI->FIMS1_Load_Complete,"NDI.FIMS1_Load_Complete",TRUE);
	dev->diUnloadComplete.create("diUnloadComplete",&NDI->FIMS1_Unload_Complete,"NDI.FIMS1_Unload_Complete",TRUE);
	dev->diHomeComplete.create("diHomeComplete",&NDI->FIMS1_Unload_Complete,"NDI.FIMS1_Unload_Complete",TRUE);
	return dev;
}
IoFIMS* _initFIMS1_2(IoFIMS *dev){
	dev->diRunning.create("diRunning",&NDI->FIMS1_Running,"NDI.FIMS1_Running",TRUE);
	dev->diAutoManual.create("diAutoManual",&NDI->FIMS1_AutoManualMode,"NDI.FIMS1_AutoManualMode",TRUE);
	dev->diN2PurgeValveClosed.create("diN2PurgeValveClosed");
	dev->diN2PurgeValveOpened.create("diN2PurgeValveOpened",&NDI->FIMS1_exhaust_close_position,"NDI.FIMS1_exhaust_close_position",TRUE);
	dev->diFOUPVacuumSuckingOK.create("diFOUPVacuumSuckingOK");
	dev->diFOUPVacuumSuckingAlarm.create("diFOUPVacuumSuckingAlarm");
	dev->diWaferOnRobot.create("diWaferOnRobot");
	dev->diWaferRobotEX1AxisHomePosition.create("diWaferRobotEX1AxisHomePosition",&NDI->WaferRobotAxis_EX1home,"NDI.WaferRobotAxis_EX1home",TRUE);
	dev->diWaferRobotEX2AxisHomePosition.create("diWaferRobotEX2AxisHomePosition",&NDI->WaferRobotAxis_EX2home,"NDI.WaferRobotAxis_EX2home",TRUE);
	dev->doLoad.create("doLoad",&NDO->FIMS1LoadCommand,"NDO.FIMS1LoadCommand",FALSE);
	return dev;
}
IoFIMS* _initFIMS1_3(IoFIMS *dev){
	dev->doUnload.create("doUnload",&NDO->FIMS1UnloadCommand,"NDO.FIMS1UnloadCommand",FALSE);
	dev->doHome.create("doHome",&NDO->FIMS1UnloadCommand,"NDO.FIMS1UnloadCommand",FALSE);
	dev->doAlarmReset.create("doAlarmReset",&NDO->FIMS1AlarmReset,"NDO.FIMS1AlarmReset",FALSE);
	dev->doAutoManual.create("doAutoManual",&NDO->FIMS1AutoManualCommand,"NDO.FIMS1AutoManualCommand",FALSE);
	dev->doDock.create("doDock",&NDO->FIMS1Dock,"NDO.FIMS1Dock",FALSE);
	dev->doUndock.create("doUndock",&NDO->FIMS1Undock,"NDO.FIMS1Undock",FALSE);
	dev->doSeal.create("doSeal",&NDO->FIMS1Seal,"NDO.FIMS1Seal",FALSE);
	dev->doRelease.create("doRelease",&NDO->FIMS1Release,"NDO.FIMS1Release",FALSE);
	dev->doDoorOpen.create("doDoorOpen",&NDO->FIMS1DoorOpen,"NDO.FIMS1DoorOpen",FALSE);
	dev->doDoorClose.create("doDoorClose",&NDO->FIMS1DoorClose,"NDO.FIMS1DoorClose",FALSE);
	return dev;
}
IoFIMS* _initFIMS1_4(IoFIMS *dev){
	dev->doLatch1On.create("doLatch1On",&NDO->FIMS1Latch1On,"NDO.FIMS1Latch1On",FALSE);
	dev->doLatch2On.create("doLatch2On",&NDO->FIMS1Latch2On,"NDO.FIMS1Latch2On",FALSE);
	dev->doLatch1Off.create("doLatch1Off",&NDO->FIMS1Latch1Off,"NDO.FIMS1Latch1Off",FALSE);
	dev->doLatch2Off.create("doLatch2Off",&NDO->FIMS1Latch2Off,"NDO.FIMS1Latch2Off",FALSE);
	dev->doCollisionAvoidanceDown.create("doCollisionAvoidanceDown",&NDO->FIMS1CollisionAvoidanceDown,"NDO.FIMS1CollisionAvoidanceDown",FALSE);
	dev->doCollisionAvoidanceUp.create("doCollisionAvoidanceUp",&NDO->FIMS1CollisionAvoidanceUp,"NDO.FIMS1CollisionAvoidanceUp",FALSE);
	dev->doN2PurgeValveOpen.create("doN2PurgeValveOpen",&NDO->FIMS1N2PurgeValveOpen,"NDO.FIMS1N2PurgeValveOpen",FALSE);
	dev->doN2PurgeValveClose.create("doN2PurgeValveClose",&NDO->FIMS1N2PurgeValveClose,"NDO.FIMS1N2PurgeValveClose",FALSE);
	dev->doVaccumValveOpen.create("doVaccumValveOpen",&NDO->FIMS1VaccumValveOpen,"NDO.FIMS1VaccumValveOpen",FALSE);
	dev->doVaccumValveClose.create("doVaccumValveClose",&NDO->FIMS1VaccumValveClose,"NDO.FIMS1VaccumValveClose",FALSE);
	return dev;
}
IoFIMS* _initFIMS1_5(IoFIMS *dev){
	strcpy(dev->scRootPath,"FIMS");
	return dev;
}
IoFIMS* _initFIMS2_0(){
	static IoFIMS staticFIMS2("IoFIMS","FIMS2",MODULE_NAME);
	IoFIMS::poFIMS2=&staticFIMS2;
	IoFIMS* dev=&staticFIMS2;
	strcpy(dev->id,"FIMS2");
	strcpy(dev->display,"FIMS2");
	strcpy(dev->schematicId,"FIMS2");
	strcpy(dev->unit,"");
	dev->diDock.create("diDock",&NDI->FIMS2_FOUP_dock,"NDI.FIMS2_FOUP_dock",TRUE);
	dev->diUndock.create("diUndock",&NDI->FIMS2_FOUP_undock,"NDI.FIMS2_FOUP_undock",TRUE);
	dev->diO2CheckOT.create("diO2CheckOT",&NDI->ILK_FIMS1_O2_Check_OT,"NDI.ILK_FIMS1_O2_Check_OT",TRUE);
	dev->diExist.create("diExist",&NDI->FIMS2_FOUP_exist,"NDI.FIMS2_FOUP_exist",TRUE);
	dev->diSeal.create("diSeal",&NDI->FIMS2_seal,"NDI.FIMS2_seal",TRUE);
	dev->diRelease.create("diRelease",&NDI->FIMS2_release,"NDI.FIMS2_release",TRUE);
	return dev;
}
IoFIMS* _initFIMS2_1(IoFIMS *dev){
	dev->diDoorOpen.create("diDoorOpen",&NDI->FIMS2_door_open,"NDI.FIMS2_door_open",TRUE);
	dev->diDoorClose.create("diDoorClose",&NDI->FIMS2_door_close,"NDI.FIMS2_door_close",TRUE);
	dev->diLatchOn.create("diLatchOn",&NDI->FIMS2_FOUP_latch_on,"NDI.FIMS2_FOUP_latch_on",TRUE);
	dev->diLatchOff.create("diLatchOff",&NDI->FIMS2_FOUP_latch_off,"NDI.FIMS2_FOUP_latch_off",TRUE);
	dev->diCollisionAvoidanceDown.create("diCollisionAvoidanceDown",&NDI->FIMS2_collision_avoidance_down,"NDI.FIMS2_collision_avoidance_down",TRUE);
	dev->diCollisionAvoidanceUp.create("diCollisionAvoidanceUp",&NDI->FIMS2_collision_avoidance_up,"NDI.FIMS2_collision_avoidance_up",TRUE);
	dev->diFOUPwafershiftdetection.create("diFOUPwafershiftdetection",&NDI->FIMS2_FOUP_wafer_shift_detection,"NDI.FIMS2_FOUP_wafer_shift_detection",TRUE);
	dev->diLoadComplete.create("diLoadComplete",&NDI->FIMS2_Load_Complete,"NDI.FIMS2_Load_Complete",TRUE);
	dev->diUnloadComplete.create("diUnloadComplete",&NDI->FIMS2_Unload_Complete,"NDI.FIMS2_Unload_Complete",TRUE);
	dev->diHomeComplete.create("diHomeComplete",&NDI->FIMS2_Unload_Complete,"NDI.FIMS2_Unload_Complete",TRUE);
	return dev;
}
IoFIMS* _initFIMS2_2(IoFIMS *dev){
	dev->diRunning.create("diRunning",&NDI->FIMS2_Running,"NDI.FIMS2_Running",TRUE);
	dev->diAutoManual.create("diAutoManual",&NDI->FIMS2_AutoManualMode,"NDI.FIMS2_AutoManualMode",TRUE);
	dev->diN2PurgeValveClosed.create("diN2PurgeValveClosed");
	dev->diN2PurgeValveOpened.create("diN2PurgeValveOpened",&NDI->FIMS2_exhaust_close_position,"NDI.FIMS2_exhaust_close_position",TRUE);
	dev->diFOUPVacuumSuckingOK.create("diFOUPVacuumSuckingOK");
	dev->diFOUPVacuumSuckingAlarm.create("diFOUPVacuumSuckingAlarm");
	dev->diWaferOnRobot.create("diWaferOnRobot");
	dev->diWaferRobotEX1AxisHomePosition.create("diWaferRobotEX1AxisHomePosition",&NDI->WaferRobotAxis_EX1home,"NDI.WaferRobotAxis_EX1home",TRUE);
	dev->diWaferRobotEX2AxisHomePosition.create("diWaferRobotEX2AxisHomePosition",&NDI->WaferRobotAxis_EX2home,"NDI.WaferRobotAxis_EX2home",TRUE);
	dev->doLoad.create("doLoad",&NDO->FIMS2LoadCommand,"NDO.FIMS2LoadCommand",FALSE);
	return dev;
}
IoFIMS* _initFIMS2_3(IoFIMS *dev){
	dev->doUnload.create("doUnload",&NDO->FIMS2UnloadCommand,"NDO.FIMS2UnloadCommand",FALSE);
	dev->doHome.create("doHome",&NDO->FIMS2UnloadCommand,"NDO.FIMS2UnloadCommand",FALSE);
	dev->doAlarmReset.create("doAlarmReset",&NDO->FIMS2AlarmReset,"NDO.FIMS2AlarmReset",FALSE);
	dev->doAutoManual.create("doAutoManual",&NDO->FIMS2AutoManualCommand,"NDO.FIMS2AutoManualCommand",FALSE);
	dev->doDock.create("doDock",&NDO->FIMS2Dock,"NDO.FIMS2Dock",FALSE);
	dev->doUndock.create("doUndock",&NDO->FIMS2Undock,"NDO.FIMS2Undock",FALSE);
	dev->doSeal.create("doSeal",&NDO->FIMS2Seal,"NDO.FIMS2Seal",FALSE);
	dev->doRelease.create("doRelease",&NDO->FIMS2Release,"NDO.FIMS2Release",FALSE);
	dev->doDoorOpen.create("doDoorOpen",&NDO->FIMS2DoorOpen,"NDO.FIMS2DoorOpen",FALSE);
	dev->doDoorClose.create("doDoorClose",&NDO->FIMS2DoorClose,"NDO.FIMS2DoorClose",FALSE);
	return dev;
}
IoFIMS* _initFIMS2_4(IoFIMS *dev){
	dev->doLatch1On.create("doLatch1On",&NDO->FIMS2Latch1On,"NDO.FIMS2Latch1On",FALSE);
	dev->doLatch2On.create("doLatch2On",&NDO->FIMS2Latch2On,"NDO.FIMS2Latch2On",FALSE);
	dev->doLatch1Off.create("doLatch1Off",&NDO->FIMS2Latch1Off,"NDO.FIMS2Latch1Off",FALSE);
	dev->doLatch2Off.create("doLatch2Off",&NDO->FIMS2Latch2Off,"NDO.FIMS2Latch2Off",FALSE);
	dev->doCollisionAvoidanceDown.create("doCollisionAvoidanceDown",&NDO->FIMS2CollisionAvoidanceDown,"NDO.FIMS2CollisionAvoidanceDown",FALSE);
	dev->doCollisionAvoidanceUp.create("doCollisionAvoidanceUp",&NDO->FIMS2CollisionAvoidanceUp,"NDO.FIMS2CollisionAvoidanceUp",FALSE);
	dev->doN2PurgeValveOpen.create("doN2PurgeValveOpen",&NDO->FIMS2N2PurgeValveOpen,"NDO.FIMS2N2PurgeValveOpen",FALSE);
	dev->doN2PurgeValveClose.create("doN2PurgeValveClose",&NDO->FIMS2N2PurgeValveClose,"NDO.FIMS2N2PurgeValveClose",FALSE);
	dev->doVaccumValveOpen.create("doVaccumValveOpen",&NDO->FIMS2VaccumValveOpen,"NDO.FIMS2VaccumValveOpen",FALSE);
	dev->doVaccumValveClose.create("doVaccumValveClose",&NDO->FIMS2VaccumValveClose,"NDO.FIMS2VaccumValveClose",FALSE);
	return dev;
}
IoFIMS* _initFIMS2_5(IoFIMS *dev){
	strcpy(dev->scRootPath,"FIMS");
	return dev;
}
void initIoFIMS(){
	IoFIMS* dev;
	dev=_initFIMS1_0();
	_initFIMS1_1(dev);
	_initFIMS1_2(dev);
	_initFIMS1_3(dev);
	_initFIMS1_4(dev);
	_initFIMS1_5(dev);
	dev=_initFIMS2_0();
	_initFIMS2_1(dev);
	_initFIMS2_2(dev);
	_initFIMS2_3(dev);
	_initFIMS2_4(dev);
	_initFIMS2_5(dev);
}
IoFIMS* IoFIMS::poFIMS1=NULL;
IoFIMS* IoFIMS::poFIMS2=NULL;
//AUTOIO_END
