当前位置:编程学习 > C#/ASP.NET >>

如何在asp.net中操作串口

本人还是个学生
第一次做项目,目前需要实现在asp.net中向串口发送at指令
google了一天,得到的大多是在window form中的示例。
有一个alasunsmscon.ocx短信开发控件,有win vb.net和asp的示例程序
可就是没有在asp.net中实现的示例

希望那位前辈指点一下 --------------------编程问答-------------------- .net2.0的话有专门的串口操作类吧!
如果是1.1的话参考
http://blog.csdn.net/yuanxi/archive/2006/09/06/1185735.aspx --------------------编程问答-------------------- 不知道,关注一下 --------------------编程问答-------------------- 在2.0是有个
System.IO.Ports.SerialPort 
这个类的资料我也查了
可示例程序都是winform的 --------------------编程问答-------------------- 是不是asp.net里面不能直接对串口操作
需要通过组件
相asp里面可以通过
set objSMS=Server.CreateObject("alasun.alasunsms")
引用这个alasunsmscon.ocx

各位帮帮忙 --------------------编程问答-------------------- 做个组件应没问题的 --------------------编程问答-------------------- 假如你在服务器端发送,那么就自由了, .net 中所有类你都可以使用,包括System.IO.Ports.SerialPort,只要有权限

假如你准备直接在客户端,那么只有期待 ActiveX 了,

当然,客户端你还可以使用 .net, 但是,客户端得装 20+M 的 .net fx --------------------编程问答-------------------- 上面的朋友能详细一点吗
我是在服务器端发送at命令
但是希望直接在asp.net程序里面运行,不希望通过win form
--------------------编程问答-------------------- 请问 .net 版本 ...

1.x/2.0/3.0/3.5 ? --------------------编程问答-------------------- 实在不行就自己调用API函数自己写组件吧 --------------------编程问答-------------------- 2.0的 --------------------编程问答-------------------- .net 操作串口,偶没有任何经验,稍微 baidu 了下,资料很多

1.
对于 net 1.x 没有内置对 串口操作的 类库,需要调用其他的非托管 dll

当然,由于 DllImport 存在,引入 dll 是恨简单的


2.
此篇文章,也许对此比较有参考,也是 AT 命令,

自己动手打造企业级短信平台(上)
http://blog.csdn.net/devercn/archive/2004/09/21/111809.aspx

里面提供的相关资源链接很有价值


3.
.net 2.0+ 已封装、公开 System.IO.Ports 命名空间,包含用于控制串行端口的类。

主要类为 System.IO.Ports.SerialPort 
用法见
http://msdn2.microsoft.com/zh-cn/library/System.IO.Ports.SerialPort.aspx
--------------------编程问答-------------------- 浏览器是没有权限访问硬件的,所以用B/S的方式来实现可能很困难.你可以往浏览器插件这个方向研究,必须把你的操作封装成OCX控件,才有可能. --------------------编程问答-------------------- 在 .net 中,操作串口, 无论是 web 还是 winform ,都没有区别,因为不涉及 UI 本身,

WinForm 的 DEMO 中你只要抽取,串口操作,那么部分代码即可,

UI 交互部分当然换入 asp.net 即可,

之后,你会碰到的问题,可能是权限——运行 asp.net 进程的用户,可能没有权限读写串口,

此时,请 baidu/google -> 

asp.net 身份模拟


Good Luck! --------------------编程问答-------------------- 我不打算在客户端访问硬件
我有alasunsmscon.ocx这个控件,它提供了asp和vb.net form 的示例
但我想在asp.net中实现像它asp中的实现
下面是asp的示例
<%
'在ASP中使用本控件注意事项
'1、alasunsmscon.ocx这一文件的权限要设置正确,即设置“IUSR_机器名”这一用户有执行的权限,否则会报错“Server.CreateObject 访问错误”。
'   在设置完权限后,需重启IIS。
'2、如有必要可以在alasunsmscon.ocx所在的目录创建名为“alasunsmslog”的目录,设置“IUSR_机器名”用户对这一目录有可写仅限,用于记录发送日志。
'   此步为可选步骤
'以下程序在实测中验证通过
response.buffer=true
dim objSMS
dim lngRes,strNO,strCON,strMsgCenter
strNO=request.Form("txtNo")
strCON=request.Form("txtContent")
if strNo="" then
response.Write "<script>alert('请入接收号码');window.history.back();</script>"
response.End 
end if
set objSMS=Server.CreateObject("alasun.alasunsms")
'设置串口号
objSMS.CommPort=1
'打开设备
lngRes=objSMS.OpenComm
if lngRes=0 then
response.Write "打开设备成功<br>"
else
response.Write "打开设备失败<br>"
end if
response.Flush
'设置短信中心,只需在SIM卡第一次使用时设置,以后不用再设,此处仅作示例
strMsgCenter="+8613800755500"  '请改为当地的短信中心号码
lngRes=objSMS.SetMsgCenterNo(strMsgCenter)
if lngRes=0 then
response.Write "短信中心设置成功<br>"
else
response.Write "短信中心设置失败<br>"
end if
response.Flush 
'发送短信
lngRes=objSMS.SendMsg(strNO,strCON)
if lngRes=0 then
response.Write "短信发送成功<br>"
else
response.Write "短信发送失败<br>"
end if
response.Write "<a href='javascript:window.history.back()'>返回</a>"
response.Flush 
objSMS.CloseComm
set objSMS=nothing
%> --------------------编程问答-------------------- 谢谢Jinglecat的回答
可如果想用alasunsmscon.ocx,win form的DEMO哪是必须应用他的控件,在web form引用不了
win form中的控件 --------------------编程问答-------------------- 你想操作客户端串口?不行吧。 --------------------编程问答-------------------- 如过是操作客户端串口,必须通过ActiveX;操作服务器串口,SerialPort就可以实现 --------------------编程问答-------------------- 关注~ --------------------编程问答-------------------- 服务器端将该应用目录的运行者设置为本地系统,可以访问串口等设备
--------------------编程问答--------------------
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,