C#网络类智能开关控制板实例

网络类智能开关控制板采用 TCP/IP 协议与控制主机(PC 机)进行通讯,运
行稳定可靠,传输距离远,尤其适合不方便布线的场所。每块开关板分配一个唯
一的 IP 地址,通过 IP 地址进行控制数据的传输区分;每个开关触点容量为
220V/10A,一般情况下推荐使用到 6A 左右,太大的电流请使用我公司的 30A 控
制卡。
网络类普通型号(有线、无线和混合网络)可以直接连路由器,手机和电脑
连接路由器后均可以控制,但是异地远程需要路由器所在网络有外网 IP,通过
花生壳+端口映射即可实现异地远程。云转发型号直接支持异地远程,插上网线
手机和电脑软件中输入设备序列号即可异地远程进行开关控制

下面以两路的控制板举例:硬件图片

设置界面:

demo代码:

using System;
using System.Net;
using System.Net.Sockets;using System.Windows.Forms;namespace 远程智能开关控制板
{public partial class Form1 : Form{public Form1()
{InitializeComponent();}private void Form1_Load(object sender, EventArgs e)
{radioButton1.Checked = true;textBox1.Text = "192.168.1.80";textBox2.Text = "3000";}private void SendData(IPAddress remoteIP, int Port,byte[] bits)
{//实例化socket               Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);IPEndPoint ipep = new IPEndPoint(remoteIP, Port);socket.Connect(ipep);//socket.Send(bits, 8, SocketFlags.None);socket.Send(bits);socket.Close();}private void button1_Click(object sender, EventArgs e)
{byte[] order = new byte[8];foreach (RadioButton c in groupBox1.Controls){if (c.Checked){switch (c.Name){case "radioButton1": order = new byte[] { 0x55, 0x01, 0x12, 0x00, 0x00, 0x00, 0x01, 0x69 }; break;//闭合第一路case "radioButton2": order = new byte[] { 0x55, 0x01, 0x12, 0x00, 0x00, 0x00, 0x02, 0x6a }; break;//闭合第二路case "radioButton3": order = new byte[] { 0x55, 0x01, 0x12, 0x00, 0x00, 0x00, 0x03, 0x6b }; break;//闭合第三路case "radioButton4": order = new byte[] { 0x55, 0x01, 0x12, 0x00, 0x00, 0x00, 0x04, 0x6c }; break;//闭合第四路default: break;}}}SendData(IPAddress.Parse(textBox1.Text), int.Parse(textBox2.Text), order);MessageBox.Show("闭合指令发送成功");}private void button2_Click(object sender, EventArgs e)
{byte[] order = new byte[8];foreach (RadioButton c in groupBox1.Controls){if (c.Checked){switch (c.Name){case "radioButton1": order = new byte[] { 0x55, 0x01, 0x11, 0x00, 0x00, 0x00, 0x01, 0x68 }; break;//断开第一路case "radioButton2": order = new byte[] { 0x55, 0x01, 0x11, 0x00, 0x00, 0x00, 0x02, 0x69 }; break;//断开第二路case "radioButton3": order = new byte[] { 0x55, 0x01, 0x11, 0x00, 0x00, 0x00, 0x03, 0x6a }; break;//断开第三路case "radioButton4": order = new byte[] { 0x55, 0x01, 0x11, 0x00, 0x00, 0x00, 0x04, 0x6b }; break;//断开第四路default: break;}}}SendData(IPAddress.Parse(textBox1.Text), int.Parse(textBox2.Text), order);MessageBox.Show("断开指令发送成功");}}
}

运行界面:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300498.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.net 出现的异常

1 --------------------------- Microsoft Development Environment --------------------------- 没有可用于当前位置的源代码。 --------------------------- 确定 --------------------------- 2--------------------------- Microsoft 开发环境 -----------------------…

选择湿度传感器注意的若干问题

人类的生存和社会活动与湿度密切相关。随着现代化的实现,很难找出一个与湿度无关的领域来。由于应用领域不同,对湿度传感器的技术要求也不同。从制造角度看,同是湿度传感器,材料、结构不同,工艺不同.其性能…

unix系统mysql卸载教程_Linux操作系统下MySQL的卸载、安装全过程

Linux下卸载MySQL1、查找以前是否装有MySQL命令:rpm -qa|grep -i MySQL可以看到MySQL的两个包:MySQL-4.1.12-3.RHEL4.1MySQLclient10-3.23.58-4.RHEL4.12、删除MySQL删除命令:rpm -e --nodeps 包名( rpm -ev MySQL-4.1.12-3.RHEL4.1 )3、删除…

扎哈遗作:北京大兴机场,耗资800亿,被英国《卫报》评为新世界七大奇迹!...

全世界只有3.14 % 的人关注了青少年数学之旅在经历了7次综合模拟演练、3场验证试飞之后,北京大兴国际机场终于迎来它“凤凰展翅”的高光时刻。这也意味着,北京将成为世界首个拥有双国际枢纽机场的城市。就连张口闭口说我们吃不起茶叶蛋、买不起榨菜的湾湾…

MVP on Board 没用小技巧

七月入选了微软 MVP,本文记录 on board 过程中遇到的小问题和没用小技巧。MVP Portal 当你收到来自微软的确认邮件之后,你将正式被接纳为微软现任 MVP 的一员。从此刻开始,你便拥有了 MVP portal 上相关的操作权限。MVP portal 的地址是 http…

JavaScript组件之JQuery(A~Z)教程(基于Asp.net运行环境)[示例代码下载](一)

(一).概述 现在有好多比较优秀的客户端脚本语言组件, 如: Prototype、YUI、jQuery、mootools、Bindows, Scriptaculous, FCKEditor 等, 都非常不错, 最近研究了一下 jQuery,在学习时顺便整理了一个教程, 后面会有示例代码下载链接. jQuery是JavaScript语言的一个新的资源库(…

一条未发出的短信

男孩和女孩是一对情侣,女孩喜欢感受下雨,男孩种是在下雨的时候为女孩撑着伞,伞的大半部分都是遮着女孩的,每次雨水都打湿着男孩的身子,他没说什么,只是默默看着女孩陶醉的脸。他觉得很幸福,女孩…

普通人改变命运最关键的这几种方法

全世界只有3.14 % 的人关注了青少年数学之旅在工作之余,我们大量的碎片时间被手机占据。无意识的刷手机打发无聊,不如有趣又高品质的积累。我们特意精选了在不同领域的几个高品质公众号代表,希望让你在快乐打发闲暇时光的同时,也能…

JavaScript Dom编程艺术

当我对JavaScript还停留在只认识这几个字母的时候,有一天我突然心血来潮,在网上下了DOM Scripting的样章,照着里面的例子写了我平生第一个能让我知所以然JavaScript,在浏览器运行成功,兴奋不已,从此能把学习…

这批.Net程序员水平不行啊!居然ASP.NET Core Middleware都不会用

最近问了几个面试同一个问题:如果有多个自定义Middleware,如何控制它们的执行顺序(比如先判断用户合法再写访问日志)。居然大部分人答不上来?! 对此,你有什么看法?ASP.NET Core Midd…

在Heroku上部署(托管)Rails项目

2019独角兽企业重金招聘Python工程师标准>>> ①、安装heroku: $ gem install heroku ②、先要生成一个公钥,使用命令: $ ssh-keygen -t rsaGenerating public/private rsa key pair. Enter file in which to save the key (/home/…

企业流程管理平台V2.0介绍

一个软件产品的核心价值在于它适应变化的能力,软件业在中国发展的二十年的历程里,您也许选择过也痛苦过;软件本身并不具有任何直接的价值,但它能为您的企业带来信息的价值、效率的价值及降低成本的价值,然而&#xff0…

java关于异常的面试程序题_Java挑战:最难的十个面试题(附答案)「下」

原标题:Java挑战:最难的十个面试题(附答案)「下」版权声明:本文为CSDN博主「华为云」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/devcloud/a…

数学知识点大集合!有了它学数学真的很简单!

▲ 点击查看很多学生对于数学这门学科都有莫名的恐惧感,不知道怎样学才能学得好。其实,好的方法能让学习效率达到最佳效果。有的时候,孩子学习不好,真的不是因为孩子笨,而是这种方法不适合孩子。其实小学数学学习的难度…

WinAPI: waveOutGetNumDevs - 获取波形输出设备的数目

//声明: waveOutGetNumDevs: UINT; {无参数; 返回波形输出设备的数目}//举例:转载于:https://www.cnblogs.com/del/archive/2008/02/20/1075521.html

使用 Blazor 开发内部后台(三):登录

James: 《使用Blazor开发内部后台》系列是技术社区中一位朋友投稿的系列文章,介绍自己为公司的 WebForm 遗留系统使用 Blazor 重写前端 UI 的经历。本文为第三篇,如果错过了前两篇,建议先阅读一下:使用 Blazor 开发内部后台&#…

PHP访问连接MYSQL数据库

1.连接数据库 使用mysql_connect()函数建立与MySQL数据库的连接 源码:$conmysql_connect(“主机名或IP”,”用户名”,”密码”) or die(“不能连接到数据库,可能是数据库服务器为启动或用户名密码错误”.mysql_error()); 2.选择MySQL数据库 使用mysql_se…

论文排版怕翻车?这个排版神器是时候用起来了!

全世界只有3.14 % 的人关注了青少年数学之旅相信每年临近准备毕设或者毕业论文的同学会遇到这些问题:“我的毕业论文提交一次就被导师批评一次,内容不行就算了,格式也有问题!改论文改到绝望”“期刊的版式要求不是统一的&#xff…

fatal error C1001: INTERNAL COMPILER ERROR

http://www.ieasy.org/yuzuo/archives/2005_07.html (余佐的blog)VC6.0的一个编译错误的解决 在window98下使用vc6.0时,如果预编译头文件(stdafx.h)中包含了模板类的头文件,比如atl的头文件时,编译器会报错:fatal error C1001: IN…

.NET Day in China(上海)| 线上线下

点击蓝字关注我们活动简介.NET 6 Preview 6 在 7月14日已经发布,.NET 6 是微软开启全平台统一一个 .NET 计划以来的第一个 LTS 版本,意义重大,微软在 .NET 6 引入了 MAUI,跨平台开发将更为简单,ASP.NET Core 也在不断的…