isessionlayer.cs
来自「zwave 无线通讯协议 PC controller 控制器源码」· CS 代码 · 共 240 行
CS
240 行
////////////////////////////////////////////////////////////////////////////////////////////////
//
// #######
// # ## #### ##### ##### ## ## #####
// ## ## ## ## ## ## ## ## ##
// ## # ###### ## ## #### ## ## ####
// ## ## ## ## ## ## ##### ##
// ####### #### ## ## ##### ## #####
// #####
// Z-Wave, the wireless language.
//
// Copyright Zensys A/S, 2005
//
// All Rights Reserved
//
// Description:
//
// Author: Morten Damsgaard, Linkage A/S
//
// Last Changed By: $Author: jrm $
// Revision: $Revision: 1.5 $
// Last Changed: $Date: 2007/01/26 12:22:19 $
//
//////////////////////////////////////////////////////////////////////////////////////////////
#region Using directives
using System;
using System.Xml;
#endregion
namespace Zensys.ZWave.Communication
{
/// <summary>
/// Summary description for ZWaveITransportLayer.
/// </summary>
public interface ISessionLayer
{
/// <summary>
///
/// </summary>
bool IsReady{get;}
/// <summary>
///
/// </summary>
/// <param name="frameLayer"></param>
/// <param name="transportLayer"></param>
/// <param name="connectionString"></param>
void Open(IFrameLayer frameLayer, ITransportLayer transportLayer, String connectionString);
/// <summary>
///
/// </summary>
void Close();
/// <summary>
///
/// </summary>
/// <param name="handler"></param>
void SetCallbackHandler(ISessionLayerAsyncCallback handler);
/// <summary>
///
/// </summary>
/// <returns></returns>
SessionStatistics GetStatistics();
/// <summary>
///
/// </summary>
/// <param name="cmd"></param>
/// <param name="request"></param>
/// <returns></returns>
bool RequestWithNoResponse(DataFrame.CommandType cmd, DataPacket request);
/// <summary>
///
/// </summary>
/// <param name="cmd"></param>
/// <param name="request"></param>
/// <param name="response"></param>
/// <param name="sequenceCheck"></param>
/// <param name="timeout"></param>
/// <returns></returns>
TXStatus RequestWithResponse(DataFrame.CommandType cmd, DataPacket request,
out DataPacket response, bool sequenceCheck, int timeout);
/// <summary>
///
/// </summary>
/// <param name="cmd"></param>
/// <param name="request"></param>
/// <param name="response"></param>
/// <param name="sequenceCheck"></param>
/// <returns></returns>
TXStatus RequestWithResponse(DataFrame.CommandType cmd, DataPacket request,
out DataPacket response, bool sequenceCheck);
/// <summary>
///
/// </summary>
/// <param name="cmd"></param>
/// <param name="request"></param>
/// <param name="response"></param>
/// <returns></returns>
TXStatus RequestWithResponse(DataFrame.CommandType cmd, DataPacket request, out DataPacket response);
/// <summary>
///
/// </summary>
/// <param name="cmd"></param>
/// <param name="request"></param>
/// <param name="responses"></param>
/// <returns></returns>
TXStatus RequestWithMultipleResponses(DataFrame.CommandType cmd,
DataPacket request,
ref DataPacket[] responses);
/// <summary>
///
/// </summary>
/// <param name="cmd"></param>
/// <param name="request"></param>
/// <param name="responses"></param>
/// <param name="sequenceCheck"></param>
/// <returns></returns>
TXStatus RequestWithMultipleResponses(DataFrame.CommandType cmd,
DataPacket request,
ref DataPacket[] responses,
bool sequenceCheck);
/// <summary>
///
/// </summary>
/// <param name="cmd"></param>
/// <param name="request"></param>
/// <param name="responses"></param>
/// <param name="sequenceCheck"></param>
/// <param name="timeout"></param>
/// <returns></returns>
TXStatus RequestWithMultipleResponses(DataFrame.CommandType cmd,
DataPacket request,
ref DataPacket[] responses,
bool sequenceCheck,
int timeout);
/// <summary>
/// Requests a command which may give different numbers of callbacks.
/// Supply with Responses array that have room for worst case number of callbacks
/// </summary>
/// <param name="cmd">Zwave Cmd</param>
/// <param name="request">Parms for command</param>
/// <param name="responses">Max number of responses</param>
/// <param name="breakVal">Values to end one</param>
/// <param name="sequenceCheck">if true use sequence check</param>
/// <param name="timeout">Timeout in ms</param>
/// <returns></returns>
TXStatus RequestWithVariableResponses(DataFrame.CommandType cmd,
DataPacket request,
ref DataPacket[] responses,
byte[] breakVal,
bool sequenceCheck,
int timeout);
/// <summary>
/// Requests a command which may give different numbers of callbacks.
/// Supply with Responses array that have room for worst case number of callbacks
/// </summary>
/// <param name="cmd">Zwave Cmd</param>
/// <param name="request">Parms for command</param>
/// <param name="responses">Max number of responses</param>
/// <param name="breakVal">Values to end one</param>
/// <param name="sequenceCheck">if true use sequence check</param>
/// <param name="timeout">Timeout in ms</param>
/// <returns></returns>
TXStatus RequestWithVariableReturnsAndResponses(DataFrame.CommandType cmd,
DataPacket request,
ref DataPacket[] responses,
byte[] breakVal,
bool sequenceCheck,
int timeout);
}
/// <summary>
/// ZWaveISessionLayerAsyncCallback interface
/// </summary>
public interface ISessionLayerAsyncCallback
{
/// <summary>
///
/// </summary>
/// <param name="cmd"></param>
/// <param name="packet"></param>
void DataPacketReceived(DataFrame.CommandType cmd, DataPacket packet);
}
/// <summary>
/// ZWaveSessionStatistics class
/// </summary>
public class SessionStatistics
{
/// <summary>
///
/// </summary>
public SessionStatistics()
{
}
/// <summary>
///
/// </summary>
/// <param name="stats"></param>
public SessionStatistics(SessionStatistics stats)
{
if (stats == null)
{
throw new ArgumentNullException("stats");
}
this.transmittedPackets = stats.transmittedPackets;
this.receivedPackets = stats.receivedPackets;
this.duplicatePackets = stats.duplicatePackets;
this.asyncPackets = stats.asyncPackets;
this.receiveTimeouts = stats.receiveTimeouts;
}
/// <summary>
///
/// </summary>
internal int transmittedPackets;
/// <summary>
///
/// </summary>
internal int receivedPackets;
/// <summary>
///
/// </summary>
internal int duplicatePackets;
/// <summary>
///
/// </summary>
internal int asyncPackets;
/// <summary>
///
/// </summary>
internal int receiveTimeouts;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?