sap.c

来自「profibus-dp主站源代码」· C语言 代码 · 共 109 行

C
109
字号
//-----------------------------------------------------------------------------
// $Id: sap.c,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
//
//-----------------------------------------------------------------------------
//
// Popis:
// ------
// Definuje struktury SAP (Service Access Point) pro Profibus
//
//
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------


//***************************************************************************

#include "NTDDK.H"

#include "SAP.h"

//***************************************************************************
//**  Inicializace SAPu na vsechny pristupove body neaktivni.
//**
//***************************************************************************

void SAP_Init( PTSAP SAP, int _size )
{
  int i;
  SAP->size = _size;
  for ( i = 0; i < SAP->size; i++ )
  {
    SAP->SAPItem[i].SDN = SERVICE_NOT_ACTIVATED;
    SAP->SAPItem[i].SRD = SERVICE_NOT_ACTIVATED;
    SAP->SAPItem[i].SDA = SERVICE_NOT_ACTIVATED;                

    SAP->SAPItem[i].Await = 0;
  }
}

//***************************************************************************

void SAP_Close( PTSAP SAP )
{
}


//***************************************************************************
//**  Aktivace konkretniho pristupoveho bodu
//**
//***************************************************************************

void SAP_Activate( PTSAP SAP,
                   int _SAP,
                   int _AccessSAP,
                   int _AccessStation,
                   UCHAR _SDN,
                   UCHAR _SRD )
{
  SAP->SAPItem[_SAP].AccessSAP = _AccessSAP;
  SAP->SAPItem[_SAP].AccessStation = _AccessStation;
  SAP->SAPItem[_SAP].SDN = _SDN;
  SAP->SAPItem[_SAP].SRD = _SRD;
}

//***************************************************************************

void SAP_Deactivate( PTSAP SAP, int _SAP )
{
  SAP->SAPItem[_SAP].SDN = SERVICE_NOT_ACTIVATED;
  SAP->SAPItem[_SAP].SRD = SERVICE_NOT_ACTIVATED;
  SAP->SAPItem[_SAP].SDA = SERVICE_NOT_ACTIVATED;
}


//***************************************************************************
//**  Priprava dat pro odesilani odpovedi SAPem
//**
//***************************************************************************

void SAP_Update( PTSAP SAP,
                 int _SAP,
                 service_class/*TSAPPriority*/ _Priority,
                 TSAPUpdate _Update,
                 PUCHAR _Data,
                 int _DataLength )
{
  int i;
  SAP->SAPItem[_SAP].Priority = _Priority;
  SAP->SAPItem[_SAP].Update = _Update;
  SAP->SAPItem[_SAP].DataLength = _DataLength;
  for ( i = 0; i < _DataLength; i++ )
    SAP->SAPItem[_SAP].Data[i] = _Data[i];       //lepe
}

//***************************************************************************


⌨️ 快捷键说明

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