79 lines
1.7 KiB
C++
79 lines
1.7 KiB
C++
#ifndef __CHANGE__MASTER__HH__
|
|
#define __CHANGE__MASTER__HH__
|
|
|
|
#include "public.h"
|
|
#include <map>
|
|
#include <string>
|
|
|
|
#define MASTER_TCI_ALIVE 0x55
|
|
#define MASTER_TCI_SEND_INTERVAL (1000*200) //sleep(1)
|
|
#define TCI_CHANGE_FULL_CRITICAL 5
|
|
|
|
#define NORMAL_MACHINE 0
|
|
#define MASTER_TCI 1
|
|
#define STANDBY_TCI 2
|
|
|
|
#define DUAL_NET 2
|
|
#define TIME_OUT_COUNT 3
|
|
|
|
#define GROUND 2
|
|
#define ON 1
|
|
#define OFF 0
|
|
|
|
typedef struct
|
|
{
|
|
BYTE m_type;
|
|
char m_host[HOST_NAME_LENGTH + 1];
|
|
} ChangeMaster;
|
|
|
|
typedef struct
|
|
{
|
|
char m_hostTr[HOST_NAME_LENGTH + 1];
|
|
BOOLEAN m_dualMaster;
|
|
int m_total;
|
|
int m_count;
|
|
NODE_STRUCT *m_node;
|
|
} ChangeControl;
|
|
|
|
class CChangeMaster
|
|
{
|
|
public:
|
|
void MasterTciFirstRun();
|
|
void MasterSend();
|
|
CChangeMaster();
|
|
|
|
public:
|
|
static BYTE m_tcitype;
|
|
BYTE m_lastTcitype;
|
|
ChangeMaster m_changeStruct;
|
|
ChangeControl m_control;
|
|
public:
|
|
BOOLEAN Init(void);
|
|
void OnReceive(ChangeMaster chControl);
|
|
|
|
protected:
|
|
BOOLEAN uart_init(const char *dev);
|
|
int uart_write(const void *data, int size);
|
|
int uart_read(void *data, int size);
|
|
|
|
public:
|
|
int uart_fd;
|
|
public:
|
|
void ChangeNew();
|
|
void ChangeDelete();
|
|
virtual ~CChangeMaster();
|
|
private:
|
|
void SendNodeWarn(BYTE netno, BYTE onOff);
|
|
NODE_STRUCT *GetNode(char *name);
|
|
NODE_STRUCT *GetNode(int netno);
|
|
void ChangeDual();
|
|
void ChangeNode();
|
|
BOOLEAN IsMasterTci();
|
|
|
|
void StartUp(void);
|
|
};
|
|
|
|
void *ChangeNewObject(void *args);
|
|
|
|
#endif
|