SAMSerial 类 |
命名空间: HslCommunication.Profinet.IDCard
SAMSerial 类型公开以下成员。
名称 | 说明 | |
---|---|---|
![]() | BaudRate |
当前连接串口信息的波特率 (继承自 SerialBase。)Baud rate of current connection serial port information |
![]() | IsClearCacheBeforeRead |
是否在发送数据前清空缓冲数据,默认是false (继承自 SerialBase。)Whether to empty the buffer before sending data, the default is false |
![]() ![]() | LogNet |
组件的日志工具,支持日志记录,只要实例化后,当前网络的基本信息,就以DEBUG等级进行输出 (继承自 SerialBase。)The component's logging tool supports logging. As long as the instantiation of the basic network information, the output will be output at DEBUG |
![]() | PortName |
当前连接串口信息的端口号名称 (继承自 SerialBase。)The port name of the current connection serial port information |
![]() | ReceiveEmptyDataCount |
获取或设置连续接收空的数据次数,在数据接收完成时有效,每个单位消耗的时间为SleepTime,配合CheckReceiveDataComplete(MemoryStream)来更好的控制完整数据接收。 (继承自 SerialBase。)Get or set the number of consecutive empty data receptions, which is valid when data reception is completed. The time consumed by each unit is SleepTime, which is better with CheckReceiveDataComplete(MemoryStream) Control complete data reception. |
![]() | ReceiveTimeout |
接收数据的超时时间,默认5000ms (继承自 SerialBase。)Timeout for receiving data, default is 5000ms |
![]() | RtsEnable |
获取或设置一个值,该值指示在串行通信中是否启用请求发送 (RTS) 信号。 (继承自 SerialBase。)Gets or sets a value indicating whether the request sending (RTS) signal is enabled in serial communication. |
![]() | SleepTime |
连续串口缓冲数据检测的间隔时间,默认20ms,该值越小,通信速度越快,但是越不稳定。 (继承自 SerialBase。)Continuous serial port buffer data detection interval, the default 20ms, the smaller the value, the faster the communication, but the more unstable. |
名称 | 说明 | |
---|---|---|
![]() ![]() | BuildReadCommand |
根据SAM的实际的指令,来生成实际的指令信息
|
![]() ![]() | CheckADSCommandAndSum |
检查当前的指令是否是正确的
|
![]() ![]() | CheckADSCommandCompletion |
检查当前的接收数据信息是否一条完整的数据信息
|
![]() | CheckReceiveDataComplete |
检查当前从串口接收的数据是否是完整的,如果是完整的,则需要返回 True,串口数据接收立即完成,默认返回 False (继承自 SerialBase。)Check whether the data currently received from the serial port is complete. If it is complete, you need to return True. The serial port data reception is completed immediately, and the default returns False |
![]() | CheckSafeModuleStatus |
检测安全模块状态 Detecting Security Module Status |
![]() | ClearSerialCache |
清除串口缓冲区的数据,并返回该数据,如果缓冲区没有数据,返回的字节数组长度为0 (继承自 SerialBase。)The number sent clears the data in the serial port buffer and returns that data, or if there is no data in the buffer, the length of the byte array returned is 0 |
![]() | Close |
关闭当前的串口连接 (继承自 SerialBase。)Close the current serial connection |
![]() | Dispose |
释放当前的对象
(继承自 SerialBase。) |
![]() | Dispose(Boolean) |
释放当前的对象
(继承自 SerialBase。) |
![]() | Equals | (继承自 Object。) |
![]() ![]() | ExtractIdentityCard |
从数据中提取出真实的身份证信息
|
![]() ![]() | ExtractSafeModuleNumber |
提炼安全的模块数据信息
|
![]() ![]() | ExtraOnClose |
根据实际的协议选择是否重写本方法,有些协议在断开连接之前,需要发送一些报文来关闭当前的网络通道 (继承自 SerialBase。)Select whether to rewrite this method according to the actual protocol. Some protocols need to send some packets to close the current network channel before disconnecting. |
![]() | Finalize | (继承自 Object。) |
![]() ![]() | GetErrorDescription |
获取错误的文本信息
|
![]() | GetHashCode | (继承自 Object。) |
![]() ![]() | GetNationEnumerator |
枚举当前的所有的民族信息,共计五十六个民族
|
![]() ![]() | GetNationText |
根据民族的代号来获取到民族的文本描述信息
|
![]() | GetPipeSerial |
获取当前用于通信的管道信息 (继承自 SerialBase。)Get the current pipe information used for communication |
![]() | GetType | (继承自 Object。) |
![]() ![]() | InitializationOnOpen |
根据实际的协议选择是否重写本方法,有些协议在创建连接之后,需要进行一些初始化的信号握手,才能最终建立网络通道。 (继承自 SerialBase。)Whether to rewrite this method is based on the actual protocol. Some protocols require some initial signal handshake to establish a network channel after the connection is created. |
![]() | IsOpen |
获取一个值,指示串口是否处于打开状态 (继承自 SerialBase。)Gets a value indicating whether the serial port is open |
![]() | MemberwiseClone | (继承自 Object。) |
![]() | Open |
打开一个新的串行端口连接 (继承自 SerialBase。)Open a new serial port connection |
![]() | PackCommandWithHeader |
对当前的命令进行打包处理,通常是携带命令头内容,标记当前的命令的长度信息,需要进行重写,否则默认不打包 (继承自 SerialBase。)The current command is packaged, usually carrying the content of the command header, marking the length of the current command, and it needs to be rewritten, otherwise it is not packaged by default |
![]() ![]() | PackToSAMCommand |
将指令进行打包成可以发送的数据对象
|
![]() | ReadCard |
读取卡片,如果成功的话,就返回身份证的所有的信息 Read the card, if successful, return all the information of the ID cards |
![]() | ReadFromCoreServer(Byte) |
将原始的字节数据发送到串口,然后从串口接收一条数据。 (继承自 SerialBase。)The raw byte data is sent to the serial port, and then a piece of data is received from the serial port. |
![]() | ReadFromCoreServer(IEnumerableByte) |
将多个数据报文按顺序发到设备,并从设备接收返回的数据内容,然后拼接成一个Byte[]信息,需要重写UnpackResponseContent(Byte, Byte)方法才能返回正确的结果。 (继承自 SerialBase。)Send multiple data packets to the device in sequence, and receive the returned data content from the device, and then splicing them into a Byte[] message, you need to rewrite UnpackResponseContent(Byte, Byte) method to return the correct result. |
![]() | ReadFromCoreServer(Byte, Boolean, Boolean) |
将原始的字节数据发送到串口,然后从串口接收一条数据。 (继承自 SerialBase。)The raw byte data is sent to the serial port, and then a piece of data is received from the serial port. |
![]() | ReadFromCoreServer(SerialPort, Byte, Boolean, Boolean) |
将数据发送到当前的串口通道上去,并且从串口通道接收一串原始的字节报文,默认对方必须返回数据,也可以手动修改不返回数据信息。 (继承自 SerialBase。)Send data to the current serial channel, and receive a string of original byte messages from the serial channel. By default, the other party must return data, or you can manually modify it to not return data information. |
![]() | ReadFromCoreServerAsync(Byte) |
将原始的字节数据发送到串口,然后从串口接收一条数据。 (继承自 SerialBase。)The raw byte data is sent to the serial port, and then a piece of data is received from the serial port. |
![]() | ReadFromCoreServerAsync(IEnumerableByte) |
将多个数据报文按顺序发到设备,并从设备接收返回的数据内容,然后拼接成一个Byte[]信息,需要重写UnpackResponseContent(Byte, Byte)方法才能返回正确的结果。 (继承自 SerialBase。)Send multiple data packets to the device in sequence, and receive the returned data content from the device, and then splicing them into a Byte[] message, you need to rewrite UnpackResponseContent(Byte, Byte) method to return the correct result. |
![]() | ReadSafeModuleNumber |
读取身份证设备的安全模块号 Read the security module number of the ID device |
![]() | SearchCard |
寻找卡片,并返回是否成功 Find cards and return success |
![]() | SelectCard |
选择卡片,并返回是否成功 Select card and return success |
![]() | SerialPortInni(ActionSerialPort) |
根据自定义初始化方法进行初始化串口信息 (继承自 SerialBase。)Initialize the serial port information according to the custom initialization method |
![]() | SerialPortInni(String) |
初始化串口信息,9600波特率,8位数据位,1位停止位,无奇偶校验 (继承自 SerialBase。)Initial serial port information, 9600 baud rate, 8 data bits, 1 stop bit, no parity |
![]() | SerialPortInni(String, Int32) |
初始化串口信息,波特率,8位数据位,1位停止位,无奇偶校验 (继承自 SerialBase。)Initializes serial port information, baud rate, 8-bit data bit, 1-bit stop bit, no parity |
![]() | SerialPortInni(String, Int32, Int32, StopBits, Parity) |
初始化串口信息,波特率,数据位,停止位,奇偶校验需要全部自己来指定 (继承自 SerialBase。)Start serial port information, baud rate, data bit, stop bit, parity all need to be specified |
![]() | SetPipeSerial |
设置一个新的串口管道,一般来说不需要调用本方法,当多个串口设备共用一个COM口时才需要使用本方法进行设置共享的管道。 (继承自 SerialBase。)To set a new serial port pipe, generally speaking, you do not need to call this method. This method is only needed to set the shared pipe when multiple serial devices share the same COM port. |
![]() | SPReceived |
从串口接收一串字节数据信息,直到没有数据为止,如果参数awaitData为false, 第一轮接收没有数据则返回 (重写 SerialBaseSPReceived(SerialPort, Boolean).)Receives a string of bytes of data information from the serial port until there is no data, and returns if the parameter awaitData is false |
![]() | SPSend |
发送数据到串口去。 (继承自 SerialBase。)Send data to serial port. |
![]() | ToString | (重写 SerialBaseToString.) |
![]() | UnpackResponseContent |
根据对方返回的报文命令,对命令进行基本的拆包,例如各种Modbus协议拆包为统一的核心报文,还支持对报文的验证 (继承自 SerialBase。)According to the message command returned by the other party, the command is basically unpacked, for example, various Modbus protocols are unpacked into a unified core message, and the verification of the message is also supported |
名称 | 说明 | |
---|---|---|
![]() | AtLeastReceiveLength |
从串口中至少接收的字节长度信息
(继承自 SerialBase。) |
![]() | LogMsgFormatBinary |
设置日志记录报文是否二进制,如果为False,那就使用ASCII码 (继承自 SerialBase。)Set whether the log message is binary, if it is False, then use ASCII code |
![]() | pipeSerial |
串口交互的核心
(继承自 SerialBase。) |
名称 | 说明 | |
---|---|---|
![]() | ToJsonString |
获取当前对象的JSON格式表示的字符串。 (由 HslExtension 定义。)Gets the string represented by the JSON format of the current object. |
private SAMSerial sAMSerial = new SAMSerial( ); public void Open( ) { // 下面是初始化连接的代码,在读取身份证信息之前需要被调用一次 // The following is the code to initialize the connection. It needs to be called once before reading the ID information. try { sAMSerial.SerialPortInni( sp => { sp.PortName = "COM1"; sp.BaudRate = 115200; sp.DataBits = 0; sp.StopBits = System.IO.Ports.StopBits.None; sp.Parity = System.IO.Ports.Parity.None; } ); sAMSerial.Open( ); } catch (Exception ex) { Console.WriteLine( ex.Message ); } }
// 通常是放到后台进行循环扫描,此处举例开了一个线程的操作,实际上你在开发的时候需要注意GC回收垃圾的事 // Usually it is placed in the background for circular scanning. Here is an example of a thread operation. In fact, you need to pay attention to GC garbage collection when you develop public void StartRead( ) { new Thread( new ThreadStart( ThreadBackgroundReadCard ) ) { IsBackground = true }.Start( ); } private void ThreadBackgroundReadCard( ) { while (true) { Thread.Sleep( 100 ); // 首先进行寻卡,成功才进行下一步 // Find the card first, then proceed to the next step OperateResult search = sAMSerial.SearchCard( ); { if (!search.IsSuccess) { continue; } } Thread.Sleep( 100 ); // 寻卡成功后开始选卡,选卡成功才进行下一步 // Select card after successful card search, then proceed to the next step after successful card selection if (sAMSerial.SelectCard( ).IsSuccess) { OperateResult<IdentityCard> read = sAMSerial.ReadCard( ); if (read.IsSuccess) { // read.Content,详细的身份证信息,需要查看 IdentityCard 类型的定义,包含身份的名字, Console.WriteLine( read.Content.ToString( ) ); } else { Console.WriteLine( $"读卡失败:{read.Message}" ); } } } }