Files
2025-08-26 08:37:44 +08:00

85 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
namespace XMX.FileTransmit
{
public enum TransmitMode
{
Receive,
Send
}
public delegate void PacketEventHandler(object sender, PacketEventArgs e);
interface IFileTramsmit:ITransmitUart
{
event EventHandler StartSend;
event EventHandler StartReceive;
event EventHandler SendNextPacket;
event EventHandler ReSendPacket;
event EventHandler AbortTransmit;
event EventHandler TransmitTimeOut;
event EventHandler EndOfTransmit;
event PacketEventHandler ReceivedPacket;
void SendPacket(PacketEventArgs packet);
void Start();
void Stop();
void Abort();
}
public class PacketEventArgs : EventArgs
{
private readonly int _PacketNo;
private readonly int _PacketLen;
private readonly byte[] _Packet;
public PacketEventArgs(int packetNo, byte[] packet)
: this(packetNo, packet, packet.Length)
{
}
public PacketEventArgs(int packetNo, byte[] packet, int packetLen)
{
_PacketNo = packetNo;
if (packet != null)
{
if (packet.Length <= packetLen)
{
_PacketLen = packetLen;
}
_Packet = new byte[_PacketLen];
Array.Copy(packet, 0, _Packet, 0, _PacketLen);
}
}
public int PacketNo
{
get { return _PacketNo; }
}
public int PacketLen
{
get { return _PacketLen; }
}
public byte[] Packet
{
get { return _Packet; }
}
}
}