using MisDataFunDll;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MesServerFunctions
{
///
/// 命令
///显示托盘信息√ case "ShowMoby":
///显示操作指南√ case "ProcessList":
///显示物料√ case "MaterialList":
///显示操作图片√ case "PicShow":
///显示拧紧位置√ case "ShaftPosition":
///实时显示质量数据√ case "ShowTimelyQuality":
///手动拧紧实时显示质量数据√case "ShowTimelyQuality_Tight":
///√ case "OrderFormList":
///弹窗消息√ case "Notice":
///LED消息提醒√ case "ScrollNotice":
///物料检测初始化√ case "MaterialCheckPosition":
///返修质量数据显示√ case "RepairQuality"
///
///
public class SendMessageFun
{
///
/// 批量发送WEB消息(Value为BOOL值)
/// 1:显示工序内容
/// 2:显示物料
/// 3:显示操作指导图片
/// 5:显示机型、工件流水号、订单信息
/// c:显示质量数据
///
/// 消息编号组合
/// 消息值组合
/// 工位号
static public void SendMessage(string MessageNumm, string Value, string OpName)
{
for (int i = 0; i < MessageNumm.Length; i++)
{
SendMessage(MessageNumm[i], Value[i].ToString(), OpName);
}
}
///
/// 向WEB发送信息(value为字符串)
///
/// 消息种类
/// 消息内容
/// 工位号
static public void SendInfomation(string Command, string Value, string OpName)
{
string SendMessage = "MES|" + Command + "|" + OpName + "|" + Value;
AsyncSendMessage(SendMessage);
}
static public void AsyncSendMessage_Notice(string opname, string notice, string noticeType = "misServer")
{
//通知Web界面
notice = $"{{\"Notice\":\"{notice}\",\"NoticeType\":\"{noticeType}\"}}";
MisDataFun.Web_Notice_Insert(opname, notice);
string SendMessage = "MES|Notice_Info|" + opname + "|" + notice;
MIS_SendMessage.asyncSendMessage(SendMessage);
}
///
///
///
///
///
/// barcode mis
static public void AsyncSendMessage_Notice_Error(string opname, string notice, string noticeType)
{
//通知Web界面
// notice: notice, noticeType: noticeType
notice = $"{{\"Notice\":\"{notice}\",\"NoticeType\":\"{noticeType}\"}}";
MisDataFun.Web_Notice_Insert(opname, notice);
string SendMessage = "MES|Notice_Error|" + opname + "|" + notice;
MIS_SendMessage.asyncSendMessage(SendMessage);
}
static public void AsyncSendMessage_Materials_BarCode_Box(string opname, int isShow, string materialsCode = "",string batchCode = "",string msg = "")
{
//通知Web界面
string boxObjStr = $"{{\"IsShow\":\"{isShow}\",\"MaterialsCode\":\"{materialsCode}\",\"BatchCode\":\"{batchCode}\",\"Msg\":\"{msg}\"}}";
string SendMessage = "MES|Materials_BarCode_Box|" + opname + "|" + boxObjStr;
MIS_SendMessage.asyncSendMessage(SendMessage);
}
///
/// 选择发送给WEB的消息
/// 1:显示工序内容
/// 2:显示物料
/// 3:显示操作指导图片
/// 5:显示机型、工件流水号、订单信息
/// c:显示质量数据
///
/// 消息类型
/// 消息工位
static void SendMessage(char Num, string Value, string OpName)
{
string SendMessage;
switch (Num)
{
case '1':
//1(直接在界面通过选择机型确认工序内容)
SendMessage = "MES|ProcessList|" + OpName + "|" + Value;
AsyncSendMessage(SendMessage);
break;
case '2':
//2显示物料
SendMessage = "MES|MaterialList|" + OpName + "|" + Value;
AsyncSendMessage(SendMessage);
break;
case '3':
//3显示操作指导图片
SendMessage = "MES|PicShow|" + OpName + "|" + Value;
AsyncSendMessage(SendMessage);
break;
case '4':
//3显示操作指导图片
SendMessage = "MES|OrderFormList|" + OpName + "|" + Value;
AsyncSendMessage(SendMessage);
break;
case '5':
SendMessage = "MES|ShowMoby|" + OpName + "|" + Value;
AsyncSendMessage(SendMessage);
break;
case '6':
SendMessage = "MES|MaterialCheckPosition|" + OpName + "|" + Value;
AsyncSendMessage(SendMessage);
break;
case '7':
SendMessage = "MES|WorkStart|" + OpName + "|" + Value;
AsyncSendMessage(SendMessage);
break;
case '8':
SendMessage = "MES|OrderFormList|" + OpName + "|" + Value;
AsyncSendMessage(SendMessage);
break;
case '9':
SendMessage = "MES|ConfirmOkGo|" + OpName + "|" + Value;
AsyncSendMessage(SendMessage);
break;
case 'a':
SendMessage = "MES|FixAllow|" + OpName + "|" + Value;
AsyncSendMessage(SendMessage);
break;
case 'b':
SendMessage = "MES|ShaftPosition|" + OpName + "|" + Value;
AsyncSendMessage(SendMessage);
break;
case 'c':
//SendMessage = "MES|ShowQuality|" + OpName + "|" + Value;
SendMessage = "MES|ShowTimelyQuality|" + OpName + "|" + Value;
AsyncSendMessage(SendMessage);
break;
}
}
///
/// 向WEB发送信息(value为字符串)
///
/// 消息种类
/// 消息内容
/// 工位号
//void SendInfomation(string Command, string Value, string OpName)
//{
// string SendMessage = "MES|" + Command + "|" + OpName + "|" + Value;
// AsyncSendMessage(SendMessage);
//}
///
/// 发送在线产量、在线节拍
///
///
///
private void SendActuallyCount(string OpName, int tagValue)
{
//当工件离开时,更新在线产量、在线节拍
if (tagValue == 0)
{
try
{
int opNameCount = 0;//在线产量
int opNameCountTime = 0;//在线节拍
MisDataFun.OpNameCount_New(OpName, out opNameCount, out opNameCountTime); //基本数据_工作日历_班次产量查询_New
SendInfomation("ActuallyCount", opNameCount.ToString() + "&" + opNameCountTime.ToString(), OpName);
}
catch (Exception err)
{
////ApplicationLog.WriteLog(err, "Function01:SendActuallyCount");
}
}
}
///
/// 发送信息到MES通讯服务器或者其他的
///
///
static public void AsyncSendMessage(string Message)
{
MIS_SendMessage.asyncSendMessage(Message);
}
/////
///// 发送提示消息
/////
/////
//static public void AsyncSendMessage_Notice(string opname, string notice)
//{
// //通知Web界面
// BaseDataSystemMES.Web_Notice_Insert(opname, notice);
// string SendMessage = "MES|Notice|" + opname + "|" + "1";
// MIS_BASE.asyncSendMessage(SendMessage);
//}
///
/// 发送信息到打印机
///
///
private void asyncSendMessageToMark(string Message)
{
string messageSend = (string)Message;
//UDPClientSend.Send_ALL(ApplicationConfig.MES_MarkPortNum, messageSend);
}
///
/// 发送信息到LED
///
///
private void asyncSendMessageLED(string OpName)
{
//发送到大屏幕显示 41104
string strMessage = "MIS|" + OpName + "|" + "0" + "|" + "1";
//UDPClientSend.Send_ALL(ApplicationConfig.Port_ShowLED_ProductCount, strMessage);
}
}
}