#ifndef __Device_IoFurnaceMotor_H__
#define __Device_IoFurnaceMotor_H__
#include"BaseDevice.h"
class IoFurnaceMotor: BaseDevice {
	public:
		IoFurnaceMotor(const char* className,const char* name,const char* module);
		void initialize();
		//参数配置项
		int    scSlotCount = 143;
		int    scCycleCount = 3;
		long   scMotionTimeout = 30 * 1000;
		double scPositions[11];	//兼容旧习惯，不使用第0个
		double scMoveSpeed = 10;
		double scAcc = 10;
		double scDec = 10;
		//计算超时的变量
		long elapsedTime = 0;
		//为OP准备的功能函数
		

		//AUTOIO_BEGIN
		static IoFurnaceMotor* poBoatElevatorServo;
		static IoFurnaceMotor* poBoatRotationServo;
		char id[MAX_VALUE_LEN];
		char display[MAX_VALUE_LEN];
		char schematicId[MAX_VALUE_LEN];
		char unit[MAX_VALUE_LEN];
		DeviceAttribute aiRealPosition;
		DeviceAttribute aiRealSpeed;
		DeviceAttribute aiTargetPosFb;
		DeviceAttribute aiDriverErrorCode;
		DeviceAttribute aiMotionErrorCode;
		DeviceAttribute aoTargetPosition;
		DeviceAttribute aoTargetSpeed;
		DeviceAttribute aoAcc;
		DeviceAttribute aoDec;
		DeviceAttribute diOpen;
		DeviceAttribute diClose;
		DeviceAttribute diServoOn;
		DeviceAttribute diMotorAlarm;
		DeviceAttribute diMove;
		DeviceAttribute diPowerOn;
		DeviceAttribute diPowerOnError;
		DeviceAttribute diStop;
		DeviceAttribute diStopError;
		DeviceAttribute diHomeDone;
		DeviceAttribute diAlignDone;
		DeviceAttribute diHoming;
		DeviceAttribute diHomeError;
		DeviceAttribute diMoving;
		DeviceAttribute diMoveError;
		DeviceAttribute diHomePosition;
		DeviceAttribute diNegativeLimit;
		DeviceAttribute diPositiveLimit;
		DeviceAttribute diConveyRelaxAlarm;
		DeviceAttribute diReadyToSwitchOn;
		DeviceAttribute diSwitchOn;
		DeviceAttribute diWarning;
		DeviceAttribute diAlarm;
		DeviceAttribute diPosition1;
		DeviceAttribute diPosition2;
		DeviceAttribute diPosition3;
		DeviceAttribute diUpPosition;
		DeviceAttribute diDownPosition;
		DeviceAttribute doOpen;
		DeviceAttribute doClose;
		DeviceAttribute doStop;
		DeviceAttribute doHome;
		DeviceAttribute doMove;
		DeviceAttribute doReset;
		DeviceAttribute doServoOn;
		DeviceAttribute doInTransfer;
		DeviceAttribute doTransferComplete;
		DeviceAttribute doStepperDriverStart;
		DeviceAttribute doStepperDriverAllWindingsOff;
		DeviceAttribute doStepperDriverDataSelectionM0;
		DeviceAttribute doStepperDriverDataSelectionM1;
		DeviceAttribute doStepperDriverDataSelectionM2;
		DeviceAttribute doStepperDriverDataSelectionM3;
		DeviceAttribute doStepperDriverDataSelectionM4;
		DeviceAttribute doStepperDriverDataSelectionM5;
		DeviceAttribute doStepperDriverHomeOrPosPrerst;
		DeviceAttribute doCW;
		DeviceAttribute doCCW;
		char aioType[MAX_VALUE_LEN];
		char scRootPath[MAX_VALUE_LEN];
		DeviceAttribute aiPowerErrorCode;
		DeviceAttribute aiStopErrorCode;
		DeviceAttribute aiHomeErrorCode;
		DeviceAttribute aiMoveAbsErrorCode;
		DeviceAttribute aiJogErrorCode;
		DeviceAttribute aiResetErrorCode;
		DeviceAttribute aiErrorCode;
		DeviceAttribute doBoatFinish;
		DeviceAttribute doBoatAllow;
		DeviceAttribute doBoatstart;
		DeviceAttribute doExtend;
		DeviceAttribute doRetract;
		DeviceAttribute diInitializing;
		DeviceAttribute diInitDone;
		DeviceAttribute diStepperMotorInWorkPosition;
		DeviceAttribute diStepperMotorMoving;
		DeviceAttribute diStepperMotorAlarm;
		DeviceAttribute diStepperMotorInArea;
		DeviceAttribute diStepperMotorInReady;
		DeviceAttribute diStepperMotorInHomePosition;
		DeviceAttribute doInit;
		DeviceAttribute doM0;
		DeviceAttribute doM1;
		DeviceAttribute doM2;
		DeviceAttribute doM3;
		DeviceAttribute doM4;
		DeviceAttribute doM5;
		//AUTOIO_END
};
#endif
