山东领军红绿灯软件对接tcp

2024-02-22 16:50

本文主要是介绍山东领军红绿灯软件对接tcp,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

此次测试的设备属于网口设备

在这里插入图片描述
1.下载文件,并根据自己电脑位数安装程序。
2.这是打开页面:
3.每个红绿灯都需要对应某台工控机

在这里插入图片描述这块需要设定目标的ip,就是你自己这个音响被哪台工控机调用,默认获取本地ip
在这里插入图片描述注意:
工作模式

3.点击设备管理查看设备是否上线。
在这里插入图片描述

8.基本设置完成,这时候可以根据接口去控制红绿灯了。 
9.代码
```c#
using GodSharp;
using System;
using System.Collections.Generic;
using System.IO.Ports;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ZK.Common;
using ZK.InterfaceServer;namespace ZK.HardWareBLL
{/// <summary>/// 山东领军 红绿交通灯/// </summary>public class TrafficLightBLL : BaseBLL{private readonly GodSerialPort _serialPort;private bool _isOpened;public int lightStatus = 0;public bool IsInit = false;public TrafficLightBLL(){}public TrafficLightBLL(Models.TerminalM terminalM){try{this.IsInit = true;this.terminal = terminalM;}catch (Exception ex){// WebApiServer.AddHardWareLog(terminalM.name, ex.Message, "网络连接失败");Common.Log4.LogManage.WriteErr("红绿灯初始化 " + ex.ToString() + " 红绿灯信息 串口号:" + terminalM.com);}}public void RedLight0(){Task.Factory.StartNew(() => {try{lightStatus = 1;///创建客户端var client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);///IP地址IPAddress ip = IPAddress.Parse(this.terminal.ip);///端口号IPEndPoint endPoint = new IPEndPoint(ip, (int)this.terminal.port);///建立与服务器的远程连接client.Connect(endPoint);///线程问题//Thread thread = new Thread(ReciveMsg);//thread.IsBackground = true;//thread.Start(client);//将字符串指令转换为byte数组// byte[] buf = System.Text.Encoding.Default.GetBytes("AT+STACH" + num + "=1,1\r\n");//发送AT指令client.Send(new byte[]{0x77,0x75,0x30,0x00,0x0C,0x04,0x0C,0x0C,0x0D,0x0A});byte[] recbuf = new byte[1024];//真正使用时,接收缓冲区需要适当的调整//等待硬件响应命令,接收到的数据为byte数组//会等待到有数据返回为止int recLen = client.Receive(recbuf);client.Close();//将byte数组转为字符串string str = System.Text.Encoding.Default.GetString(recbuf);}catch (Exception ex){Common.Log4.LogManage.WriteErr(ex.ToString());}}).Wait(3000);}public void GreenLight0(){Task.Factory.StartNew(() => {try{lightStatus = 2;///创建客户端var client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);///IP地址IPAddress ip = IPAddress.Parse(this.terminal.ip);///端口号IPEndPoint endPoint = new IPEndPoint(ip, (int)this.terminal.port);///建立与服务器的远程连接client.Connect(endPoint);///线程问题//Thread thread = new Thread(ReciveMsg);//thread.IsBackground = true;//thread.Start(client);//将字符串指令转换为byte数组// byte[] buf = System.Text.Encoding.Default.GetBytes("AT+STACH" + num + "=1,1\r\n");//发送AT指令client.Send(new byte[]{0x77,0x75,0x30,0x00,0x04,0x0C,0x0C,0x0C,0x0D,0x0A});byte[] recbuf = new byte[1024];//真正使用时,接收缓冲区需要适当的调整//等待硬件响应命令,接收到的数据为byte数组//会等待到有数据返回为止int recLen = client.Receive(recbuf);client.Close();}catch (Exception ex){Common.Log4.LogManage.WriteErr(ex.ToString());}}).Wait(3000);}public void LightOff(){try{_serialPort.Write(new byte[]{0x77,0x75,0x30,0x00,0x00,0x00,0x00,0x00,0x0D,0x0A});}catch (Exception ex){Common.Log4.LogManage.WriteErr("红绿灯灭灯" + ex.ToString());Common.DelegateHelper.InfoMessageEvent?.Invoke("红绿灯灭灯出错");}}public void Open(){_isOpened = _serialPort.Open();ReopenIfClosed();}public void Close(){_isOpened = !_serialPort.Close();}private void ReopenIfClosed(){if (_isOpened){//await Task.Delay(1000);//await Task.Run(() =>//{//    if (!_serialPort.IsOpen)//    {//        _serialPort.Close();//        _serialPort.Open();//    }//    ReopenIfClosed();//});}else{_serialPort.Close();}}public override bool GreenLight(){GreenLight0();return true;}public override bool RedLight(){RedLight0();return true;}}
}```

这篇关于山东领军红绿灯软件对接tcp的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/735891

相关文章

软件设计师备考——计算机系统

学习内容源自「软件设计师」 上午题 #1 计算机系统_哔哩哔哩_bilibili 目录 1.1.1 计算机系统硬件基本组成 1.1.2 中央处理单元 1.CPU 的功能 1)运算器 2)控制器 RISC && CISC 流水线控制 存储器  Cache 中断 输入输出IO控制方式 程序查询方式 中断驱动方式 直接存储器方式(DMA)  ​编辑 总线 ​编辑

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

HomeBank:开源免费的个人财务管理软件

在个人财务管理领域,找到一个既免费又开源的解决方案并非易事。HomeBank&nbsp;正是这样一个项目,它不仅提供了强大的功能,还拥有一个活跃的社区,不断推动其发展和完善。 开源免费:HomeBank 是一个完全开源的项目,用户可以自由地使用、修改和分发。用户友好的界面:提供直观的图形用户界面,使得非技术用户也能轻松上手。数据导入支持:支持从 Quicken、Microsoft Money

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

如何更优雅地对接第三方API

如何更优雅地对接第三方API 本文所有示例完整代码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/third 我们在日常开发过程中,有不少场景会对接第三方的API,例如第三方账号登录,第三方服务等等。第三方服务会提供API或者SDK,我依稀记得早些年Maven还没那么广泛使用,通常要对接第三方

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

PDF 软件如何帮助您编辑、转换和保护文件。

如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案,还是尝试组织和编辑主文档,PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时,请考虑这些因素。 1. 确定您的 PDF 文档软件需求。 不同的 PDF 文档软件程序可以具有不同的功能,因此在决定哪个是最适合您的 PDF 软件之前,请花点时间评估您的

图解TCP三次握手|深度解析|为什么是三次

写在前面 这篇文章我们来讲解析 TCP三次握手。 TCP 报文段 传输控制块TCB:存储了每一个连接中的一些重要信息。比如TCP连接表,指向发送和接收缓冲的指针,指向重传队列的指针,当前的发送和接收序列等等。 我们再来看一下TCP报文段的组成结构 TCP 三次握手 过程 假设有一台客户端,B有一台服务器。最初两端的TCP进程都是处于CLOSED关闭状态,客户端A打开链接,服务器端

梳理2024年,螺丝钉们爱用的3款剪辑软件

这年头,视频到处都是,就跟天上的星星一样数不清。不管你是公司里的新面孔,还是职场上的老狐狸,学会怎么剪视频,就好比找到了赢的秘诀。不管是给上司汇报工作,展示你的产品,还是自己搞点小视频记录生活,只要是剪辑得漂亮,肯定能一下子吸引大家的目光,让人记得你。咱们今天就来侃侃现在超火的三款视频剪辑工具,尤其是PR剪辑,你肯定听说过,这货在剪辑界可是大名鼎鼎,用它剪视频,既专业又麻利。 NO1. 福昕轻松