安装M2Mqtt
安装M2Mqtt,的包,使用pm管理器
Install-Package M2Mqtt
using System;
using System.Windows.Forms;
using uPLibrary.Networking.M2Mqtt;
using uPLibrary.Networking.M2Mqtt.Messages;
namespace Connnection2MqttControlRobot
{
public partial class Form1 : Form
{
MqttClient mqttClient;//mqtt连接
string ipAdddr = "127.0.0.1";
string Topic_bigarm = "cqsdzy/roboat/bigarm/";//控制大臂主题
string Topic_smallarm = "cqsdzy/roboat/smallarm/ ";//控制小臂主题
string Topic_hand = "cqsdzy/roboat/hand";//旋转抓手主题
string Topic_displacement = "cqsdzy/roboat/displacement ";//机械臂位移主题
string Topic_operation = "cqsdzy/roboat/operation";//机械臂操作主题
string Topic_oboatResetScene = "cqsdzy/roboat/oboatResetScene ";//重置场主题
string Topic_RoboatCtrlConveyorBelt = "cqsdzy/roboat/RoboatCtrlConveyorBelt ";//控制传送带主题
public Form1()
{
InitializeComponent();
InitializeMqttClient();
btnConnectin.Enabled = true;
btnDisConnection.Enabled = false;
}
//点击链接按钮
private void btnConnectin_Click(object sender, EventArgs e)
{
// 连接到 MQTT 代理
string clientId = Guid.NewGuid().ToString();
//链接到MQTT服
mqttClient.Connect(clientId);
btnConnectin.Enabled = false;
btnDisConnection.Enabled = true;
if (mqttClient.IsConnected)
{
MessageBox.Show("Connected to MQTT broker!");
// 订阅某个主题
mqttClient.Subscribe(new string[] { Topic_bigarm }, new byte[] { MqttMsgBase.QOS_LEVEL_AT_LEAST_ONCE });
}
else
{
MessageBox.Show("Failed to connect to MQTT broker!");
}
}
//断开链接按钮
private void btnDisConnection_Click(object sender, EventArgs e)
{
if (mqttClient != null && mqttClient.IsConnected)
{
mqttClient.Disconnect();
MessageBox.Show("Disconnected from MQTT broker.");
}
}
//初始化链接,设置链接信息
private void InitializeMqttClient()
{
// 创建 MQTT 客户端
mqttClient = new MqttClient(ipAdddr);
// 注册连接事件处理程序
mqttClient.MqttMsgPublishReceived += MqttClient_MqttMsgPublishReceived;
// 设置MQTT链接的版本
mqttClient.ProtocolVersion = MqttProtocolVersion.Version_3_1_1;
}
//收到消息
private void MqttClient_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
{
// 处理接收到的消息
string receivedMessage = System.Text.Encoding.UTF8.GetString(e.Message);
MessageBox.Show($"Received message: {receivedMessage}");
}
//窗口关闭的时候断开链接
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
if (mqttClient != null && mqttClient.IsConnected)
{
mqttClient.Disconnect();
MessageBox.Show("Disconnected from MQTT broker.");
}
}
//发送数据按钮
private void btnSendDate_Click(object sender, EventArgs e)
{
string message = "56";
mqttClient.Publish(Topic_bigarm, System.Text.Encoding.UTF8.GetBytes(message));
}
}
}