kingno
2025-08-27 2bc7d729da06ebe31e94a727cb7e7b53a77add79
合并
2个文件已修改
69 ■■■■■ 已修改文件
src/Bro.M141.Process/M141Process.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.M141.Process/MyMQTT.cs 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.M141.Process/M141Process.cs
@@ -22,6 +22,7 @@
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
@@ -219,24 +220,30 @@
                            }
                        }
                    }
                    lock (StatisticRecordsFull)
                    {
                        if (numsum > 20)
                        {
                            numsum = 0;
                            using (FileStream fileStream = new FileStream(_statisticFilePath, FileMode.OpenOrCreate, FileAccess.Write))
                            {
                                fileStream.Seek(0L, SeekOrigin.Begin);
                                string s = JsonConvert.SerializeObject(StatisticRecordsFull);
                                byte[] bytes = Encoding.UTF8.GetBytes(s);
                                fileStream.Write(bytes, 0, bytes.Length);
                                fileStream.SetLength(bytes.Length);
                                fileStream.Flush();
                                fileStream.Close();
                        StatisticRecordsFull.SaveSummaryRecord();
                            }
                        }
                    }
                    //lock (StatisticRecordsFull)
                    //{
                    //    if (numsum > 20)
                    //    {
                    //        numsum = 0;
                        //        using (FileStream fileStream = new FileStream(_statisticFilePath, FileMode.OpenOrCreate, FileAccess.Write))
                        //        {
                        //            fileStream.Seek(0L, SeekOrigin.Begin);
                        //            string s = JsonConvert.SerializeObject(StatisticRecordsFull);
                        //            byte[] bytes = Encoding.UTF8.GetBytes(s);
                        //            fileStream.Write(bytes, 0, bytes.Length);
                        //            fileStream.SetLength(bytes.Length);
                        //            fileStream.Flush();
                        //            fileStream.Close();
                        //        }
                        //    }
                        //}
                }
                catch (Exception ex)
                {
@@ -942,6 +949,7 @@
        #region plc
        public ResponseMessage RunImageCheck_plc(IOperationConfig config)
        {
            ResponseMessage msg = new ResponseMessage();
            msg.Result = 1;
            List<MeasureBind> measureBinds = new List<MeasureBind>();
@@ -1014,7 +1022,10 @@
            }
            CheckPositionDoneAsync_plc(measureBinds[0].WorkPosition, inputSequence, config, cameraIds);
            return msg;
        }
@@ -1150,11 +1161,13 @@
        public async Task<List<ProductModel>> CheckPositionDoneAsync_plc(string positionName, string inputSequence, IOperationConfig config, List<string> cameraIds)
        {
            string triggerSource = config.TriggerSource;
            return await _taskFactory.StartNew(() =>
            {
                try
                {
                    string index = config.TriggerStr.Split(',')[1];
                    var positionSet = M141Config.WorkPositionCollection.FirstOrDefault(u => u.PositionName == positionName);
@@ -1246,8 +1259,6 @@
                        if (positionSet.IsLastPosition)
                        {
                            //班次统计时间划分
                            if (M141Config.WorkShiftList.Count == 0)
                            {
@@ -1291,16 +1302,12 @@
                                    }
                                }
                            }
                            //UpdateProductResultAsync(p);
                            mysqlhelper.NewForAll(p, M141Config.StationCode, M141Config.defectname);
                            if (M141Config.IsfinDevice)
                            {
                                SummaryAllprodata(p);
                            }
                        }
                    });
src/Bro.M141.Process/MyMQTT.cs
@@ -8,7 +8,6 @@
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using SourceGrid.Cells.Editors;
using Sunny.UI.Win32;
using System;
using System.Collections.Concurrent;
@@ -81,8 +80,6 @@
                InitConsumer(_receiveChannel2, _queue2, HandleQueue2Message);
            }
            CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, "RabbitMQ 连接成功");
        }
@@ -111,16 +108,19 @@
                }
                else
                {
                    CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ 篮具 收到未匹配 zbguid:{obj?.zbguid}");
                    if (MSGClasses.Any(u => u.zguid == obj?.zbguid))
                    {
                        var tem = MSGClasses.FirstOrDefault(u => u.zguid == obj?.zbguid);
                        if (!string.IsNullOrEmpty(tem.receive))
                        {
                            tem.receive = message;
                        }
                    }
                    CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ 篮具 收到未匹配 zbguid:{obj?.zbguid}");
                            CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ 篮具有超时动作,截留下匹配信息:{message}");
                        }
                    }
                }
            }
            catch (Exception ex)
@@ -164,21 +164,23 @@
                {
                    if (!string.IsNullOrEmpty(tem.receive))
                    {
                        CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ {keystr}二次接收 返回值正常 {tem.receive}");
                        return tem.receive;
                    }
                    Thread.Sleep(1000);
                }
                MSGClasses.RemoveAll(u => u.key == keystr);
                return tem.receive;
                CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ {keystr}二次接收 返回值为空");
                return null;
            }
            var guid = Guid.NewGuid().ToString();
            var tcs = new TaskCompletionSource<string>(TaskCreationOptions.RunContinuationsAsynchronously);
            _pendingTask1[guid] = tcs;
            var msgObj = new AutoLineMacQueue
            {