📄 lists.h
字号:
//-----------------------------------------------------------------------------
// $Id: lists.h,v 1.0.0 2004/01/13
//-----------------------------------------------------------------------------
//
// ProfiM - PROFIBUS MASTER DRIVER FOR WINDOWS NT/2000
//
// Author:
// Pavel Trnka, CTU FEE
// trnkap@seznam.cz
// With help and advices from:
// Ing. Petr Smolik, CTU FEE
// Ing. Pavel Pisa, CTU FEE
// Ing. Pavel Burget, CTU FEE
//
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
#ifndef listsH
#define listsH
//***************************************************************************
// Polozka v LASu
typedef enum
{
LAS_Passive,
LAS_Active
} TLASState;
//***************************************************************************
//
// LAS
//
typedef struct
{
TLASState LAS[128]; // pozor neobsahuje TS !
TLASState TestLAS[128]; // urcen pro test dvou shodnych obehu token cyklu ve stavu ListenToken
enum
{
Stop,
First_Cycle,
Second_Cycle,
Done
} NewState; //Aktualni stav pri vytvareni LASu
int LastActive;
// int TS; // pro vraceni TS pri zadostech NextStation a Prev.. pri prazdnem LASu - nepotrebujeme - radeji parametrem
int length; // pouzivana delka LASu i pres alokovanou fixni delku 256
} TLAS, *PTLAS;
void LAS_Init( PTLAS LAS, int size ); // puvodne konstruktor
void LAS_Close( PTLAS LAS ); // puvodne destructor
void LAS_Clear( PTLAS LAS ); // vymazani LASu (vsechny stanice = LAS_Passive)
int LAS_CreatingAdd( PTLAS LAS, int adr ); // vytvareni dvou odpovidajicich pruchodu predavani povereni - vrati 1 pro kompletni overeny LAS
void LAS_Update( PTLAS LAS, int adr ); // nastavi stanicci na ADR na LAS_Active a ostatni stanice k LastActive nastavi na LAS_Passive
int LAS_Complete( PTLAS LAS ); // vrati kompletnost LASu
int LAS_PreviousStation( PTLAS LAS, int TS );
int LAS_NextStation( PTLAS LAS, int TS );
void LAS_VymazStanice( PTLAS LAS, int TS, int PS ); // vymaze stanice od PS k TS
void LAS_NoStations( PTLAS LAS ); // zajisti validni prazdny LAS
//***************************************************************************
//***************************************************************************
//***************************************************************************
typedef enum
{
GAP_Slave,
GAP_MasterNotReady,
// GAP_MasterInLogicalRing, nemelo by byt potreba
GAP_Unused
} TGAPState;
//***************************************************************************
typedef struct
{
TGAPState StationState;
BOOLEAN FCB; // Frame Count Bit
BOOLEAN FCV; // Frame Count bit Valid
}TGAPLItem;
//***************************************************************************
typedef struct // !! po vytvoreni by se nemela zmenit TS -> pak gulas - neosetreno
{
TGAPLItem GAPL[128]; // struktura: jako LAS nikoliv TS,..,NS , pokud TS>NS tak TS,..,HSA,0,..,NS
// v public pouze pro testovaci ucely
int length;
int TS, NS; // i tady ??? - kdyztak jako property
int LastTested;
}TGAPL, *PTGAPL;
void GAPL_Init( PTGAPL GAPL, int _length, int _TS );
void GAPL_Close( PTGAPL GAPL );
void GAPL_UpdateNS( PTGAPL GAPL, int _NS );
void GAPL_Clear( PTGAPL GAPL );
void GAPL_RestartTest( PTGAPL GAPL );
int GAPL_NextToTest( PTGAPL GAPL );
void GAPL_Update( PTGAPL GAPL, int adr, TGAPState _StationState );
void GAPL_FCBToggle( PTGAPL GAPL, int adr );
//***************************************************************************
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -