//---------------------------------------------------------------------------

#ifndef SystemInfo_FormH
#define SystemInfo_FormH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>

#include "common.h"
#include "TntExtCtrls.hpp"
#include "TntStdCtrls.hpp"
#include "TntForms.hpp"
//---------------------------------------------------------------------------
class TSystemInfoForm : public TTntForm
{
__published:	// IDE-managed Components
	TTntGroupBox *GroupBox1;
	TTntLabel *Label2;
	TTntLabel *Label5;
  TTntLabel *IPBIDPanel1;
  TTntLabel *IPBIDPanel2;
  TTntLabel *IPBIDPanel3;
  TTntLabel *IPBIDPanel4;
	TTntButton *OkButton;
  TTntLabel *IPBIDPanel5;
  TTntLabel *IPBIDPanel6;
  TTntPanel *CameraResulrMenuPanel;
  TTntPanel *Panel3;
  TTntPanel *Panel5;
  TTntPanel *TntPanel1;
  TTntPanel *TntPanel2;
  TTntPanel *TntPanel3;
  TTntPanel *TntPanel4;
  TTntLabel *TntLabel21;
  TTntLabel *TntLabel22;
  TTntLabel *TntLabel23;
  TTntLabel *TntLabel24;
  TTntPanel *ShapePanel1;
  TPanel *SystemCommStatusTargetPC;
  TPanel *HCBConnectLabel;
  TPanel *SPBConnectLabel1;
  TPanel *SPBConnectLabel2;
  TPanel *SPBConnectLabel3;
  TPanel *SPBConnectLabel5;
  TPanel *SPBConnectLabel6;
  TPanel *SPBConnectLabel4;
  TPanel *PCVersionLabel;
  TPanel *HCBVersionLabel;
  TPanel *SPBVersionLabel1;
  TPanel *SPBVersionLabel2;
  TPanel *SPBVersionLabel3;
  TPanel *SPBVersionLabel4;
  TPanel *SPBVersionLabel5;
  TPanel *SPBVersionLabel6;
  TPanel *CPBVersionLabel1;
  TPanel *CPBVersionLabel2;
  TPanel *CPBVersionLabel3;
  TPanel *CPBVersionLabel4;
  TPanel *CPBVersionLabel5;
  TPanel *CPBVersionLabel6;
  TPanel *SPBFPGAVersionLabel1;
  TPanel *SPBFPGAVersionLabel2;
  TPanel *SPBFPGAVersionLabel3;
  TPanel *SPBFPGAVersionLabel4;
  TPanel *SPBFPGAVersionLabel5;
  TPanel *SPBFPGAVersionLabel6;
  TPanel *SystemCompatibilityFromIPB1;
  TPanel *SystemCompatibilityFromIPB2;
  TPanel *SystemCompatibilityFromIPB3;
  TPanel *SystemCompatibilityFromIPB4;
  TPanel *SystemCompatibilityFromIPB5;
  TPanel *SystemCompatibilityFromIPB6;
  TTntPanel *ShapePanel2;
  TTntPanel *ShapePanel3;
  TTntPanel *ShapePanel4;
  TTntPanel *ShapePanel5;
  TTntPanel *ShapePanel6;
  TTntPanel *ShapePanel7;
  TPanel *SystemCompatibilityFromPC;
  TPanel *SystemCompatibilityFromHCB;
  TTntPanel *TntPanel5;
  TTntLabel *IPBIDPanel7;
  TPanel *SPBConnectLabel7;
  TPanel *SPBVersionLabel7;
  TPanel *CPBVersionLabel7;
  TPanel *SPBFPGAVersionLabel7;
  TPanel *SystemCompatibilityFromIPB7;
  TTntPanel *TntPanel6;
  TTntLabel *IPBIDPanel8;
  TPanel *SPBConnectLabel8;
  TPanel *SPBVersionLabel8;
  TPanel *CPBVersionLabel8;
  TPanel *SPBFPGAVersionLabel8;
  TPanel *SystemCompatibilityFromIPB8;
  TTntLabel *TPBIDPanel;
  TPanel *TPBConnectLabel;
  TPanel *TPBVersionLabel;
  TPanel *CPBVersionLabelTPB;
  TPanel *TPB_FPGAVersionLabel;
  TPanel *SystemCompatibilityFromTPB;
	void __fastcall FormCreate(TObject *Sender);
private:	// User declarations
	bool HCBConnected;
	bool SPBConnected[SYSTEM_SPB_MAX_COUNT];
	bool TPBConnected;

	bool HCBVersionValid;
	bool SPBVersionValid[SYSTEM_SPB_MAX_COUNT];
  bool TPBVersionValid;

	TProgramVersion HCBVersion;
	TProgramVersion SPBVersion[SYSTEM_SPB_MAX_COUNT];
  TProgramVersion TPBVersion;

	TSPBFPGAVersion SPBFPGAVersion[SYSTEM_SPB_MAX_COUNT];
  TSPBFPGAVersion TPBFPGAVersion;

	THCBCompatibility HCBCompatibility;
	TSPBCompatibility SPBCompatibility[SYSTEM_SPB_MAX_COUNT];
  TSPBCompatibility TPBCompatibility;

  bool TPB_FPGAVersionValid;
  bool TPB_CPBVersionValid;     

	void __fastcall ReadProgramVersion(void);
	void __fastcall ShowProgramVersion(void);
  void __fastcall CheckSystemCompatibility(void);
public:		// User declarations
	__fastcall TSystemInfoForm(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TSystemInfoForm *SystemInfoForm;
//---------------------------------------------------------------------------
#endif
