2025-03-28 09:49:56 +08:00

64 lines
3.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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>读取到的标签列表Key16字节+Item6字节+Num(2字节
/// Key为标签IDItem为菜品编号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"> 写入数据格式 Item6字节+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();
}
}