181 lines
6.1 KiB
C#
181 lines
6.1 KiB
C#
using MesWorkMqtt;
|
|
using MQTTnet.Client.Connecting;
|
|
using MQTTnet.Client.Disconnecting;
|
|
using MQTTnet.Client.Receiving;
|
|
|
|
using bizFacade;
|
|
using MesWorkMqtt;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Configuration;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using MQTTnet;
|
|
using System.Threading;
|
|
using DoWhatPlc;
|
|
using MesServerWork;
|
|
using System.Collections;
|
|
|
|
namespace SyUpLoad
|
|
{
|
|
public partial class PartLoad : Form
|
|
{
|
|
|
|
public static string MqttUrl = ConfigurationManager.AppSettings["MqttUrl"];
|
|
public static string MqttTargetTopic = ConfigurationManager.AppSettings["MqttTargetTopic"];
|
|
public static string Url_WebApi = ConfigurationManager.AppSettings["Url_WebApi"];
|
|
public static string ConnectionString_MES = ConfigurationManager.AppSettings["ConnectionString_MES"];
|
|
public static string OPName01Fun = ConfigurationManager.AppSettings["OPName01"];
|
|
public static string OPName02Fun = ConfigurationManager.AppSettings["OPName02"];
|
|
public static string OPName03Fun = ConfigurationManager.AppSettings["OPName03"];
|
|
//第一个库房工位号
|
|
public static string OPName01;
|
|
//第二个库房工位号
|
|
public static string OPName02;
|
|
public static byte warehouseLocation = 112;
|
|
Hashtable ht_OpnameFun;
|
|
|
|
DataTable dt_OPName01;
|
|
DataTable dt_OPName02;
|
|
|
|
public PartLoad()
|
|
{
|
|
InitializeComponent();
|
|
InitHashTable();
|
|
|
|
BaseDataSystemMES.GetUpLoadBarCode(OPName01, out DataTable dt_OPName01);
|
|
BaseDataSystemMES.GetUpLoadBarCode(OPName02, out DataTable dt_OPName02);
|
|
|
|
dataGridView_OPA1001.DataSource = dt_OPName01;
|
|
dataGridView_OPA1002.DataSource = dt_OPName02;
|
|
}
|
|
|
|
private void InitHashTable()
|
|
{
|
|
ht_OpnameFun = new Hashtable();
|
|
var op = OPName01Fun.Split('|');
|
|
ht_OpnameFun.Add(op[0], op[1]);
|
|
OPName01 = op[0];
|
|
op = OPName02Fun.Split('|');
|
|
ht_OpnameFun.Add(op[0], op[1]);
|
|
OPName02 = op[0];
|
|
|
|
op = OPName03Fun.Split('|');
|
|
ht_OpnameFun.Add(op[0], op[1]);
|
|
}
|
|
|
|
|
|
|
|
private void PartLoad_Load(object sender, EventArgs e)
|
|
{
|
|
SetCOM();
|
|
|
|
Mqtt.StartAsync();
|
|
Mqtt.mqttClient.ConnectedHandler = new MqttClientConnectedHandlerDelegate(OnSubscriberConnected);
|
|
Mqtt.mqttClient.DisconnectedHandler = new MqttClientDisconnectedHandlerDelegate(OnSubscriberDisconnected);
|
|
Mqtt.mqttClient.ApplicationMessageReceivedHandler = new MqttApplicationMessageReceivedHandlerDelegate(OnSubscriberMessageReceived);
|
|
|
|
////MesServerCode哈希表创建
|
|
//MesServerWork.MIS_BASE.InitHashtable_MesServerCode();
|
|
}
|
|
|
|
private void OnSubscriberConnected(MqttClientConnectedEventArgs x)
|
|
{
|
|
var rec = x.AuthenticateResult.ResultCode.ToString();
|
|
//label_State.Text = rec;
|
|
}
|
|
|
|
private void OnSubscriberDisconnected(MqttClientDisconnectedEventArgs x)
|
|
{
|
|
var rec = x.AuthenticateResult.ResultCode.ToString();
|
|
//label_State.Text = rec;
|
|
}
|
|
|
|
private void OnSubscriberMessageReceived(MqttApplicationMessageReceivedEventArgs x)
|
|
{
|
|
var rec = x.ApplicationMessage.ConvertPayloadToString();
|
|
|
|
//保存数据
|
|
//ThreadPool.QueueUserWorkItem(MIS_Funtion, rec);
|
|
|
|
//处理MES业务
|
|
ThreadPool.QueueUserWorkItem(TransferInfToMES, rec);
|
|
}
|
|
|
|
private void TransferInfToMES(object text)
|
|
{
|
|
try
|
|
{
|
|
string recData = text.ToString();
|
|
string[] dataArray = recData.Split('|');
|
|
if (dataArray.Length != 4)
|
|
return;
|
|
//消息来源
|
|
string m_Source = dataArray[0].ToString();
|
|
//消息类型 Barcode
|
|
string m_Command = dataArray[1].ToString();
|
|
//工位号
|
|
string m_OpName = dataArray[2].ToString();
|
|
//消息参数
|
|
string m_Value = dataArray[3].ToString();
|
|
|
|
//if (!m_WorkStart_OpName.ContainsKey(m_OpName)) return; //当前系统是否存在该工位
|
|
|
|
switch (m_Source)
|
|
{
|
|
case "BarCode":
|
|
//处理条码逻辑
|
|
if (m_Command == "Bar")
|
|
{
|
|
//MesServerFunction(m_OpName, m_Value, "fun_Barcode");
|
|
}
|
|
break;
|
|
case "WEB":
|
|
if (m_Command == "Barcode")
|
|
{
|
|
//MesServerFunction(m_OpName, m_Value, "fun_Barcode");
|
|
|
|
}
|
|
else
|
|
{
|
|
string Content = m_Command + "|" + m_Value;
|
|
//MesServerFunction(m_OpName, Content, "fun_WebSubmit");
|
|
|
|
}
|
|
break;
|
|
case "PLC":
|
|
string funID = ht_OpnameFun[m_OpName].ToString();
|
|
switch(funID)
|
|
{
|
|
case "1":
|
|
MesServerFunction(m_Value);
|
|
break;
|
|
case "2":
|
|
MesServerFunction(m_Value);
|
|
break;
|
|
case "3":
|
|
MesServerFunction(m_Value);
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
|
|
}
|
|
catch (Exception err)
|
|
{
|
|
////ApplicationLog.WriteLog(err, "TransferInf");
|
|
}
|
|
}
|
|
|
|
private void button_ManualPartLoad2_Click(object sender, EventArgs e)
|
|
{
|
|
fun_PartLoadManual2(OPName02);
|
|
}
|
|
}
|
|
}
|