当前位置: 首页 > news >正文

C# .aspx网页获取RFID读卡器HTTP协议提交的访问文件Request获得卡号、机号,Response回应驱动读卡器显示响声

 

本示例使用的设备:RFID网络WIFI无线TCP/UDP/HTTP可编程二次开发读卡器POE供电语音-淘宝网 (taobao.com)

服务端代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Web.Services;
using Newtonsoft.Json;public partial class HttpReader : System.Web.UI.Page
{public string RepStr = "";protected void Page_Load(object sender, EventArgs e){//Request方式:直接以对象索引的方式获取参数值,不受POST或GET方式影响。//Request.QueryString方式:在客户端使用GET方式进行提交时可以使用此方式获取。高效//Request.Form方式:在客户端使用POST方式进行提交时可以使用此方式进行获取。高效//Request.Params方式:该方式属于多种获取数据的一个集合,包括Cookie,此方式同样不受POST和GET方式影string info = "";string jihao = "";string cardtype = "";string card = "";string Data = "";string dn = "";string Status = "";Int16 cardtype16 = 0;int cardtypecode = 0;int pushortake = 0;string dispstr = "";string ChineseVoice = "[v8]";    //[v8]表示本次播报语音音量,取值范围v1 到 v16try             {   //GET、POST提交方式下解析获取提交的各项参数if (Request.Params["info"] != null) { info = Request.Params["info"]; }             //信息序号if (Request.Params["jihao"] != null) { jihao = Request.Params["jihao"]; }          //设备机号(可自编)if (Request.Params["cardtype"] != null){cardtype = Request.Params["cardtype"];}    //卡类型,卡状态if (Request.Params["card"] != null) { card = Request.Params["card"]; }             //卡序列号if (Request.Params["data"] != null) { Data = Request.Params["data"]; }             //扇区内容if (Request.Params["dn"] != null) { dn = Request.Params["dn"]; }                   //设备硬件序列号,出厂时已固化,全球唯一if (Request.Params["status"] != null) { Status = Request.Params["status"]; }       //读卡状态,如密码认证失败为12if (info != "" && jihao != "" && cardtype != "" && card != ""){                cardtype16 = Convert.ToInt16(cardtype, 16);pushortake = cardtype16 / 128;       //pushortake=0 表示读卡,>0表示卡离开感应区cardtypecode = cardtype16 % 16;      // cardtypecode=1 ID卡,2 HID卡,3 T5557卡,4 EM4305卡,5 IC卡,6 二代身份证,7 是15693卡,IClass"                }else    //如未获取到有效参数,使用JSON方式解析获取提交的参数{StreamReader sr = new StreamReader(Request.GetBufferlessInputStream());string response = sr.ReadToEnd();RootObject rb = JsonConvert.DeserializeObject<RootObject>(response);info = rb.info;            //接收到的数据包号,需回应该包号jihao = rb.jihao;          //设备机号(可自编)cardtype = rb.cardtype;    //卡类型,卡状态card = rb.card;            //接收到的原始16进制卡号,可根据需要自行转换成其他卡号Data = rb.data;            //扇区内容dn = rb.dn;                //设备硬件序列号,出厂时已固化,全球唯一Status = rb.status;        //读卡状态,如密码认证失败为12if (info != "" && jihao != "" && cardtype != "" && card != ""){cardtype16 = Convert.ToInt16(cardtype, 16);pushortake = cardtype16 / 128;       //pushortake=0 表示读卡,>0表示卡离开感应区cardtypecode = cardtype16 % 16;      // cardtypecode=1 ID卡,2 HID卡,3 T5557卡,4 EM4305卡,5 IC卡,6 二代身份证,7 是15693卡,IClass"         }}if (info != ""  && card != "")    //通过解析获取到了有效的参数,回应驱动读卡器显示文字、蜂鸣响声或播报语音{dispstr = "{" + getChinesecode("卡号") + ":}" + (card + "      ").Substring(0, 12) + DateTime.Now.ToString("yy-MM-dd HH:mm:ss"); //显示信息,注意中文汉字一定要转换为设备能显示的编码,其它字母数字符号不需要转换,{}内的信息反白显示if (pushortake > 0){ChineseVoice = ChineseVoice + getChinesecode("卡号") + "[n1]" + card + getChinesecode("离开感应区!");     //TTS语音,注意中文汉字一定要转换为设备能识别的编码,[n1]表示数字播报方式,其它字母数字符号不需要转换              }else{ChineseVoice = ChineseVoice + getChinesecode("读取卡号") + "[n1]" + card;}RepStr = "Response=1";                    //Response=1 固定前缀,我们的设备以此来检索返回信息,表示 驱动设备显示和响声RepStr = RepStr + "," + info;             //提交的信息序号,一定要对应RepStr = RepStr + "," + dispstr;          //读卡器上显示文字RepStr = RepStr + ",20";                  //显示时长20秒RepStr = RepStr + ",2";                   //蜂鸣器发声种类,取值范围0-12RepStr = RepStr + "," + ChineseVoice;     //播报的TTS语音Response.Write(RepStr);    //将回应信息传送到读卡器Response.End();}}catch { }}public static string getChinesecode(string inputip)   //获取中文编码,显示汉字、TTS中文语音都要转换编码{byte[] Chinesecodearry = System.Text.Encoding.GetEncoding(936).GetBytes(inputip);int codelen = (byte)Chinesecodearry.Length;string hexcode = "";for (int i = 0; i < codelen; i++){if (i % 2 == 0) { hexcode = hexcode + "\\x"; }hexcode = hexcode + Chinesecodearry[i].ToString("X2");}return hexcode;}public class RootObject  //json类{public string info { get; set; }public string jihao { get; set; }public string cardtype { get; set; }public string card { get; set; }public string data { get; set; }public string dn { get; set; }public string status { get; set; }}}
前端脚本 :
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="HttpReader.aspx.cs" Inherits="HttpReader" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title>Http读卡器Demo</title>
</head><body><form id="form1" runat="server"><div style="height: 96px"></div></form>
</body>
</html>

相关文章:

C# .aspx网页获取RFID读卡器HTTP协议提交的访问文件Request获得卡号、机号,Response回应驱动读卡器显示响声

本示例使用的设备&#xff1a;RFID网络WIFI无线TCP/UDP/HTTP可编程二次开发读卡器POE供电语音-淘宝网 (taobao.com) 服务端代码&#xff1a; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.…...

Kali Linux 2023.3 发布

Offective Security 发布了 Kali Linux 2023.3&#xff0c;这是其渗透测试和数字取证平台的最新版本。 Kali Linux 2023.3 中的新工具 除了对当前工具的更新之外&#xff0c;新版本的 Kali 通常还会引入新的工具。 这次&#xff0c;他们是&#xff1a; Calico – 云原生网络…...

如何用Python实现从pdf文件精准抓取数据生成数据库!

要从PDF文件中提取数据并生成数据库&#xff0c;你可以使用Python中的一些库和工具来实现。 1、安装必要的库&#xff1a;确保已安装所需的库。除了之前提到的PyPDF2、pdfminer.six和pdftotext之外&#xff0c;你可能还需要其他的库来处理提取的数据和数据库操作。例如&#x…...

科技资讯|苹果Apple Watch新专利,可根据服装、表带更换表盘颜色

根据美国商标和专利局&#xff08;USPTO&#xff09;公示的清单&#xff0c;苹果公司近日获得了一项 Apple Watch 相关的技术专利&#xff0c;最大的亮点在于配备颜色采样传感器&#xff0c;可以根据表带、服装自动变幻变盘颜色和主题。 Apple Watch 正面配备颜色采样传感器&am…...

猜数游戏-Rust版

cargo new guessing_game 创建项目 输入任意内容&#xff0c;并打印出来 main.rs: use std::io; // 像String这些类型都在预先导入的prelude里&#xff0c;如果要使用的不在prelude里&#xff0c;则需要显式导入fn main() { println!("猜数"); println!("…...

从零起步:学习数据结构的完整路径

文章目录 1. 基础概念和前置知识2. 线性数据结构3. 栈和队列4. 树结构5. 图结构6. 散列表和哈希表7. 高级数据结构8. 复杂性分析和算法设计9. 实践和项目10. 继续学习和深入11. 学习资源12. 练习和实践 &#x1f389;欢迎来到数据结构学习专栏~从零起步&#xff1a;学习数据结构…...

如何在浏览器中启用 WebGL 以使用 HTML5 3D 查看器

描述 WebCenter 中的 HTML5 3D Collada Viewer&#xff08;自 14.1 以来新增&#xff09;要求在浏览器中启用 WebGL。较旧的浏览器可能不支持此功能&#xff0c;或者要求用户首先显式启用此功能。本页介绍如何为所有主要浏览器启用此功能。WebGL 3D 查看器 本文是以下超级用户…...

【计算机协议】第一章——HTTP协议详解

前言 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;即超文本传输协议&#xff0c;是一种用于传输超媒体文档&#xff08;例如HTML&#xff09;的应用层协议。HTTP协议采用C/S&#xff08;客户端/服务器&#xff09;模式&#xff0c;客户端发起请求&#xff0c;服务…...

【FAQ】安防监控视频汇聚平台EasyCVR接入GB国标设备,无法显示通道信息的排查方法

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…...

Matlab 生成一定信噪比的信号

文章目录 【 1. 信噪比 】【 2. 功率归一化 】2.1 实信号实噪声2.2 实信号复噪声 【 3. 能量归一化 】3.1 实信号实噪声3.2 实信号复噪声 【 4. 小结 】 【 1. 信噪比 】 信噪比公式 1 &#xff1a; S N R 10 ∗ l o g 10 P s P n 信噪比公式1&#xff1a;SNR10*log_{10}\frac…...

[国产MCU]-W801开发实例-定时器

定时器 文章目录 定时器1、定时器介绍2、定时器驱动API3、定时器使用示例本文将详细介绍如何使用W801的定时器模块。 1、定时器介绍 W801的定时器包含一个32-bit自动加载的计数器,该计数器由系统时钟经过分频后驱动。 W801有 6路完全独立定时器。实现了精确的定时时间以及中断…...

基于 CentOS 7 构建 LVS-DR 群集,配置nginx负载均衡。

基于 CentOS 7 构建 LVS-DR 群集。 关闭防火墙 [rootlocalhost ~]# systemctl stop firewalld 安装ifconfig yum install net-tools.x86_64 -y 准备四台虚拟机 IP 用途 19.168.244.144 客户端 192.168.244.145 lvs 192.168.244.148 RS 192.168.244.149 RS 在DS上 …...

大数据——spark一文全知道

1、spark概述 spark是专为大规模数据处理而设计的快速通用计算引擎&#xff0c;与Hadoop的MapReduce功能类似&#xff0c;但它是基于内存的分布式计算框架&#xff0c;存储还是采用HDFS。 MapReduce和Spark的区别 MapReduce的MapReduce之间需要通过磁盘进行数据传递&#xf…...

Linux命令200例:telnet用于远程登录的网络协议(常用)

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌。CSDN专家博主&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &…...

使用 eBPF 在云中实现网络可观测性

可观测性是一种了解和解释应用当前状态的能力&#xff0c;也是一种知道何时出现问题的方法。随着在 Kubernetes 和 OpenShift 上以微服务形式进行云部署的应用程序越来越多&#xff0c;可观察性受到了广泛关注。许多应用程序都有严格的承诺&#xff0c;比如在停机时间、延迟和吞…...

linux安装部署gitlab全教程,包含配置中文

linux安装部署gitlab全教程&#xff0c;包含配置中文 大家好&#xff0c;我是酷酷的韩~ 1.前期准备 安装包下载地址 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ 我这里选择的这个gitlab-ce-15.7.3-ce.0.el7.x86_64.rpm 还有一些相关依赖包(地址等审核过我放到…...

软考高级系统架构设计师系列论文八十:论企业信息化战略规划技术

软考高级系统架构设计师系列论文八十:论企业信息化战略规划技术 一、企业信息化相关知识点二、摘要三、正文四、总结一、企业信息化相关知识点 软考高级系统架构设计师:企业信息化战略与实施...

使用ChatGPT构建一个AIML聊天机器人是什么体验

​ 使用ChatGPT构建一个AIML聊天机器人是什么体验&#xff0c;使用ChatGPT将C#代码转换为Swift代码以实现Swift版的Aiml聊天机器人&#xff0c;AIML&#xff08;全名为Artificial Intelligence Markup Language&#xff09;是一种基于XML模式匹配的人工智能标记语言&#xff0c…...

[JavaWeb]【九】web后端开发-SpringBootWeb案例(菜单)

目录 一、准备工作 1.1 需求 1.2 环境搭建 1.2.1 准备数据库&表 1.2.2 创建springboot工程 1.2.3 配置application.properties & 准备对应实体类 1.2.3.1 application.properties 1.2.3.2 实体类 1.2.3.2.1 Emp类 1.2.3.2.2 Dept类 1.2.4 准备对应的Mapper、…...

vue 主组件把日期选择器给子组件props传obj值, 与子组件监听 watch对象或对象属性

1 主组件 1.1 :passObj 这种 非v-model ; change"DateChange"触发事件 <template> <div class"date-picker-panel"><el-date-picker v-model"value2" type"datetimerange" :picker-options"pickerOptions"…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...