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

📄 lists.h

📁 SPC3 SETUP PROGRAMS SP C3 SETUP PROGRAMS
💻 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 + -