// TControlSystem.h: interface for the TControlSystem class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_TCONTROLSYSTEM_H__4E844BF3_7183_11D6_861B_0000E87713C4__INCLUDED_)
#define AFX_TCONTROLSYSTEM_H__4E844BF3_7183_11D6_861B_0000E87713C4__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "TBaseObject.h"

enum TControlSystemMessages
{
   CSM_PRESS_BUTTON = 0,
   CSM_PRESS_ELEV_BUTTON,
   CSM_UNPRESS_BUTTON,

   CSM_STEP,
   
   CSM_SAVE_SOLVER,
   CSM_LOAD_SOLVER,
   CSM_LEARN_SOLVER,
   CSM_LEARN_SOLVER_DLG,
   CSM_GET_SOLVER_CYCLE,
   CSM_SET_SOLVER_STOP_LEARNING,
   CSM_SAVE_SOLVER_PAT,

   CSM_SAVE_TEACHER,
   CSM_LOAD_TEACHER,
   CSM_LEARN_TEACHER,
   CSM_LEARN_TEACHER_DLG,
   CSM_GET_TEACHER_CYCLE,
   CSM_SET_TEACHER_STOP_LEARNING,

   CSM_INIT,
   CSM_RESET,

   CSM_GET_REGIME,
   CSM_GET_SOLVER_IMAGE_NAME,

   CSM_EFF_CRITERIA_COUNTER_PRESTEP,
   CSM_GET_EFF_CRITERIA,
   CSM_GET_POPULEST_FLOOR,
   CSM_GET_KSU,
   CSM_GET_OLD_KSU
};

struct TCSMPressButtonParm
{
   int floor;
   int up;
};

class TControlSystem : public TBaseObject
{
public:
	TControlSystem();
	virtual ~TControlSystem();

// интерфейс управления
   virtual void messageHandler( TControlSystemMessages, void* ) = 0;
};

extern TControlSystem *controlSystem;

#endif // !defined(AFX_TCONTROLSYSTEM_H__4E844BF3_7183_11D6_861B_0000E87713C4__INCLUDED_)
