iframelayer.cs
来自「zwave 无线通讯协议 PC controller 控制器源码」· CS 代码 · 共 176 行
CS
176 行
////////////////////////////////////////////////////////////////////////////////////////////////
//
// #######
// # ## #### ##### ##### ## ## #####
// ## ## ## ## ## ## ## ## ##
// ## # ###### ## ## #### ## ## ####
// ## ## ## ## ## ## ##### ##
// ####### #### ## ## ##### ## #####
// #####
// 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.3 $
// Last Changed: $Date: 2006/07/24 09:14:16 $
//
//////////////////////////////////////////////////////////////////////////////////////////////
#region Using directives
using System;
using System.Xml;
//using System.Runtime.InteropServices;
//using System.Security.Permissions;
#endregion
namespace Zensys.ZWave.Communication
{
/// <summary>
/// Summary description for ZWaveITransportLayer.
/// </summary>
public interface IFrameLayer
{
/// <summary>
///
/// </summary>
void Open(ITransportLayer transportLayer, String connectionString);
/// <summary>
///
/// </summary>
void Close();
/// <summary>
///
/// </summary>
bool Write(DataFrame frame);
/// <summary>
///
/// </summary>
void SetCallbackHandler(IFrameLayerAsyncCallback handler);
/// <summary>
///
/// </summary>
FrameStatistics GetStatistics();
/// <summary>
/// Enable tracing
/// </summary>
void EnableTracing(bool enable);
}
/// <summary>
///
/// </summary>
public interface IFrameLayerAsyncCallback
{
/// <summary>
///
/// </summary>
/// <param name="frame"></param>
void FrameReceived(DataFrame frame);
}
/// <summary>
///
/// </summary>
//[SerializableAttribute]
public class FrameLayerException : Exception
{
/// <summary>
///
/// </summary>
public FrameLayerException() { }
/// <summary>
///
/// </summary>
public FrameLayerException(string describe) : base(describe) { }
/// <summary>
///
/// </summary>
public FrameLayerException(string describe, Exception innerException)
: base(describe, innerException)
{
// Add any type-specific logic for inner exceptions.
}
}
/// <summary>
///
/// </summary>
public class FrameStatistics
{
/// <summary>
///
/// </summary>
public FrameStatistics()
{
}
/// <summary>
///
/// </summary>
/// <param name="stats"></param>
public FrameStatistics(FrameStatistics stats)
{
if (stats == null)
{
throw new ArgumentNullException("stats");
}
this.transmittedAcks = stats.transmittedAcks;
this.transmittedNaks = stats.transmittedNaks;
this.receivedAcks = stats.receivedAcks;
this.receivedNaks = stats.receivedNaks;
this.transmittedFrames = stats.transmittedFrames;
this.receivedFrames = stats.receivedFrames;
this.retransmittedFrames = stats.retransmittedFrames;
this.droppedFrames = stats.droppedFrames;
}
/// <summary>
///
/// </summary>
internal int transmittedAcks;
/// <summary>
///
/// </summary>
internal int transmittedNaks;
/// <summary>
///
/// </summary>
internal int receivedAcks;
/// <summary>
///
/// </summary>
internal int receivedNaks;
/// <summary>
///
/// </summary>
internal int transmittedFrames;
/// <summary>
///
/// </summary>
internal int receivedFrames;
/// <summary>
///
/// </summary>
internal int retransmittedFrames;
/// <summary>
///
/// </summary>
internal int droppedFrames;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?