📄 sap.c
字号:
//-----------------------------------------------------------------------------
// $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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -