63 lines
2.0 KiB
C++
63 lines
2.0 KiB
C++
#ifndef _ZJD_SUB_IEC101_BALANCED_PROCESS_H_
|
|
#define _ZJD_SUB_IEC101_BALANCED_PROCESS_H_
|
|
|
|
#include "iec101.h"
|
|
|
|
class CIEC101SecondaryBalancedProcessItem : public CIEC101ProcessItem
|
|
{
|
|
public:
|
|
CIEC101SecondaryBalancedProcessItem() {};
|
|
virtual ~CIEC101SecondaryBalancedProcessItem() {};
|
|
public:
|
|
void Attach(int uid, int physicsAddress = 0, int commonAddress = 0, int originatorAddress = 0)
|
|
{
|
|
CIEC101ProcessItem::Attach(uid, physicsAddress, commonAddress, m_originatorAddress);
|
|
primaryLinkBalanced.otherStationAddress = physicsAddress;
|
|
common_address = commonAddress;
|
|
applicationlParameters.originatorAddress = originatorAddress;
|
|
}
|
|
void setAppLayerDataCount(int yx = 0, int yc = 0, int ym = 0)
|
|
{
|
|
total_yx = yx;
|
|
total_yc = yc;
|
|
total_ym = ym;
|
|
yx_pos = 0;
|
|
yc_pos = 0;
|
|
ym_pos = 0;
|
|
}
|
|
};
|
|
|
|
class CIEC101SecondaryBalancedProcess : public CIEC101SecondaryProcess
|
|
{
|
|
public:
|
|
CIEC101SecondaryBalancedProcess() {m_linkLayer.mode = llSecBalanced;};
|
|
virtual ~CIEC101SecondaryBalancedProcess() {};
|
|
BOOLEAN OnPreCreate(int id);
|
|
BOOLEAN Run(void);
|
|
BOOLEAN OnTimer(void);
|
|
|
|
CIEC101ProcessItem *CreateItem(int ord)
|
|
{
|
|
return dynamic_cast<CIEC101ProcessItem *>(new CIEC101SecondaryBalancedProcessItem);
|
|
}
|
|
|
|
void Slave_setLinkLayerAddressOtherStation(CIEC101ProcessItem* pItem, int address)
|
|
{
|
|
pItem->address = address;
|
|
}
|
|
private:
|
|
BOOLEAN LinkLayerSecondaryBalanced_checkFCB(pIEC101_LinkLayerSecondaryBalanced self, BOOLEAN fcb)
|
|
{
|
|
if (fcb != self->expectedFcb)
|
|
{
|
|
//vLog(LOG_DEBUG, "ERROR: Frame count bit (FCB) invalid!\n");
|
|
/* TODO change link status */
|
|
return FALSE;
|
|
}
|
|
self->expectedFcb = !(self->expectedFcb);
|
|
return TRUE;
|
|
}
|
|
virtual void LinkLayerSecondaryBalanced_ReceivedMessage(BYTE fc, BOOLEAN isBroadcast, BOOLEAN fcb, BOOLEAN fcv, int address, BYTE* msg, int userDataStart, int userDataLength);
|
|
};
|
|
|
|
#endif // _ZJD_SUB_IEC101_BALANCED_PROCESS_H_
|