山东领军红绿灯软件对接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

相关文章

java对接海康摄像头的完整步骤记录

《java对接海康摄像头的完整步骤记录》在Java中调用海康威视摄像头通常需要使用海康威视提供的SDK,下面这篇文章主要给大家介绍了关于java对接海康摄像头的完整步骤,文中通过代码介绍的非常详细,需... 目录一、开发环境准备二、实现Java调用设备接口(一)加载动态链接库(二)结构体、接口重定义1.类型

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

java对接第三方接口的三种实现方式

《java对接第三方接口的三种实现方式》:本文主要介绍java对接第三方接口的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录HttpURLConnection调用方法CloseableHttpClient调用RestTemplate调用总结在日常工作

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程

Java对接Dify API接口的完整流程

《Java对接DifyAPI接口的完整流程》Dify是一款AI应用开发平台,提供多种自然语言处理能力,通过调用Dify开放API,开发者可以快速集成智能对话、文本生成等功能到自己的Java应用中,本... 目录Java对接Dify API接口完整指南一、Dify API简介二、准备工作三、基础对接实现1.

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件

QT实现TCP客户端自动连接

《QT实现TCP客户端自动连接》这篇文章主要为大家详细介绍了QT中一个TCP客户端自动连接的测试模型,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录版本 1:没有取消按钮 测试效果测试代码版本 2:有取消按钮测试效果测试代码版本 1:没有取消按钮 测试效果缺陷:无法手动停

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

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