当前位置:首页 » 网页前端 » web控制页面串口
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

web控制页面串口

发布时间: 2022-06-18 18:55:20

㈠ JavaWeb 多线程 串口通信

主线程不停就行了,网页关闭或退出页面只关闭一个线程,别的线程继续跑

㈡ 求做一个web页面控制服务器串口,可用Mscomm控件做!满意会继续最佳。htm页面都能操作本地串口。

看了你的留言直接在这回吧,其实网页方面我也是个菜鸟。去年我做过一个类似的,当时也是自学了1个月的iis的配置,asp.net,vb串口操作等,大二假期比较闲。
做法:用DS18B20温度传感器连接51单片机,然后单片机通过串口与电脑通信,电脑成为服务器,手机连接网页,进行温度监控,开关单片机外接的继电器等等操作。
硬件端的代码对你没用,服务器端我的基本思路就是asp.net连接数据库,然后用vb实时扫描数据库,通过vb中的MScomm控件连接串口,vb的代码对你也没啥用,因为MScomm连接单片机的代码的“通信协议”我是写在单片机上的,不配套就没用了

这是网页的代码,不精简,高手莫笑...
主要功能就是连接数据库。。。里面没能直接通过asp.net控制串口,貌似也有C#直接控制的,你去CSDN看看吧,我试过是没问题的,就是操作不太方便(可能我太菜了)

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.sqlClient;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//温度
SqlConnection cnn1 = new SqlConnection(@"Data Source=YINGJHSHP541\SQLEXPRESS;Initial Catalog=test3;User ID=sa;Password=yingjh");
cnn1.Open();

//表
SqlCommand cmd1 = new SqlCommand();
cmd1.Connection = cnn1;
cmd1.CommandText = "select * from T";
SqlDataReader data1;
data1 = cmd1.ExecuteReader();
GridView1.DataSource = data1;
GridView1.DataBind();
cnn1.Close();
//图
cnn1.Open();
SqlDataAdapter Da = new SqlDataAdapter();
Da.SelectCommand = new SqlCommand("select 时间,[温度(℃)] from T", cnn1);
DataSet ds = new DataSet();
Da.Fill(ds);
DataView myView = new DataView(ds.Tables[0]);
Chart1.Series["Series1"].Points.DataBindXY(myView, "时间", myView, "温度(℃)");

cnn1.Close();
cnn1.Dispose();

//状态
SqlConnection cnn2 = new SqlConnection();
cnn2.ConnectionString = @"Data Source=YINGJHSHP541\SQLEXPRESS;Initial Catalog=test3;User ID=sa;Password=yingjh";
cnn2.Open();
SqlCommand cmd2 = new SqlCommand();
cmd2.Connection = cnn2;
cmd2.CommandText = "select * from ST";
SqlDataReader data2;
data2 = cmd2.ExecuteReader();
data2.Read();
string a = data2.GetString(0);
switch (a)
{
case "1":
Label2.Text = "打开";
break;
case "0":
Label2.Text = "预设";
break;
case "-1":
Label2.Text = "关闭";
break;
default:
break;
}
Label4.Text = data2.GetString(1) + "℃";
cnn2.Close();
cnn2.Dispose();
}
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection cnn = new SqlConnection(@"Data Source=YINGJHSHP541\SQLEXPRESS;Initial Catalog=test3;User ID=sa;Password=yingjh");
SqlCommand cmd = new SqlCommand();
cnn.Open();
cmd.Connection = cnn;
//设置开关,flag为开关控制权
switch (DropDownList1.Text)
{
case "1":
cmd.CommandText = "update ST set STATE='1'" + ",flag='1'";
break;
case "0":
cmd.CommandText = "update ST set STATE='0'" + ",STEMP='" + TextBox1.Text + "',flag='1'";
break;
case "-1":
cmd.CommandText = "update ST set STATE='-1'" + ",flag='1'";
break;
default:
cmd.CommandText = "update ST set STATE='0'" + ",STEMP='" + TextBox1.Text + "',flag='1'";
break;
}
cmd.ExecuteNonQuery();
cnn.Close();
cnn.Dispose();
//温度
SqlConnection cnn1 = new SqlConnection(@"Data Source=YINGJHSHP541\SQLEXPRESS;Initial Catalog=test3;User ID=sa;Password=yingjh");
cnn1.Open();

//表
SqlCommand cmd1 = new SqlCommand();
cmd1.Connection = cnn1;
cmd1.CommandText = "select * from T";
SqlDataReader data1;
data1 = cmd1.ExecuteReader();
GridView1.DataSource = data1;
GridView1.DataBind();
cnn1.Close();
//图
cnn1.Open();
SqlDataAdapter Da = new SqlDataAdapter();
Da.SelectCommand = new SqlCommand("select 时间,[温度(℃)] from T", cnn1);
DataSet ds = new DataSet();
Da.Fill(ds);
DataView myView = new DataView(ds.Tables[0]);
Chart1.Series["Series1"].Points.DataBindXY(myView, "时间", myView, "温度(℃)");

cnn1.Close();
cnn1.Dispose();

//状态
SqlConnection cnn2 = new SqlConnection();
cnn2.ConnectionString = @"Data Source=YINGJHSHP541\SQLEXPRESS;Initial Catalog=test3;User ID=sa;Password=yingjh";
cnn2.Open();
SqlCommand cmd2 = new SqlCommand();
cmd2.Connection = cnn2;
cmd2.CommandText = "select * from ST";
SqlDataReader data2;
data2 = cmd2.ExecuteReader();
data2.Read();
string a = data2.GetString(0);
switch (a)
{
case "1":
Label2.Text = "打开";
break;
case "0":
Label2.Text = "预设";
break;
case "-1":
Label2.Text = "关闭";
break;
default:
break;
}
Label4.Text = data2.GetString(1) + "℃";
cnn2.Close();
cnn2.Dispose();
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{

}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{

}
}

㈢ 在c#的web中怎样实现与串口通讯

使用使用serialport这个类,
可以在DataReceived事件中作处理。
也可以直接使用Read、和Write函数对串口进行操作。

㈣ 在java的web程序中怎么使用串口通讯

最近在做java串口通讯,主要是用个人电脑通过串口从RS485读取数据,并通过crc循环冗余校验,把接收正确的数据解析,插入数据库mysql,并用SSH技术把数据库数据以表格以及图表形式显示
思路:
1.为了从RS485读取数据,由于暂时没有硬件设备,系统是win7,故采用Virtual Serial Port Drive(VSPD)这块虚拟串口软件代替。并下载sscom32.exe模拟串口通信软件。

2. 要想实现串口通信,用Java实现串口通信(windows系统下),需要用到sun提供的串javacomm20-win32.zip。其中要用到三个文件,配置如下:
comm.jar放置到 JAVA_HOME/jre/lib/ext;
win32com.dll放置到 JAVA_HOME/bin;
javax.comm.properties 两个地方都要放
jre/lib(也就是在JAVA文件夹下的jre),JAVA_HOME/jre/lib下
这个配置在我电脑上测试成功,也许不需要这样麻烦。注意的是,如果你使用myeclipse,因为它自带jre,你需要在它所在的jre相应位置放dll以及properties文件。

是不是感觉这个很麻烦,还有windows的限制。后来我们下载rxtx这款开源包代替了刚才的comm。不仅windows下可以,linux下也可以。使用方法很简单,配置如下:

RXTXcomm.jar放到JAVA_HOME/jre/lib/ext
rxtxSerial.dll放到JAVA_HOME/bin
如果你使用myeclipse工具,你需要把rxtxSerial.dll放到它自带的jre里。

3.新建eclipse工程,添加comm.jar或者RXTXcomm.jar包。因为javacomm20-win32.zip包里有样例SimpleRead.java,可以通过这个例子测试串口是否正确

4.接收数据正确后,根据传送接收双方的协议,采用CRC循环校验,根据传输的一方的校验函数判定是否是正确传输

5.把正确结束的数据解析,查看自己指定的通讯规则,然后解析

6.插入数据库,jdbc插入

7.数据统计,定时统计每小时,每天,每月,每年的平均值,采用quartz服务来实现。

8.建立web工程,采用hibernate3,spring3,dwr技术把数据库数据动态显示,图表采用jfreechart,以及AJAX的运用

㈤ 在java的web程序中怎么使用串口通讯

方法如下:

  1. 新建eclipse工程,添加comm.jar或者RXTXcomm.jar包。因为javacomm20-win32.zip包里有样例SimpleRead.java,可以通过这个例子测试串口是否正确。

  2. 接收数据正确后,根据传送接收双方的协议,采用CRC循环校验,根据传输的一方的校验函数判定是否是正确传输。

  3. 把正确结束的数据解析,查看自己指定的通讯规则,然后解析。

  4. 插入数据库,jdbc插入。

  5. 数据统计,定时统计每小时,每天,每月,每年的平均值,采用quartz服务来实现。

  6. 建立web工程,采用hibernate3,spring3,dwr技术把数据库数据动态显示,图表采用jfreechart,以及AJAX的运用

㈥ 关于网页远程控制串口

可以用ACCESS存放数据,
也可以用XML,甚至文本文件存放临时数据.

㈦ 如何在web页面上获取客户端的串口数据

web页面上获取客户端的串口数据的方法:

可以写一个串口代理程序,读取本地串口,将获取到的数据存入数据库。web通过ajax+定时器获取数据库中的数据显示就好了。

如果要交互,可以搞一个让上面提到的串口程序开一个socket.将串口通信获取的数据,通过socket发出去,web页面可以用websocket。

下面一个通过flash操作ardiuno的demo.用的是类似于第二种交互的方法。只不过用的是ActionScript.原理是一样的。

串行接口是一种可以将接收来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接收的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,我们称为串行接口电路。

串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节的通信方式。

注意事项:

户端的系统数据如果能随便被web页面读取,那大家也不敢随便打开网页了,至于说用IE的ActiveX 控件,这个也没有前途,IE默认不开启,现在有IE的也没什么人,当然如果是用于特定客户的话可以了,反正你想干嘛就干嘛。



㈧ asp.net开发的web程序,怎么操作和控制客户端的串口。

关于 串口 有本 基础 的 书

Visual_Basic与_RS-232_串行通信控制

网络上有电子文档的

㈨ 如何在web页面上获取客户端的串口数据

这类本地操作,没有纯 web 解决方案
仅仅浏览器内页面脚本是无法做到的。
其核心是需要可跑在本地系统上的串口读取程序
不管 ActiveX、本地Node、或者本地其他应用程序都是如此
此外,还需要读取后可与浏览器页面交换数据的过程
所以,ActiveX (NAPAI)之类的浏览器 plugin 的确是比较直接的实现方式
而其他的方案,还需要本地启动服务(HTTP/WebSocket)来与页面进行通信,本地端口是否冲突又会是问题。

㈩ 在CGI程序中可以调用串口吗,CGI是c写的。想用个web界面控制一个设备,设备上有arm+uClinux和单片机

CGI通过串口去单片机很容易啊,就是fopen就解决了啊。串口就是个文件嘛。你上网查查linux如何控制串口就可以了,uclinux一样的。
单片机给CGI发命令比较麻烦,要用到AJAX技术。这个你GOOGLE下吧,至少要几百字才能解释清楚的概念。CGI实现简单的AJAX也不难,GOOGLE上都有例程的。简单讲思路就是WEB页面设计成让用户定时刷新部分页面,这样就定时调用CGI查询某数据的状态。此时CGI通过串口要求单片机(从机)返回数据。或者你也可以整一个后台程序接收串口中断,然后CGI通过进程间通讯异步获取。