chinaxjfc 2023-05-03 16:29 采纳率: 100%
浏览 41
已结题

如何解决 asp.net 读取Com 串口数据 在客户机上完成

如何解决 asp.net 2019 读取Com 串口数据 在客户机上完成 在客户机不弹出这个提示

img


麻烦各位给看一下 谢谢

我的代码


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WeightMain(print).aspx.cs" Inherits="WeighManage.WeightMain_print_" %>

<!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>Test Print</title>

</head>

<script language="javascript" type="text/javascript">
    function init() {
        configPort();
        document.all.printport.PortOpen = true;
        //bindEvent();
    }
    function send(printmsg) {
        document.all.printport.Output = printmsg;
    }

    function pageEnd() {
        document.all.printport.PortOpen = false;
    }

    function ClosePort() {
        if (document.all.printport.PortOpen == true) {
            document.all.printport.PortOpen = false;
        }
        else {
            window.alert("串口已经关闭!");
        }
    }

    function OpenPort() {
        if (document.all.printport.PortOpen == false) {
            document.all.printport.PortOpen = true;
        }
        else {
            document.all.printport.PortOpen = true;
            window.alert("串口已经关闭!");
        }
    }

    //var bindEvent = function() {
    //        function document.all.printport::OnComm() {
    //            receives(); // 触发收发事件后的处理方法
    //        }
    //    }

    // 配置端口方法
    function configPort() {
        document.all.printport.CommPort = 1;//这相当于com1 如果是com2 等于2就可以了
        document.all.printport.settings = '4800,n,7,1'; // 9600:波特率 n:奇偶位 8:数据位 1:校验位
        document.all.printport.OutBufferCount = 0; //清空发送缓冲区
        document.all.printport.InBufferCount = 0; //滑空接收缓冲区
        document.all.printport.RThreshold = 14; //这个参数很重要,这个参数配置要符合硬件设备 该参数表示接收硬件设备多少位数据的时候触发onComm事件
    }


    //定时调用就行了,回调不行
    function receives() {
        printport.PortOpen = true;
        var inputvalue = document.all.printport.Input;
        //这里就是接受的数据
        //console.log(inputvalue)
        document.all.S1.value = inputvalue
    }
</script>

<script id="clientEventHandlersJS" language="javascript"> 

    function OnComm() {
        switch (document.all.printport.CommEvent) {
            case 1: { window.alert("Send OK!"); break; }  //发送事件
            case 2: { receives(); break; } //接收事件
            default: alert("Event Raised!" + document.all.printport.CommEvent);;
        }
    }

</script>

<script language="javascript" for="printport" event="OnComm"> 
    OnComm();
</script>

<body onload='init();' onunload='pageEnd();'>
    <%--    <form id="form1" runat="server">
        <div>
        </div>
    </form>--%>

    <form method="post" action="--WEBBOT-SELF--">
        <p>收到信息:<textarea rows="21" name="S1" cols="86"></textarea></p>
        <p>
            <input type="button" value="获取信息" name="B3" onclick='receives();' />
        </p>
        <p>发送内容:<textarea rows="1" name="S2" cols="86"></textarea></p>
        <p>
            <input type="button" value="发送内容" name="B1" onclick='send(document.all.S2.value);' />
        </p>
        <p>
            <input type="button" value="关闭串口" name="B2" onclick='ClosePort();' />
            <input type="button" value="打开串口" name="B2" onclick='OpenPort();' />
        </p>
        <p>
            <object id="printport" classid="clsid:648A5600-2C6E-101B-82B6-000000000014" style="display: none">
            </object>
        </p>
    </form>


</body>
</html>


  • 写回答

4条回答 默认 最新

  • 社区专家-Monster-XH 2023-05-03 16:53
    关注

    基于Monster 组和GPT的调写:

    • 该提示通常出现是因为浏览器安全策略限制了页面使用 ActiveX 控件的权限。要解决这个问题,可以尝试以下方法:
    • 在客户机的 Internet Explorer 浏览器中将网站添加到信任站点列表中。在 Internet 选项 > 安全 > 信任站点 中添加网站地址,并取消勾选“要求服务器验证(https:) 所有站点在此区域中”。
    • 更改客户机的 Internet Explorer 浏览器设置。在 Internet 选项 > 安全 > 自定义级别 中,启用“对未标记为可安全执行脚本的 ActiveX 控件初始化并执行脚本”和“在启用脚本 ActiveX 控件的运行时,未标记为可安全执行脚本的控件的自动升级”选项。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月11日
  • 已采纳回答 5月3日
  • 创建了问题 5月3日