⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 class.h

📁 基于PC104平台
💻 H
字号:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//       File name class.h
//         Defined all clases and structures used in class defination
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "common.h"
struct gac_yc_t
{
  int  bdtype[64];
  long ac_yc[65];//8*8+1 Uab Ubc Ia Ic P1 P2 Q1 Q2
};
////////////////////////////////////////////////////
struct ac_standard_t     //for acsample standarding or
{
  int pin[6];
  int board_num;
  int chanel_num;
  int u_value;
  int i_value;
  float result[4];
  BOOLEAN save;
};
struct keyin_buf_t
{
	BOOLEAN dispkeyflag;
	BOOLEAN keyinstate;
	BOOLEAN keyinover;
	INT8U lenlimit;
	INT8U size;
	int count;
	INT8U keybuf[20];
};//struct keyin_buf_t
class CWindows
{
  private:
	  int menu_len;
	  int menu_wide;
	  int menu_position;
	  int window_len;
	  int window_wide;
	  int window_position;
	  char menu_char[10][30];
	  char menu_char_head[10][30];
	  BOOLEAN cursor_flag;
	  int pageno;
	  int pagelineno;
	  int pagedotno;
  public:
	  struct keyin_buf_t keyin_buf;
	  int message_port_no;
	  BOOLEAN message_pause_flag;
	  BOOLEAN helpfirst;  //if a help window is opened then don't show it again
	  BOOLEAN winchange;  //must show another window
	  BOOLEAN poschange;  //need not show another window but show part change

  public:
	  int mainmenuno;            //set main menu item no to the first
	  int itemmenuno;            //set sub menu item no to the first
	  int oldmainmenuno;
	  int olditemmenuno;
	  BOOLEAN item_flag;        //if a menu is opened
	  BOOLEAN window_flag;      //if a window is opened
	  BOOLEAN help_window_flag; //if a help window is opened
		BOOLEAN modify_flag;
  public:
	  CWindows(){ clrscr(); /*cover();*/ _setcursortype(_NOCURSOR); drawmain(); initial();};
	  ~CWindows(){};
  public:
	  void initial();
	  void setcursor(int str,int stp);
	  void sncpy(INT8U *dest, INT8U *src, INT16U len);
	  void DrawBackGround();
	  void Security();
	  void DispKeyInput(INT8U x, INT8U y, INT8U len, INT8U color, BOOLEAN mask);
	  void PopSubMenu(INT8U menuno);
	  void UpdatePopMenu();
	  void KeyDrop();
	  void MessageBox(INT8U *s);
	  void UpdateClock();
	  void WinMessage();
	  void SetMessage();
	  void ResetKeyBuf();
	  void SubMenuCheck();
	  INT16U ProcessWord(INT16U old, INT8U len);
	  INT8U ProcessByte(INT8U old, INT8U len);
	  void cursoroff(void);
	  void cursoron(void);
	  void drawmain();
	  void mainmenucheck();
	  void mainenter();
	  void mainltarr();
	  void mainrtarr();
	  void mainuparr();
	  void maindnarr();
	  void mainesc();
	  void mainf1();
	  void mainf5();
	  void mainf6();
	  void mainf7();
	  void mainf9();
	  void parakeyin(INT8U key);
	  void mainpgup();
	  void mainpgdn();
/*	  void drawmenu();
	  void optionsmenu();
	  void infomenu();
	  void localfuncmenu();
	  void statemenu();
	  void formsmenu();
	  void helpmenu();
	  void drawwindow();*/
	  void scrollup(int topx,int topy,int endx,int endy);
	  int ipower(int base,int coef);
	  unsigned long lipower(int base,int coef);
	  float fpower(int base,int coef,int mark);
	  int processint(int oldint);
	  unsigned long processlint(unsigned long oldint);
	  unsigned int processinth(unsigned int oldint);
	  float processfloat(float oldfloat);
	  void hardset();
	  void winportset();
	  void datasourceset();
	  void yktime();
	  //void special();
	  void yxcompress();
	  void ycsequence();
	  void ymsequence();
	  void protectyx();
	  void ycdefine();
	  void ymdefine();
	  void devicedefine();
	  void systemsate();
	  void showdpram();
	  void acusercoef();
	  void showmespause();
	  void showmessage();
	  void dropmessage();
	  void showyx();
	  void yxinfo();
	  void showyc();
	  void ycinfo();
	  void showym();
	  void yminfo();
	  unsigned int mod(unsigned int par1,unsigned int par2);
	  //void runlog();
	  void doykopinfo();
	  void doykop();
	  void acstandardinfo();
	  void acstandard();
	  void acgroup();
	  void acrate();
	  void dodiag();
	  void diagnose();
	  void checktime();
	  void showwindow();
	  void showhelpwindow();
};//class CWindows
class CYx
{
  private:
	//int select_byte[3];
	//int selected_byte;
	//unsigned int c3ayx[32]; //for save c3a yx
	//unsigned int dmuyx[32]; //for save dmu yx
	//unsigned int dmustateyx[4]; //for save dmu substation state yx
	//BOOLEAN first_flag;
  public:
  public:
  public:
	  CYx(){yxinit();};
	  ~CYx(){};
  public:
	void yxinit();
	int selection();
	INT8U Get8Yx(BYTE address,BYTE orderno);
	void boardyxget();
	void dmuyxget();
	void getdiagnoseyx();
	void process_kzzldx();
	void  resetallprotectyx();
	void yxgetdeal();
};//class CYx
class CYm
{
  private:
	//int select_byte[3];          //defined in ymclass.h
	//int selected_byte;           //defined in ymclass.h
	//unsigned int ym_new_bit_value[8];   //Contain YM value
	//unsigned int ym_old_bit_value[8];   //Contain YM value
	//unsigned int ym_begin;              //flag if YM begin
	//unsigned int ym_come_flag;          //flag if YM is new
	//long unsigned int board_ym[128];    //for save board ym
  public:
  public:
  public:
	  CYm(){yminit();};
	  ~CYm(){};
  public:
	void yminit();
	int selection();
	int Get8Ym(int address,int orderno);
	void boradymget();
	void boardymdeal();
	void ymdeal();
};//class CYm
class CYc
{
  private:
  public:
	  CYc(){ycinit();};
	  ~CYc(){};
  public:
	void ycinit();
	void selectayc();
	void startayc();
	void ycdeal();

};//class CYc
struct preset_dispatch_t  //used as the yk dispatch
{
  int readobj; //read back yk object
  int state;   //PNONE:0x00 PPRESET:0x01 PFORRD:0x02 PRDBACK:0x03 PCHECK:0x04
	       //PDMUPRE:0x05 PDMUCHECK:0x06 PC3AEXEC:0x07 PDMUEXEC:0x08 PC3AESC:0x09
};//struct preset_dispatch_t
class CYk
{
	private:
		struct preset_dispatch_t pdis; //for yk schedule
	public:
		CYk(){ykinit();};
		~CYk(){};
	public:
		void ykinit();
		void ykdistinguish();
		void ykc3apreset();
		void ykc3aforread();
		void ykc3areadback();
		void ykc3acheck();
		void ykc3aexec();
		void ykc3aesc();
		void comykpreset();
		void comykcheck();
		void comykexec();
		void doyk();
};

struct dataque_t
{
  int start;
  int next;
  int count;
  int size;
  BYTE buf[1024];
};//struct dataque_t
class CNbb
{
   public:
	  struct dataque_t dataque;  //for receive command
	  BYTE packetbuf[6];   //for send frame a b c d1 d2 protect
	  BYTE packbuf1[6];    //for send frame e
	  BYTE packbuf2[6];    //for send frame e
	  BYTE nportno;        //indicate current port
   public:
       CNbb(){};
       CNbb(BYTE portno){initial(portno);};
       ~CNbb(){};
   public:
	void initial(BYTE portn);
	void send_packet(BYTE *pointer);
	BYTE get_crc_code(BYTE *pointer);
	BOOLEAN packet_crc_check(BYTE *pointer);
	void settimeproccess(BYTE* pointer);
	void adjusttime(struct date d,struct time t);
	virtual void ykctlprocess(BYTE* pointer);
	void protectprocess(BYTE* pointer);
	void identify_packet(BYTE* pointer);
	void putdata(BYTE data);
	void dropdata();
	unsigned int mod(unsigned int par1,unsigned int par2);
	void getportcmd();
	void getACsample();
	void processACsample(BYTE* pointer);
	void send_control_packet(BYTE ctlbyte,BYTE type,BYTE num,BYTE source,BYTE target);
	virtual void send_yx_packet();
	virtual void send_ym_packet();
	virtual void send_yc_packet();
	void send_prot_packet();
	virtual void send_yk_return();
	virtual void send_yx_bw();
	virtual void make_soe_packet();
	virtual void send_soe_packet(int selectcode);
	BOOLEAN isstepoff();
	void stepoff();
	virtual void senda();
	virtual void sendb();
	virtual void sendc();
	virtual void sendd1();
	virtual void sendd2();
	virtual void sende();
	void sendp();
	BOOLEAN isframeoff();
	void sendframe();
	void deal();
};//class CNbb

struct sendinfo_t
{
  BYTE current_frame_type;
  BYTE current_num_nosend;
  BYTE current_send_ptr;
  BOOLEAN current_send_flag;
  BOOLEAN start_a_send;
  BOOLEAN ask_flag;
  BOOLEAN answer_flag;
  BOOLEAN send_ack;
  BOOLEAN send_nak;
};//struct sendinfo_t
class CWsYm
{
   private:
	  BYTE iportno;     //indicate current port
	  BYTE askbuf[256];  //for send ask command
	  struct dataque_t dataque;  //for receive command
   public:
	  CWsYm(){};
	  CWsYm(BYTE portno){initial(portno);};
	  ~CWsYm(){};
   public:
	void initial(BYTE portno);
	unsigned int getchk(BYTE* pointer,int len);
	void putdata(BYTE data);
	void dropdata();
	void getWsYmcmd();
	void process(BYTE* pointer);
	void queryinfo();
	void deal();
};//class CWsYm
class CAcSample
{
   private:
	  BYTE iportno;     //indicate current port
	  int nextstation;  //for send qury frame
	  BYTE askbuf[256];  //for send ask command
	  struct dataque_t ac;  //for receive command
   public:
	  int nowstation;   //for send qury frame
   public:
	  CAcSample(){};
	  CAcSample(BYTE portno){initial(portno);};
	  ~CAcSample(){};
   public:
	void initial(BYTE portno);
	BYTE GetCHK(BYTE* pointer,BYTE len);
	BYTE GetCRC(BYTE* pointer,BYTE len);
	void PutData(BYTE data);
	void GetCOF();
	//BOOLEAN SaveCOF(BYTE* pointer);
	void MulCOFC();
	void MulCOFB();
	void DropData();
	void GetAcSampleCMD();
	void AcProcess(BYTE* pointer);
	void AcQueryInfo();
	void PutGroup();
	void Reset();
	void deal();
};
class CProtocol
{
  public:
	  struct dataque_t dataque;  //for receive command
  public:
	  CProtocol(){ };
	  ~CProtocol(){};
  public:
	void putdata(BYTE data);
	void dropdata();
	unsigned int mod(unsigned int par1,unsigned int par2);
};//class CProtocol

class C101
{
   public:
	C101(){};
	C101(BYTE portno){initial(portno);};
	~C101(){};
   public:
	void deal();
    private:
	BYTE nportno;
	struct dataque_t ique;
	struct dataque_t oque;
	unsigned int sum,flag,fcb,fcv,dlmyadd,lsfcb,lsfcv,save_count,save_start;
	unsigned int oqp,acd,wobj,wt,widen;
	unsigned int ycf[512],ycif[512],ycnum,temyc[512];
	BOOLEAN waitf;
	void initial(BYTE portn);
	void deal_inf(unsigned int type);
	void yk_select(unsigned int tem_obj,unsigned int tem_typ,unsigned int ident);
	void yk_exe(unsigned int tem_obj,unsigned int tem_typ,unsigned int ident);
	void res_calla();
	void set_timesyn();
	void send_class1();
	void send_class2();
	void send_confirm();
	void send_no_data(unsigned int a1);
	void send_ls();
	void send_pack();
	void putdi(unsigned int data); //for datalink layer
	void dropdata(); //for application layer
	void pdo(unsigned int data,int con);
	void operate_res();
	unsigned int yk_s_check(unsigned int switch_no,unsigned int type);
	unsigned int qmod(unsigned int par1,unsigned int par2);
	void report_count();
	void clear_oque();
	void clear_ique();
	void getcmd();
	void put_oth();
	void send_over_call();
	void send_group(unsigned int num,unsigned int course);
	void putheado(unsigned int len);
	void res_time();
	void yk_esc(unsigned int iden);
	void re_send();
	void res_ym(unsigned int grp);
	void yk_retc();
};
class CLfp
{
	public:
		CLfp(){};
		CLfp(BYTE portno){initial(portno);};
		~CLfp(){};
	private:
		BYTE BH_YC_add,YC_add,YX_add,PRO_add,sub_addr1,phaddre,frame_type,c20_add,c20_ack;
		BYTE  iportno;
		BYTE askbuf[160];
		BOOLEAN WaitCHK,send_protect_flag;
 		unsigned int check(BYTE *pointer,int len);
		void  initial(BYTE portno);
		unsigned int lfpyxno(BYTE Attach_port,BYTE Device_Add,BYTE Inter_YXNO,BYTE ActType);
		unsigned int lfpycno(BYTE Attach_port,BYTE Device_Add,BYTE Inter_YCNO);
		void send_bh_yc();
		void send_ack();
		void send_nak();
		void send_C1_C20();
		void send_C8();
		void send_C15();
		void send_C19();
		void send_ykpre();
		void send_ykexec();
		void send_ykesc();
		void LFP_send(BYTE *pinter,int len);
		void process_R1();
		void process_R2(BYTE *pointer);
		void process_R5(BYTE *pointer);
		void process_R7(BYTE *pointer);
		void process_R8();
		void process_BH_YC(BYTE *pointer);
		void process_R15(BYTE *pointer);
		void process_R17(BYTE *pointer);
		void process_R19(BYTE *pointer);
		void process_R20(BYTE *pointer);
		void process_R10(BYTE *pointer);
		void process_R34(BYTE *pointer);
		struct sendinfo_t sendinfo;
		void  send_frame_on_time();
		void  send_frame();
		void  send_ack_frame();
		void  send_nak_frame();
		void  getlfpcmd();
		void  getnbbcmd();
		struct dataque_t dataque;
		void putdata(BYTE data);
		void dropdata();
		unsigned int mod(unsigned int par1,unsigned int par2);//wkh update

		public:
		BOOLEAN yk_flag;
		void  deal();
};//class CLFP

class CZlp
{
   private:
	  BYTE iportno;     //indicate current port
	  BYTE askbuf[10];  //for send ask command
	  struct dataque_t dataque;  //for receive command
	  int modbusaddr;
	  BOOLEAN query_flag;
	  unsigned int currentCMD;
   public:
	  CZlp(){};
	  CZlp(BYTE portno){initial(portno);};
	  ~CZlp(){};
   public:
	void initial(BYTE portno);
	unsigned int getchk(BYTE* pointer,int len);
	void putdata(BYTE data);
	void dropdata();
	unsigned int crc16( BYTE * msg , BYTE len );
	void sendquery();
	void getzlpinfo();
	void process_zlp(BYTE* pointer);
	void process_ABB_yc(BYTE* pointer);
	void process_ABB_yx(BYTE* pointer);
	void queryinfo();
	void deal();
};//class CZlpmod


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// The end of class.h
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -