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 + -
显示快捷键?