DLL通信库文件说明
C# DLL库使用说明
1、DLL库名 AsySocket
2、服务类名Server
使用定义AsySocket.Server sever = null;
3、指令状态CommandState
CMD_STATE_OK ——0
CMD_STATE_FAIL ——1
CMD_STATE_SEND ——2
4、基本命令结构类CmdTag
CmdTag结构类是事件和发送数据最小单位。
结构内容:
public byte[] CMD_SRC_DATA; ——指令原始数据
public byte CmdCode; --指令码
public ushort CmdIndex; --指令序号(可不填)
public byte CmdState; --指令状态
public byte CmdType; --指令类型
public long DeviceID; --设备ID
public ushort ExMessage; --扩展信息(备用)
public byte[] Param; --指令数据内容
public object Socket;
public long Token; ——备用
5、事件
(1)onClose事件,socket关闭时触发的事件
(2) onCmdRecv事件,收到设备数据时触发的事件;
(3) OnRegist事件,收到设备注册时的事件,该事件需要SetOnLine方法响应该事件。
SetOnLine (long deviceID, int allow)参数deviceID表示设备ID,参数allow 允许登录与否(0表示禁止登录,1表示允许登录)
(4) onError事件,服务信息输出触发事件
6、启动服务Start方法
Start(int severType, int port) 参数severType表示服务类型(1表示TCP,0表示UDP)
启动服务示例:
AsySocket.Server sever = new AsySocket.Server();
sever.onClose += new AsySocket.onClose(sever_onClose);
sever.OnRegist += new AsySocket.onRegist(sever_OnRegist);
sever.onCmdRecv += new AsySocket.onCmdRecv(sever_onCmdRecv);
sever.onError += new AsySocket.onError(sever_onError);
sever.Start(Service_Type.TCP, 10001); //TCP服务监听10001端口
private void sever_onClose(AsySocket.CmdTag cmd)
{
Debug.print("设备" + cmd.DeviceID + "断开。");
}
private void sever_OnRegist(AsySocket.CmdTag cmd)
{
Debug.print("收到设备" + cmd.DeviceID + "注册登录信息。");
sever.SetOnLine(cmd.DeviceID, 1); //允许登录
}
private void sever_onCmdRecv(AsySocket.CmdTag cmd)
{
Debug.print(string.Format("收到设备{0}数据。", cmd.DeviceID));
}
private void sever_onError(string msg)
{
Debug.print(msg));
}
7、停止服务Stop方法 sever.Stop();
8、发送数据Send方法
Send(CmdTag cmd)
发送命令示例如下[读设备服务器信息]:
AsySocket.CmdTag cmd = new AsySocket.CmdTag();
cmd.CmdCode = 0xAA;
cmd.CmdType = 0xF0;
cmd.DeviceID = 123456;
cmd.CmdState = AsySocket.CommandState.CMD_STATE_SEND;
cmd.Param =new byte[2];
cmd.Param[0]=0x05;
cmd.Param[0]=0x00;
sever.Send(cmd);