64 lines
3.5 KiB
C#
64 lines
3.5 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Runtime.InteropServices;
|
||
using System.Text;
|
||
|
||
namespace RFIDServicePlate
|
||
{
|
||
public class RFID
|
||
{
|
||
/// <summary>
|
||
/// 连接多标签读写器设备
|
||
/// </summary>
|
||
/// <param name="optype">多标签读写器连接类型,0为网口,1为USB口,2为串口,默认值 0;</param>
|
||
/// <param name="ip">多标签读写器IP地址,连接类型不为0时会被忽略,默认值“192.168.0.222”</param>
|
||
/// <param name="port">多标签读写器端口,连接类型不为0时会被忽略,默认值 9909</param>
|
||
/// <param name="com">多标签读写器串口号,连接类型不为2时会被忽略</param>
|
||
/// <param name="rate">多标签读写器串口波特率,连接类型不为2时会被忽略,默认值 38400</param>
|
||
/// <param name="opframe">多标签读写器串口帧结构,连接类型不为2时会被忽略,默认值 8E1</param>
|
||
/// <returns>0:成功;其他:失败</returns>
|
||
[DllImport("ReadRfid.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
|
||
public static extern int InitRFIDConn(int optype, string ip, string port, string com, string rate, string opframe);
|
||
|
||
/// <summary>
|
||
/// 初始化多标签读写器标签读写参数
|
||
/// </summary>
|
||
/// <param name="secno">标签扇区号,默认值0</param>
|
||
/// <param name="blkno">标签数据块号,默认值2</param>
|
||
/// <param name="BlkLen">数据内容长度,默认值3</param>
|
||
/// <param name="verifylen">标签验证长度,默认值4</param>
|
||
/// <param name="verifybklno">标签验证块号默认值1</param>
|
||
/// <param name="ifencrypt">标签是否加密 默认值true</param>
|
||
/// <returns>0:成功;其他:失败</returns>
|
||
[DllImport("ReadRfid.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
|
||
public static extern int InitRFIDTagConfig(int secno, int blkno, int BlkLen, int verifylen, int verifybklno, bool ifencrypt);
|
||
|
||
/// <summary>
|
||
/// 读取多标签数据
|
||
/// </summary>
|
||
/// <returns>读取到的标签列表,Key(16字节)+Item(6字节)+Num(2字节
|
||
/// Key为标签ID,Item为菜品编号,Num 为菜品数量。
|
||
/// Num= 00时,代表拼盘的菜品为半份,读到多个标签时,标签信息之间用 @符号分隔</returns>
|
||
[DllImport("ReadRfid.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
|
||
public static extern string TryReadRFTag();
|
||
|
||
/// <summary>
|
||
/// 写入多标签数据
|
||
/// Item为菜品编号,Num 为菜品数量。
|
||
/// Item不足6位时,前边补0至六位;Num= 00时,代表拼盘的菜品为半份。Num范围00-99。
|
||
/// </summary>
|
||
/// <param name="Dishstr"> 写入数据格式 Item(6字节)+Num(2字节)</param>
|
||
/// <returns>写卡结果</returns>
|
||
[DllImport("ReadRfid.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
|
||
public static extern string TryWriteRFTag(string Dishstr);
|
||
|
||
/// <summary>
|
||
/// 释放非托管资源 ,关闭多标签连接
|
||
/// </summary>
|
||
/// <returns>0:释放成功;其它:释放失败</returns>
|
||
[DllImport("ReadRfid.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
|
||
public static extern int Dis_pose();
|
||
}
|
||
}
|