소스 검색

提交代码

yi eason 3 년 전
부모
커밋
742cbbc572

+ 38 - 30
CarLocalMeter/App.config

@@ -5,10 +5,10 @@
     </startup>
 	<appSettings>
 		<!--ping服务器的地址-->
-		<add key="ServiceIp" value="jgwzjl.jiugang.com"/>
+		<add key="ServiceIp" value="jgwzjl.jiugang.comx"/>
 		
-		<!--<add key="ServiceUrl" value="http://10.104.4.130:9004/v1" />-->
-		<add key="ServiceUrl" value="http://10.99.81.20/icore.icp.web/pass/systemBase/v1"/>
+		<add key="ServiceUrl" value="http://10.104.4.130:9004/v1" />
+		<!--<add key="ServiceUrl" value="http://10.99.81.20/icore.icp.web/pass/systemBase/v1"/>-->
 		<!--<add key="ServiceUrl" value="http://jgwzjl.jiugang.com/icore.icp.web/pass/systemBase/v1"/>-->
 		
 		<add key="fpath" value="http://10.99.81.20/icore.icp.web/pass/file/upload/" />
@@ -35,22 +35,23 @@
 		<add key="maxRange" value="100" />
 		
 		<!--硬盘录像机仪表抓拍设置的通道-->
-		<add key="channelOther" value="4,5,6" />
-		<add key="channelVis" value="2,1" /><!--需显示视频的通道-->
+		<add key="channelOther" value="2,3,5" />
+		<add key="channelVis" value="4,1" /><!--需显示视频的通道-->
 		<add key="channelVisHeight" value="300" /><!--需显示高度-->
-		<add key="channelCarNo" value="2" /><!--车号抓拍通道-->
+		<add key="channelCarNo" value="4" /><!--车号抓拍通道,用于生成图2-->
 		<add key="channel" value="1" /><!--重量仪表抓拍通道-->
-		<add key="voicePlayIp" value="10.130.1.71" />
+		<!--10.130.0.72是1#北  10.130.0.46是8#西-->
+		<add key="voicePlayIp" value="10.130.0.46" />
 		<add key="voicePlayPort" value="8000" />
 		<add key="voicePlayUid" value="admin" />
 		<add key="voicePlayPwd" value="jlwj12345" />
-		<!--车号抓拍摄像头枪机-->
-		<add key="voiceCarNoIp" value="10.130.0.63" />
+		<!--1#公路北车号抓拍摄像头枪机 10.130.0.76是1#北   10.130.2.49是8#西-->
+		<add key="voiceCarNoIp" value="10.130.2.49" />
 		<add key="voiceCarNoPort" value="8000" />
 		<add key="voiceCarNoUid" value="admin" />
 		<add key="voiceCarNoPwd" value="jlwj12345" />
-		<!--车号抓拍摄像头球机-->
-		<add key="voiceCarNoIp2" value="10.130.0.63" />
+		<!--车号抓拍摄像头球机 10.130.0.85是1#北   10.130.0.33是8#西-->
+		<add key="voiceCarNoIp2" value="10.130.0.85" />
 		<add key="voiceCarNoPort2" value="8000" />
 		<add key="voiceCarNoUid2" value="admin" />
 		<add key="voiceCarNoPwd2" value="jlwj12345" />
@@ -65,34 +66,41 @@
 		<add key="plcLocationName" value="plcState,leftGs,rightGs,topHw,bottomHw,rgLight,dz" />
 		<add key="plcLocationHMI" value="18,81" />
 		<add key="plcLocationNameHMI" value="rgLight,dz" />
-		<!--*************MoXa配置*****************-->
-		<add key="sleepTime" value="200"/>
-		<add key="moxaIP" value="10.130.1.178" />
-		<add key="moxaPort" value="4001" />
-		<!--报文长度-->
-		<add key="messageLength" value="8" />
-		<!--数据截止位符号-->
-		<add key="separate" value="61" />
-	    <!--开始取值位置从1开始数-->
-		<add key="startPosition" value="1" />
-		<!--取多少位-->
+		<!--*************MoXa配置 10.130.0.69是1#北  10.130.1.173是8#西*****************-->
+		<add key="sleepTime" value="100"/>
+		<add key="moxaIP" value="10.130.1.173" />
+		<add key="moxaPort" value="4004" /><!--4001是1#北,4004是8#西-->
+		<!--报文长度 1#北17  8#西12-->
+		<add key="messageLength" value="12" />
+		<!--数据截止位符号  1#北13  8#西3-->
+		<add key="separate" value="3" />
+	    <!--开始取值位置从1开始数   1#北5  8#西3-->
+		<add key="startPosition" value="4" />
+		<!--取多少位   1#北6  8#西6-->
 		<add key="dataLength" value="6" />
 		<!-- 是否反转 false不反转 true反转-->
-		<add key="isFz" value="true"/>
+		<add key="isFz" value="false"/>
 		<!--波动次数及判稳值,仪表1秒7次,所以我们200ms取一次仪表数据-->
 		<add key="undulateCount" value="25" />
 		<add key="undulateValue" value="50" />
 		<!--零点判断绝对值在0到多少内为零点-->
 		<add key="minValue" value="50" />
-		<!--Redis配置-->
-		<add key="redisIp" value="127.0.0.1" />
-		<add key="redisPort" value="6379" />
+		
+		<!--led地址-->
+		<add key="ledIp" value="10.130.0.134"/>
 		
 		<!--RFID配置只考虑tcp_ip的,如果串口很简单,不过这里不考虑-->
 		<!--rfid的IP地址-->
-		<add key="rfidIP" value="10.121.80.100" />
+		<add key="rfidIP" value="10.130.0.70" />
 		<!--rfid的Port地址-->
 		<add key="rfidPort" value="7086" />
+		<!--rfid断开重连持续时长分钟,若该时间内还是连不上则不再连接-->
+		<add key="rfidConnTime" value="1"/>
+	
+		<!--上传数据休眠时间毫秒,重量为0,且网络正常时我们每10秒检测一次计量数据是否未上传-->
+		<add key="sleepUploadTime" value="10000"/>
+
+		<!--下面的没有用到-->
 		<!--数据截止位符号-->
 		<add key="rfidSeparate" value="13" />
 		<!--报文长度-->
@@ -103,9 +111,9 @@
 		<add key="rfidDataLength" value="6" />
 		<!-- 是否反转 false不反转 true反转-->
 		<add key="rfidIsFz" value="false"/>
-		<!--rfid断开重连持续时长分钟,若该时间内还是连不上则不再连接-->
-		<add key="rfidConnTime" value="1"/>
 
-		<add key="ledIp" value="10.121.80.100"/>
+		<!--Redis配置-->
+		<add key="redisIp" value="127.0.0.1" />
+		<add key="redisPort" value="6379" />
 	</appSettings>
 </configuration>

+ 2 - 0
CarLocalMeter/CarLocalMeter.csproj

@@ -113,6 +113,7 @@
     <Compile Include="ModelCls\DjPbModel.cs" />
     <Compile Include="ModelCls\MeterBaseRfidInfo.cs" />
     <Compile Include="ModelCls\MeterWorkPreLink.cs" />
+    <Compile Include="OptionCls\DbUpload.cs" />
     <Compile Include="OptionCls\Led\LedDll.cs" />
     <Compile Include="OptionCls\Led\LED_Control.cs" />
     <Compile Include="ModelCls\ActualFirstModel.cs" />
@@ -122,6 +123,7 @@
     <Compile Include="ModelCls\MeterWorkImage.cs" />
     <Compile Include="ModelCls\PreTrackScale.cs" />
     <Compile Include="Business\OneTareOnaGrossBussiness.cs" />
+    <Compile Include="OptionCls\PingNetwork.cs" />
     <Compile Include="OptionCls\Voice\CHCNetSDK.cs" />
     <Compile Include="OptionCls\Voice\CoreDevice.cs" />
     <Compile Include="OptionCls\Voice\HCNetSDK.cs" />

+ 10 - 7
CarLocalMeter/DbOption/MeterWorkCarActualFirstService.cs

@@ -81,7 +81,7 @@ namespace CarLocalMeter
         /// <summary>
         /// 一次计量数据保存以及结净
         /// </summary>
-        public RESTfulResult<MeterWorkCarActualFirst> doAddFirstDjDb(PreTrackScale scale, MeterWorkCarActualFirst model)
+        public RESTfulResult<string> doAddFirstDjDb(PreTrackScale scale, MeterWorkCarActualFirst model)
         {
             DbHelper db = new DbHelper();
 
@@ -104,7 +104,7 @@ namespace CarLocalMeter
             pbSomeModel.one = model;
             pbSomeModel.two = monitorNote;
 
-            RESTfulResult<MeterWorkCarActualFirst> rmI = db.doOption<MeterWorkCarActualFirst>("meterworkcaractualfirsts", "/add", new object[] { pbSomeModel }, 1);
+            RESTfulResult<string> rmI = db.doOption<string>("meterworkcaractualfirsts", "/addDj", new object[] { pbSomeModel }, 1);
             
             return rmI;
         }
@@ -156,7 +156,7 @@ namespace CarLocalMeter
                 netDb.grossManName = "system";
                 netDb.grossTime = actualFirst2.createTime;
 
-                netDb.actualFirst2No = actualFirst2.actualFirstNo; //皮重编号
+                netDb.actualFirst2No = actualFirst.actualFirstNo; //皮重编号
                 netDb.tareTime = actualFirst.createTime;
                 netDb.tareWeight = actualFirst.meterWeight.Value; // 谁小谁是皮 BourneCao
                 netDb.baseSpot2No = actualFirst.baseSpotNo;
@@ -182,7 +182,7 @@ namespace CarLocalMeter
                 netDb.tareManNo = "system";
                 netDb.tareTime = actualFirst2.createTime; 
 
-                netDb.actualFirst1No = actualFirst2.actualFirstNo; //毛重编号
+                netDb.actualFirst1No = actualFirst.actualFirstNo; //毛重编号
                 netDb.grossTime = actualFirst.createTime;
                 netDb.grossWeight = actualFirst.meterWeight.Value; // 谁大谁是毛 BourneCao
                 netDb.baseSpot1No = actualFirst.baseSpotNo;
@@ -229,7 +229,7 @@ namespace CarLocalMeter
             PbSomeModel<MeterWorkCarActualFirst, MeterWorkCarActual, MeterWorkPreLink, MeterMonitorNote> pbSomeModel = new PbSomeModel<MeterWorkCarActualFirst, MeterWorkCarActual, MeterWorkPreLink, MeterMonitorNote>();
             pbSomeModel.one = actualFirst2;
             pbSomeModel.two = netDb;
-            pbSomeModel.sOne = "1"; //保存历史皮
+            pbSomeModel.sOne = "0"; //1保存历史皮 0不保存
             pbSomeModel.four = monitorNote;
 
             if (actualFirst2 != null && string.IsNullOrEmpty(actualFirst2.createManNo))
@@ -238,7 +238,7 @@ namespace CarLocalMeter
                 actualFirst2.createManName = actualFirst2.baseSpotName;
             }
 
-            RESTfulResult<string> rm = db.doOption<string>("meterworkcaractualfirsts", "doAddNetInnerWf", new object[] { pbSomeModel }, 1);
+            RESTfulResult<string> rm = db.doOption<string>("meterworkcaractualfirsts", "doAddNetDj", new object[] { pbSomeModel }, 1);
             return rm;
         }
 
@@ -251,12 +251,15 @@ namespace CarLocalMeter
         {
             DbHelper db = new DbHelper();
 
-            foreach (MeterWorkCarActualFirst mfirst in lm) 
+            foreach (MeterWorkCarActualFirst mfirst in lm)
             {
                 mfirst.dataSource = "1"; //智能终端
                 mfirst.meterMode = "2"; //智能终端
                 mfirst.valueFlag = "1";
                 mfirst.isPreScale = "0"; //未匹配委托
+                mfirst.weightType = "1";//统一给为皮重,让计量员自己去确认是毛还是皮
+                mfirst.createManNo = "system";
+                mfirst.createManName = "system";
             }
 
             RESTfulResult<List<DjPbModel>> rm = db.doOption<List<DjPbModel>>("meterworkcaractualfirstbaks", "addFirstEmergencyList", new object[] { lm }, 1);

+ 3 - 1
CarLocalMeter/OptionCls/CarNoCls.cs

@@ -83,10 +83,12 @@ namespace CarLocalMeter
             //上传结果
             string stringPlateLicense = System.Text.Encoding.GetEncoding("GBK").GetString(struITSPlateResult.struPlateInfo.sLicense).TrimEnd('\0');
             string stringAlarm = "抓拍上传," + "车牌:" + stringPlateLicense + ",车辆序号:" + struITSPlateResult.struVehicleInfo.dwIndex;
-            if(bQj)
+
+            if (bQj)
                 CacleCls.voicCarNo = stringPlateLicense.Replace("黄", "").Replace("蓝", "").Replace("绿", "").Replace("白", ""); //枪机
             else
                 CacleCls.voicCarNo2 = stringPlateLicense.Replace("黄", "").Replace("蓝", "").Replace("绿", "").Replace("白", ""); //球机
+
             DebugInfo(stringAlarm);
         }
 

+ 113 - 0
CarLocalMeter/OptionCls/DbUpload.cs

@@ -0,0 +1,113 @@
+using com.hnshituo.core.webapp.vo;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace CarLocalMeter
+{
+    public class DbUpload
+    {
+        Log lg = Log.GetInstance();
+        private bool blThreadFlag = true;
+        Thread DataCollectThread = null;//采集进程
+        MeterWorkCarActualFirstService workCarActualFirstService = new MeterWorkCarActualFirstService();
+        ImageOption imgControl = new ImageOption();
+
+        public DbUpload()
+        {
+            DataCollectThread = new Thread(new ThreadStart(DataCollect));
+        }
+
+        public void start()
+        {
+            DataCollectThread.Start();
+        }
+
+        public void stop()
+        {
+            blThreadFlag = false;
+        }
+
+        private void DataCollect()
+        {
+            if (!blThreadFlag) return;
+
+            Dictionary<string, string> dic = new Dictionary<string, string>();
+            while (blThreadFlag)
+            {
+                try
+                {
+                    //重量小于500且网络正常时触发
+                    if (CacleCls.weight < 500 && CacleCls.serverFlag)
+                    {
+                        dic.Clear();
+                        //若本地存在计量数据未进行上传的,则进行数据上传并得到返回的结果
+                        //得到结果后构造成Dictionary然后进行图片操作,修改图片名称及位置
+                        bool bReadFlag = false;
+                        string strRtMsgInfo = "";
+                        List<MeterWorkCarActualFirst> lm = FileOption.ReadDb<MeterWorkCarActualFirst>(ref bReadFlag, ref strRtMsgInfo);
+                        if (bReadFlag)
+                        {
+                            //进行数据上传操作
+                            RESTfulResult<List<DjPbModel>> rmRst = workCarActualFirstService.doDbUpload(lm);
+                            if (rmRst.Succeed)
+                            {
+                                if (rmRst.Data.Count == lm.Count)
+                                {
+                                    //直接重写文件
+                                    FileOption.clearFile();
+                                    //然后对图片进行压缩及修改名称处理
+                                    foreach (DjPbModel dm in rmRst.Data)
+                                    {
+                                        dic.Add(dm.key, dm.value);
+                                    }
+                                }
+                                else
+                                {
+                                    //清理下文件
+                                    FileOption.clearFile();
+                                    //重写下未成功的数据
+                                    foreach (MeterWorkCarActualFirst first in lm)
+                                    {
+                                        DjPbModel pm = rmRst.Data.Where(s => s.key == first.actualFirstNo).FirstOrDefault();
+                                        if (pm == null || string.IsNullOrEmpty(pm.key) || string.IsNullOrEmpty(pm.value))
+                                        {
+                                            //Thread.Sleep(100);
+                                            bool flag = FileOption.WriterDb(new ActualFirstModel { actualFirstNo = first.actualFirstNo, baseSpotNo = first.baseSpotNo, baseSpotName = first.baseSpotName, carNo = first.carNo, createTime = first.createTime, meterWeight = first.meterWeight }, out string msgInfo);
+                                            if (!flag)
+                                            {
+                                                lg.WriteLog(LogType.serverLog, $"重写失败:{msgInfo},数据:actualFirstNo{first.actualFirstNo},baseSpotNo:{first.baseSpotNo},baseSpotName:{first.baseSpotName},carNo:{first.carNo},createTime:{first.createTime},meterWeight:{first.meterWeight}");
+                                            }
+                                        }
+                                        else
+                                        {
+                                            dic.Add(pm.key, pm.value);
+                                        }
+                                    }
+                                }
+
+                                if (dic.Count > 0) imgControl.ZipFiles(dic);
+                            }
+                            else
+                            {
+                                //计量失败,播报失败,然后写led屏幕及日志
+                                lg.WriteLog(LogType.serverLog, rmRst.ResultMessage);
+                                CacleCls.isLock = false;
+                                return;
+                            }
+                        }
+                    }
+                }
+                catch (Exception ex)
+                {
+                    lg.WriteLog(LogType.SystemLog, "数据上传异常:" + ex.Message);
+                }
+                Thread.Sleep(AppConfigCache.sleepUploadTime);
+            }
+        }
+    }
+}
+

+ 175 - 82
CarLocalMeter/OptionCls/MoxaCls.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Configuration;
+using System.Diagnostics;
 using System.Linq;
 using System.Net;
 using System.Net.Sockets;
@@ -15,6 +16,7 @@ namespace CarLocalMeter
     /// </summary>
     public class MoxaCls
     {
+        Log lg = Log.GetInstance();
         Socket client = null;
         IPAddress ip = null;
         IPEndPoint point = null;
@@ -36,6 +38,7 @@ namespace CarLocalMeter
             if (client == null)
             {
                 client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
+                //client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, -300);
                 //连接到服务器
                 client.Connect(point);
             }
@@ -64,6 +67,7 @@ namespace CarLocalMeter
         private void DataCollect()
         {
             if (!blThreadFlag) return;
+            //client.Listen(10);
 
             //连接到服务器
             while (!client.Connected)
@@ -82,140 +86,229 @@ namespace CarLocalMeter
                 Thread.Sleep(500);
             }
 
-            int isLd = 0;
+            byte[] btDbs = new byte[AppConfigCache.messageLength];//数据填充bt
+            byte[] buffer = new byte[AppConfigCache.messageLength];
+            int isLd = 0, itest = 0;
             while (blThreadFlag)
             {
                 try
                 {
-                    byte[] buffer = new byte[32 * 32];
-                    int n = client.Receive(buffer);
+                    byte[] buffers = new byte[AppConfigCache.messageLength];
 
-                    if (AppConfigCache.isFz == "true")
+                    //Debug.WriteLine("client开始:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));
+                    int n = client.Receive(buffers); //由于仪表每1秒是采集多少次是不确定的,如果这个buffer的长度设置的太长会导致这里读取的时间很长
+                    //Debug.WriteLine("client结束:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));
+
+                    int icn = 0, iGet = 0;
+                    for (int i = 0; i < buffer.Length; i++)
                     {
-                        byte[] bf = buffer.Reverse().ToArray();
-                        int mx = 0;
-                        foreach (byte b in bf)
+                        if (buffer[i] != 0)
                         {
-                            if (b > 0) buffer[mx++] = b;
+                            icn++;
+                        }
+                        else 
+                        {
+                            break;
                         }
                     }
-
-                    #region 在这里要数一下buffer里面的数据,看下结束符的byte值是多少,每个秤都确定好之后,就删除这个即可
-                    int m = 0;
-                    string strX = "[";
-                    for (int i = 0; i < buffer.Length; i++)
+                    if (icn != buffer.Length) //没有12个长度则继续接收直到满12个长度
                     {
-                        if (buffer[i] > 0)
+                        for (int i = 0; i < n; i++)
                         {
-                            m++;
-                            strX += $"{buffer[i]} ";
+                            if (icn < buffer.Length)
+                            {
+                                buffer[icn++] = buffers[i];
+                                iGet++;
+                            }
+                            else break;
                         }
                     }
-                    strX += "][";
-                    strX += Encoding.UTF8.GetString(buffer, 0, m);
-                    strX += "]";
-                    //string strx = Encoding.UTF8.GetString(buffer, 0, m);
-                    //在这里要数一下buffer里面的数据,看下结束符的byte值是多少
-                    //textBox1.Invoke(new Action(() => {
-                    //    textBox1.Text += strX;
-                    //}));
-                    #endregion
-
+                    if (icn == buffer.Length)
+                    {
+                        if (AppConfigCache.isFz == "true")
+                        {
+                            byte[] bf = buffer.Reverse().ToArray();
+                            int mx = 0;
+                            foreach (byte b in bf)
+                            {
+                                if (b > 0) buffer[mx++] = b;
+                            }
+                        }
 
-                    byte[] bt = new byte[AppConfigCache.messageLength];
 
-                    int iLast = 0, iCnt = 0;
-                    for (int i = n - 1; i > -1; i--)
-                    {
-                        //byte字节里面都是数值       0-15          0-12
-                        if (iLast == 0 && buffer[i] == AppConfigCache.separate)//endStr
+                        int iLastNew = 0;
+                        byte[] btNew = new byte[btDbs.Length + buffer.Length];
+                        for (int i = 0; i < btDbs.Length; i++)
                         {
-                            iLast = i;
-                            bt[iCnt] = buffer[i];
+                            if (btDbs[i] != 0)
+                            {
+                                btNew[iLastNew++] = btDbs[i];
+                            }
                         }
-                        else if (iLast != 0)
+
+                        int bufferLast = 0;
+                        for (int i = 0; i < buffer.Length; i++)
                         {
-                            if (iCnt < AppConfigCache.messageLength - 1)
+                            if (buffer[i] == AppConfigCache.separate)
                             {
-                                bt[++iCnt] = buffer[i];
+                                bufferLast = i;
+                                break;
                             }
                             else
                             {
-                                break;
+                                btNew[iLastNew++] = buffer[i];
                             }
                         }
-                    }
-                    Array.Reverse(bt);
+                        for (int i = 0; i < btDbs.Length; i++)
+                        {
+                            btDbs[i] = 0;
+                        }
+
+                        for (int i = bufferLast; i < buffer.Length; i++)
+                        {
+                            btDbs[i - bufferLast] = buffer[i];
+                        }
 
-                    if (iCnt + 1 != AppConfigCache.messageLength) continue;
 
+                        byte[] bt = new byte[AppConfigCache.messageLength];
 
-                    byte[] btDb = new byte[AppConfigCache.dataLength];
-                    int iC = 0;
-                    for (int i = AppConfigCache.startPosition; i < (AppConfigCache.startPosition + AppConfigCache.dataLength); i++)
-                    {
-                        btDb[iC++] = bt[i - 1];
-                    }
+                        if (iLastNew == AppConfigCache.messageLength)
+                        {
+                            for (int i = 0; i < iLastNew; i++)
+                            {
+                                bt[i] = btNew[i];
+                            }
+                        }
 
-                    string str = Encoding.UTF8.GetString(btDb, 0, btDb.Length);
-                    int weight = Convert.ToInt32(str);
-                    CacleCls.weight = weight;
-                    CacleCls.weightFlag = "0";
-                    CacleCls.weightMsgInfo = "";
 
-                    if (CacleCls.weight <= AppConfigCache.undulateValue)
-                    {
-                        CacleCls.isWd = 2;
-                        lWeight.Clear();
-                    }
-                    else 
-                    {
-                        if (lWeight.Count == 0)
+                        if (iLastNew != AppConfigCache.messageLength) continue;
+
+                        #region 在这里要数一下buffer里面的数据,看下结束符的byte值是多少,每个秤都确定好之后,就删除这个即可
+                        /*
+                        int m = 0;
+                        string strX = "[";
+                        for (int i = 0; i < bt.Length; i++)
+                        {
+                            if (bt[i] > 0)
+                            {
+                                m++;
+                                strX += $"{bt[i]} ";
+                            }
+                        }
+                        strX += "]";
+                        string strx = Encoding.UTF8.GetString(bt, 0, bt.Length);
+                        Debug.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + strX);
+                        //Debug.WriteLine(strx);
+                        //*/
+                        #endregion
+
+
+                        byte[] btDb = new byte[AppConfigCache.dataLength];
+                        int iC = 0;
+                        for (int i = AppConfigCache.startPosition; i < (AppConfigCache.startPosition + AppConfigCache.dataLength); i++)
+                        {
+                            btDb[iC++] = bt[i - 1];
+                        }
+
+                        int weight = 0;
+
+                        string str = Encoding.UTF8.GetString(btDb, 0, btDb.Length);
+                        bool flag = int.TryParse(str, out weight);
+
+#if DEBUG
+                        #region 用于debug调试的代码
+                        /*
+                        if (itest> 100 && itest < 300)
+                        {
+                            weight = 28500;
+                            itest++;
+                        }
+                        else if (itest < 500)
+                        {
+                            weight = 28500;
+                            itest++;
+                        }
+                        else 
                         {
-                            lWeight.Add(weight);
-                            CacleCls.isWd = 0;
+                            itest = 0;
                         }
-                        else if (Math.Abs(weight - lWeight[0]) > AppConfigCache.undulateValue)
+
+                        CacleCls.voicCarNo = "湘G88888";
+                        //*/
+                        #endregion
+#endif
+
+                        CacleCls.weight = weight;
+                        CacleCls.weightFlag = "0";
+                        CacleCls.weightMsgInfo = "";
+
+                        if (CacleCls.weight <= AppConfigCache.undulateValue)
                         {
+                            CacleCls.isWd = 2;
                             lWeight.Clear();
-                            lWeight.Add(weight);
-                            CacleCls.isWd = 1;
                         }
-                        else if (lWeight.Count < AppConfigCache.undulateCount)
+                        else
+                        {
+                            if (lWeight.Count == 0)
+                            {
+                                lWeight.Add(weight);
+                                CacleCls.isWd = 1;
+                            }
+                            else if (Math.Abs(weight - lWeight[0]) > AppConfigCache.undulateValue)
+                            {
+                                lWeight.Clear();
+                                lWeight.Add(weight);
+                                CacleCls.isWd = 1;
+                            }
+                            else if (lWeight.Count < AppConfigCache.undulateCount)
+                            {
+                                lWeight.Add(weight);
+                            }
+                            else
+                            {
+                                CacleCls.isWd = 0;
+                            }
+                        }
+
+                        if (Math.Abs(weight) > 0)
                         {
-                            lWeight.Add(weight);
+                            if (Math.Abs(weight) <= AppConfigCache.minValue)
+                            {
+                                if (isLd < 4) isLd++; //连续4次采集到不为0,且满足零点最小绝对值
+                                if (isLd == 4) CacleCls.isZeroState = true;
+                            }
                         }
                         else
                         {
-                            CacleCls.isWd = 0;
+                            CacleCls.isZeroState = false;
+                            isLd = 0;
                         }
-                    }
 
-                    if (Math.Abs(weight) > 0)
-                    {
-                        if (Math.Abs(weight) <= AppConfigCache.minValue)
+
+                        for (int i = 0; i < buffer.Length; i++)
                         {
-                            if (isLd < 4) isLd++; //连续4次采集到不为0,且满足零点最小绝对值
-                            if (isLd == 4) CacleCls.isZeroState = true;
+                            buffer[i] = 0;
                         }
-                    }
-                    else 
-                    {
-                        CacleCls.isZeroState = false;
-                        isLd = 0;
-                    }
-                    
 
+                        if (iGet < n)
+                        {
+                            for (int i = 0; i < n - iGet; i++)
+                            {
+                                buffer[i] = buffers[iGet + i];
+                            }
+                        }
+                    }
                 }
                 catch (Exception ex)
                 {
+                    lg.WriteLog(LogType.MoxaLog, "Moxa采集异常:" + ex.Message);
                     CacleCls.isWd = CacleCls.isWd == 0 ? 1 : CacleCls.isWd;
                     CacleCls.weightFlag = "1";
                     CacleCls.weightMsgInfo = "Moxa采集异常:" + ex.Message;
                 }
                 finally
                 {
-                    Thread.Sleep(AppConfigCache.sleepTime);
+                    //Thread.Sleep(100);
                 }
             }
         }

+ 135 - 0
CarLocalMeter/OptionCls/PingNetwork.cs

@@ -0,0 +1,135 @@
+using com.hnshituo.core.webapp.vo;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Net.NetworkInformation;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace CarLocalMeter
+{
+    public class PingNetwork
+    {
+        Log lg = Log.GetInstance();
+        private bool blThreadFlag = true;
+        Thread DataCollectThread = null;//采集进程
+        string dbFile = Path.Combine(AppConfigCache.path, "data/rfidDb.data");
+        MeterBaseRfidInfoService rfidServer = new MeterBaseRfidInfoService();
+
+        public PingNetwork() 
+        {
+            DataCollectThread = new Thread(new ThreadStart(DataCollect));
+        }
+
+        public void start()
+        {
+            DataCollectThread.Start();
+        }
+
+        public void stop() 
+        {
+            blThreadFlag = false;
+        }
+
+        private void DataCollect() 
+        {
+            if (!blThreadFlag) return;
+
+            while (blThreadFlag) 
+            {
+                try
+                {
+                    Ping pingSend = new Ping();
+                    PingReply reply = pingSend.Send(AppConfigCache.ServiceIp, 1000);
+                    if (reply.Status == IPStatus.Success)
+                        CacleCls.serverFlag = true;
+                    else
+                        CacleCls.serverFlag = false;
+                }
+                catch (Exception)
+                {
+                    CacleCls.serverFlag = false;
+                }
+                finally
+                {
+                    if (CacleCls.serverFlag)
+                    {
+                        if (CacleCls.weight < 500 && DateTime.Now > CacleCls.updateRfidInfoTime)
+                        {
+                            CacleCls.updateRfidInfoTime.Value.AddHours(1); //每隔一小时更新一次rfid数据
+
+                            Dictionary<string, string> rfidInfo = new Dictionary<string, string>();
+                            RESTfulResult<List<MeterBaseRfidInfo>> rfids = rfidServer.doQueryRfid(new MeterBaseRfidInfo { valueFlag = "0" });
+                            if (rfids.Succeed)
+                            {
+                                if (rfids.Data != null && rfids.Data.Count > 0)
+                                {
+                                    StringBuilder sb = new StringBuilder();
+                                    foreach (MeterBaseRfidInfo rfid in rfids.Data)
+                                    {
+                                        try
+                                        {
+                                            sb.AppendLine($"{rfid.rfidCode},{rfid.carNo}");
+                                            rfidInfo.Add(rfid.rfidCode, rfid.carNo);
+                                        }
+                                        catch { }
+                                    }
+                                    try
+                                    {
+                                        //如果目标文件存在则覆盖,不存在则创建
+                                        File.WriteAllText(dbFile, sb.ToString());
+                                    }
+                                    catch (Exception ex)
+                                    {
+                                        lg.WriteLog(LogType.SystemLog, "写入rfid数据到本地失败:" + ex.Message);
+                                    }
+                                    CacleCls.rifdInfo = rfidInfo;
+                                }
+                            }
+                            else
+                            {
+                                lg.WriteLog(LogType.serverLog, $"获取RFID信息失败:{rfids.Message}");
+                            }
+                        }
+                    }
+                    else
+                    {
+                        if (CacleCls.rifdInfo == null || CacleCls.rifdInfo.Count == 0)
+                        {
+                            //读取本地rfid数据文件
+                            try
+                            {
+                                if (File.Exists(dbFile))
+                                {
+                                    Dictionary<string, string> rfidInfo = new Dictionary<string, string>();
+                                    string[] strs = File.ReadAllLines(dbFile);
+                                    foreach (string str in strs)
+                                    {
+                                        try
+                                        {
+                                            string[] strInfo = str.Split(',');
+                                            if (strInfo.Length == 2)
+                                            {
+                                                rfidInfo.Add(strInfo[0], strInfo[1]);
+                                            }
+                                        }
+                                        catch { }
+                                    }
+                                    CacleCls.rifdInfo = rfidInfo;
+                                }
+                            }
+                            catch (Exception ex)
+                            {
+                                lg.WriteLog(LogType.WriteDbLog, "写入信息失败:" + ex.Message);
+                            }
+                        }
+                    }
+
+                    Thread.Sleep(1000); //1秒ping一次网络
+                }
+            }
+        }
+    }
+}

+ 4 - 3
CarLocalMeter/OptionCls/PlcCls.cs

@@ -112,15 +112,16 @@ namespace CarLocalMeter
             }
         }
 
-        public void Stop() 
+        public void Stop()
         {
             try
             {
                 blThreadFlag = false;
-                master.Dispose();
+                if (master != null)
+                    master.Dispose();
             }
             catch { }
-            
+
         }
 
         #region 数据采集

+ 16 - 4
CarLocalMeter/OptionCls/Voice/VoicePlay.cs

@@ -17,7 +17,7 @@ namespace CarLocalMeter
         /// </summary>
         /// <param name="strvoiceName"></param>
         /// <param name="strPntName">车牌号</param>
-        public void GetVoicePlay(string strvoiceName, string strCarNo)
+        public void GetVoicePlay(VoiceEnum strvoiceName, string strCarNo)
         {
             try
             {
@@ -26,7 +26,7 @@ namespace CarLocalMeter
                 bool isHaveVoice = false;
                 foreach (string str in CacleCls.voiceInfo)
                 {
-                    if (strvoiceName == str)
+                    if (strvoiceName.ToString() == str)
                     {
                         isHaveVoice = true;
                         break;
@@ -39,8 +39,7 @@ namespace CarLocalMeter
                 CacleCls.voiceOver = false;
 
                 WriteLog("车牌号:" + strCarNo + " 语音播放:" + strvoiceName);
-                strvoiceName = strvoiceName + ".wav";
-                string path = m_szRunPath + "\\Sound\\" + strvoiceName;
+                string path = $"{m_szRunPath}\\Sound\\{strvoiceName}.wav";
                 int intVmci = vmciClass.VoicePlay(path);
                 WriteLog("车牌号:" + strCarNo + " 语音播放结果( -1语音播放失败 0无音频设备 1语音播放成功 2语音播放结束):" + intVmci);
             }
@@ -76,4 +75,17 @@ namespace CarLocalMeter
             tw.Close();
         }
     }
+
+    public enum VoiceEnum 
+    { 
+        车辆未停到位,
+        开始计量,
+        车辆超重,
+        计量完成,
+        洁净重量过小,
+        仪表未归零,
+        两次计量重量接近,
+        车号未识别,
+        程序处理异常
+    }
 }

+ 7 - 1
CarLocalMeter/PbCls/AppConfigCache.cs

@@ -190,10 +190,16 @@ namespace CarLocalMeter
         public static string plcLocationNameHMI = ConfigurationManager.AppSettings["plcLocationNameHMI"].ToString();
 
         /// <summary>
-        /// moxa采集休眠时长
+        /// moxa、plc采集休眠时长
         /// </summary>
         public static int sleepTime = Convert.ToInt32(ConfigurationManager.AppSettings["sleepTime"].ToString());
 
+        /// <summary>
+        /// 数据上传休眠时间
+        /// </summary>
+        public static int sleepUploadTime = Convert.ToInt32(ConfigurationManager.AppSettings["sleepUploadTime"].ToString());
+        
+
         /// <summary>
         /// 
         /// </summary>

+ 4 - 3
CarLocalMeter/PbCls/FileOption.cs

@@ -51,10 +51,10 @@ namespace CarLocalMeter
         /// <param name="readFlag"></param>
         /// <param name="msgInfo"></param>
         /// <returns></returns>
-        public static List<MeterWorkCarActualFirst> ReadDb(ref bool readFlag, ref string msgInfo)
+        public static List<T> ReadDb<T>(ref bool readFlag, ref string msgInfo)
         {
             Log lg = Log.GetInstance();
-            List<MeterWorkCarActualFirst> list = new List<MeterWorkCarActualFirst>();
+            List<T> list = new List<T>();
 
             try
             {
@@ -63,9 +63,10 @@ namespace CarLocalMeter
                     string[] strs = File.ReadAllLines(dbFile);
                     foreach (string str in strs) 
                     {
-                        MeterWorkCarActualFirst first = JsonConvert.DeserializeObject<MeterWorkCarActualFirst>(str);
+                        T first = JsonConvert.DeserializeObject<T>(str);
                         list.Add(first);
                     }
+                    if (list.Count > 0) readFlag = true;
                 }
             }
             catch (Exception ex)

+ 14 - 6
CarLocalMeter/PbCls/ImageOption.cs

@@ -77,7 +77,7 @@ namespace CarLocalMeter
             try 
             {
                 string oldTempImgId = CacleCls.tempNo, oldActualFirstNo = CacleCls.actualNo;
-                ArrayList UnzipedFiles = GetFiles(sPath + "tempImg", ".jpg");//tmp!
+                ArrayList UnzipedFiles = GetFiles(sPath + "formalImg", ".jpg");//tmp!
                 if (UnzipedFiles == null || UnzipedFiles.Count == 0) return;
                 foreach (string fn in UnzipedFiles)
                 {
@@ -117,7 +117,7 @@ namespace CarLocalMeter
         {
             try
             {
-                ArrayList UnzipedFiles = GetFiles(sPath + "tempImg", ".jpg");//tmp!
+                ArrayList UnzipedFiles = GetFiles(sPath + "formalImg", ".jpg");//tmp!
                 if (UnzipedFiles == null || UnzipedFiles.Count == 0) return;
                 bool flag = false;
                 string jpgFile = "";
@@ -134,7 +134,7 @@ namespace CarLocalMeter
                         {
                             if (fn.Contains(kvp.Key))
                             {
-                                jpgFile.Replace(kvp.Key, kvp.Value);
+                                jpgFile = jpgFile.Replace(kvp.Key, kvp.Value);
                                 flag = true;
                                 break;
                             }
@@ -152,7 +152,7 @@ namespace CarLocalMeter
                             }
                             File.Delete(fn);//删除临时目录数据
                         }
-                        //* //这里有个问题在于,假如网络正常的时候正好过磅了,可能导致过磅图片也被移送到bakImg,所以这里需在计量未锁定(车以下磅,且名称与计量的图片编号不一致的时候,移送)
+                        /* //这里有个问题在于,假如网络正常的时候正好过磅了,可能导致过磅图片也被移送到bakImg,所以这里需在计量未锁定(车以下磅,且名称与计量的图片编号不一致的时候,移送)
                         else if (!fn.Contains(CacleCls.tempNo) && !CacleCls.isLock)
                         {
                             //将文件移送到bakImg文件夹
@@ -180,11 +180,19 @@ namespace CarLocalMeter
             {
                 foreach (FileInfo fi in fileinfos)
                 {
-                    files.Add(fi.FullName);
+                    if (fi.CreationTime.AddMinutes(5) < DateTime.Now && fi.Name.Contains("tempImg"))
+                    {
+                        //如果5分钟了还没上传,则认为不需要上传了
+                        fi.MoveTo(fi.FullName.Replace("formalImg", "bakImg"));
+                    }
+                    else
+                    {
+                        files.Add(fi.FullName);
+                    }
                 }
             }
 
-            DirectoryInfo[] dirInfos = theFolder.GetDirectories();
+            DirectoryInfo[] dirInfos = theFolder.GetDirectories();//返回当前目录的子目录
             if (dirInfos != null && dirInfos.Count() > 0)
             {
                 foreach (DirectoryInfo di in dirInfos)

+ 1 - 0
CarLocalMeter/Program.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.IO;
 using System.Linq;
 using System.Threading.Tasks;
 using System.Windows.Forms;

+ 14 - 198
CarLocalMeter/frmMain.Designer.cs

@@ -29,7 +29,6 @@ namespace CarLocalMeter
         /// </summary>
         private void InitializeComponent()
         {
-            this.components = new System.ComponentModel.Container();
             Infragistics.Win.UltraWinGrid.UltraGridBand ultraGridBand1 = new Infragistics.Win.UltraWinGrid.UltraGridBand("一次计量数据", -1);
             Infragistics.Win.UltraWinGrid.UltraGridColumn ultraGridColumn1 = new Infragistics.Win.UltraWinGrid.UltraGridColumn("actualFirstNo");
             Infragistics.Win.UltraWinGrid.UltraGridColumn ultraGridColumn2 = new Infragistics.Win.UltraWinGrid.UltraGridColumn("carNo");
@@ -54,32 +53,9 @@ namespace CarLocalMeter
             this.dataColumn194 = new System.Data.DataColumn();
             this.dataColumn195 = new System.Data.DataColumn();
             this.ultraTabSharedControlsPage1 = new Infragistics.Win.UltraWinTabControl.UltraTabSharedControlsPage();
-            this.dataSet2 = new System.Data.DataSet();
-            this.dataTableSJ = new System.Data.DataTable();
-            this.dataColumn1 = new System.Data.DataColumn();
-            this.dataColumn2 = new System.Data.DataColumn();
-            this.dataColumn4 = new System.Data.DataColumn();
-            this.dataColumn7 = new System.Data.DataColumn();
-            this.dataColumn13 = new System.Data.DataColumn();
-            this.dataColumn15 = new System.Data.DataColumn();
-            this.dataColumn30 = new System.Data.DataColumn();
-            this.dataColumn31 = new System.Data.DataColumn();
-            this.dataColumn34 = new System.Data.DataColumn();
-            this.dataColumn35 = new System.Data.DataColumn();
-            this.dataColumn36 = new System.Data.DataColumn();
-            this.dataColumn41 = new System.Data.DataColumn();
-            this.dataColumn42 = new System.Data.DataColumn();
-            this.dataColumn45 = new System.Data.DataColumn();
-            this.dataColumn46 = new System.Data.DataColumn();
-            this.dataColumn47 = new System.Data.DataColumn();
-            this.dataColumn51 = new System.Data.DataColumn();
-            this.dataColumn55 = new System.Data.DataColumn();
-            this.dataColumn56 = new System.Data.DataColumn();
-            this.dataColumn57 = new System.Data.DataColumn();
             this.panel1 = new System.Windows.Forms.Panel();
             this.plImgShow = new System.Windows.Forms.Panel();
             this.pictureShow = new System.Windows.Forms.PictureBox();
-            this.timer1 = new System.Windows.Forms.Timer(this.components);
             this.panel3 = new System.Windows.Forms.Panel();
             this.uTab = new Infragistics.Win.UltraWinTabControl.UltraTabControl();
             this.ultraTabSharedControlsPage2 = new Infragistics.Win.UltraWinTabControl.UltraTabSharedControlsPage();
@@ -132,8 +108,6 @@ namespace CarLocalMeter
             ((System.ComponentModel.ISupportInitialize)(this.ultraGridFirst)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.dataSetFirst)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.dataTableFirst)).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)(this.dataSet2)).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)(this.dataTableSJ)).BeginInit();
             this.plImgShow.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.pictureShow)).BeginInit();
             this.panel3.SuspendLayout();
@@ -171,7 +145,7 @@ namespace CarLocalMeter
             this.ultraGridFirst.DataMember = "一次计量数据";
             this.ultraGridFirst.DataSource = this.dataSetFirst;
             ultraGridColumn1.Header.VisiblePosition = 0;
-            ultraGridColumn1.RowLayoutColumnInfo.OriginX = 2;
+            ultraGridColumn1.RowLayoutColumnInfo.OriginX = 8;
             ultraGridColumn1.RowLayoutColumnInfo.OriginY = 0;
             ultraGridColumn1.RowLayoutColumnInfo.SpanX = 2;
             ultraGridColumn1.RowLayoutColumnInfo.SpanY = 2;
@@ -191,7 +165,10 @@ namespace CarLocalMeter
             ultraGridColumn4.RowLayoutColumnInfo.SpanX = 2;
             ultraGridColumn4.RowLayoutColumnInfo.SpanY = 2;
             ultraGridColumn5.Header.VisiblePosition = 4;
-            ultraGridColumn5.Hidden = true;
+            ultraGridColumn5.RowLayoutColumnInfo.OriginX = 10;
+            ultraGridColumn5.RowLayoutColumnInfo.OriginY = 0;
+            ultraGridColumn5.RowLayoutColumnInfo.SpanX = 2;
+            ultraGridColumn5.RowLayoutColumnInfo.SpanY = 2;
             ultraGridColumn6.Header.VisiblePosition = 5;
             ultraGridColumn6.RowLayoutColumnInfo.OriginX = 0;
             ultraGridColumn6.RowLayoutColumnInfo.OriginY = 0;
@@ -252,7 +229,7 @@ namespace CarLocalMeter
             // 
             // dataColumn69
             // 
-            this.dataColumn69.Caption = "结净编号";
+            this.dataColumn69.Caption = "计量编号";
             this.dataColumn69.ColumnName = "actualFirstNo";
             // 
             // dataColumn162
@@ -287,137 +264,6 @@ namespace CarLocalMeter
             this.ultraTabSharedControlsPage1.Name = "ultraTabSharedControlsPage1";
             this.ultraTabSharedControlsPage1.Size = new System.Drawing.Size(853, 583);
             // 
-            // dataSet2
-            // 
-            this.dataSet2.DataSetName = "NewDataSet";
-            this.dataSet2.Tables.AddRange(new System.Data.DataTable[] {
-            this.dataTableSJ});
-            // 
-            // dataTableSJ
-            // 
-            this.dataTableSJ.Columns.AddRange(new System.Data.DataColumn[] {
-            this.dataColumn1,
-            this.dataColumn2,
-            this.dataColumn4,
-            this.dataColumn7,
-            this.dataColumn13,
-            this.dataColumn15,
-            this.dataColumn30,
-            this.dataColumn31,
-            this.dataColumn34,
-            this.dataColumn35,
-            this.dataColumn36,
-            this.dataColumn41,
-            this.dataColumn42,
-            this.dataColumn45,
-            this.dataColumn46,
-            this.dataColumn47,
-            this.dataColumn51,
-            this.dataColumn55,
-            this.dataColumn56,
-            this.dataColumn57});
-            this.dataTableSJ.TableName = "计量实绩";
-            // 
-            // dataColumn1
-            // 
-            this.dataColumn1.Caption = "结净编号";
-            this.dataColumn1.ColumnName = "actualNo";
-            // 
-            // dataColumn2
-            // 
-            this.dataColumn2.Caption = "预报编号";
-            this.dataColumn2.ColumnName = "predictionNo";
-            // 
-            // dataColumn4
-            // 
-            this.dataColumn4.Caption = "车号";
-            this.dataColumn4.ColumnName = "carNo";
-            // 
-            // dataColumn7
-            // 
-            this.dataColumn7.Caption = "物料名称";
-            this.dataColumn7.ColumnName = "matterName";
-            // 
-            // dataColumn13
-            // 
-            this.dataColumn13.Caption = "发货单位名称";
-            this.dataColumn13.ColumnName = "forwardingUnitName";
-            // 
-            // dataColumn15
-            // 
-            this.dataColumn15.Caption = "收货单位名称";
-            this.dataColumn15.ColumnName = "receivingUintName";
-            // 
-            // dataColumn30
-            // 
-            this.dataColumn30.Caption = "毛重计量作业编号";
-            this.dataColumn30.ColumnName = "actualFirst1No";
-            // 
-            // dataColumn31
-            // 
-            this.dataColumn31.Caption = "毛重";
-            this.dataColumn31.ColumnName = "grossWeight";
-            // 
-            // dataColumn34
-            // 
-            this.dataColumn34.Caption = "毛重计量时间";
-            this.dataColumn34.ColumnName = "grossTime";
-            // 
-            // dataColumn35
-            // 
-            this.dataColumn35.Caption = "毛重计量点编号";
-            this.dataColumn35.ColumnName = "baseSpot1No";
-            // 
-            // dataColumn36
-            // 
-            this.dataColumn36.Caption = "毛重计量点名称";
-            this.dataColumn36.ColumnName = "baseSpot1Name";
-            // 
-            // dataColumn41
-            // 
-            this.dataColumn41.Caption = "皮重计量作业编号";
-            this.dataColumn41.ColumnName = "actualFirst2No";
-            // 
-            // dataColumn42
-            // 
-            this.dataColumn42.Caption = "皮重";
-            this.dataColumn42.ColumnName = "tareWeight";
-            // 
-            // dataColumn45
-            // 
-            this.dataColumn45.Caption = "皮重计量时间";
-            this.dataColumn45.ColumnName = "tareTime";
-            // 
-            // dataColumn46
-            // 
-            this.dataColumn46.Caption = "皮重计量点编号";
-            this.dataColumn46.ColumnName = "baseSpot2No";
-            // 
-            // dataColumn47
-            // 
-            this.dataColumn47.Caption = "皮重计量点名称";
-            this.dataColumn47.ColumnName = "baseSpot2Name";
-            // 
-            // dataColumn51
-            // 
-            this.dataColumn51.Caption = "净重";
-            this.dataColumn51.ColumnName = "netWeight";
-            // 
-            // dataColumn55
-            // 
-            this.dataColumn55.Caption = "净重计量时间";
-            this.dataColumn55.ColumnName = "netTime";
-            // 
-            // dataColumn56
-            // 
-            this.dataColumn56.Caption = "净重计量点编号";
-            this.dataColumn56.ColumnName = "netSpot3No";
-            // 
-            // dataColumn57
-            // 
-            this.dataColumn57.Caption = "净重计量点名称";
-            this.dataColumn57.ColumnName = "netSpot3Name";
-            // 
             // panel1
             // 
             this.panel1.AutoScroll = true;
@@ -452,12 +298,6 @@ namespace CarLocalMeter
             this.pictureShow.TabStop = false;
             this.pictureShow.DoubleClick += new System.EventHandler(this.pictureShow_DoubleClick);
             // 
-            // timer1
-            // 
-            this.timer1.Enabled = true;
-            this.timer1.Interval = 1000;
-            this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
-            // 
             // panel3
             // 
             this.panel3.AutoScroll = true;
@@ -994,7 +834,7 @@ namespace CarLocalMeter
             this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 90F));
             this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 222F));
             this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 50F));
-            this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 57F));
+            this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 63F));
             this.tableLayoutPanel7.Controls.Add(this.label1, 5, 0);
             this.tableLayoutPanel7.Controls.Add(this.txtCarNo, 4, 0);
             this.tableLayoutPanel7.Controls.Add(this.cbCarNo, 3, 0);
@@ -1018,7 +858,7 @@ namespace CarLocalMeter
             this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
             this.label1.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.label1.ForeColor = System.Drawing.Color.Blue;
-            this.label1.Location = new System.Drawing.Point(748, 1);
+            this.label1.Location = new System.Drawing.Point(742, 1);
             this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.label1.Name = "label1";
             this.label1.Size = new System.Drawing.Size(42, 36);
@@ -1030,12 +870,13 @@ namespace CarLocalMeter
             // 
             this.txtCarNo.Dock = System.Windows.Forms.DockStyle.Fill;
             this.txtCarNo.Font = new System.Drawing.Font("宋体", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.txtCarNo.Location = new System.Drawing.Point(524, 3);
+            this.txtCarNo.Location = new System.Drawing.Point(518, 3);
             this.txtCarNo.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
             this.txtCarNo.Name = "txtCarNo";
             this.txtCarNo.Size = new System.Drawing.Size(216, 32);
             this.txtCarNo.TabIndex = 81;
             this.txtCarNo.TextChanged += new System.EventHandler(this.txtCarNo_TextChanged);
+            this.txtCarNo.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtCarNo_KeyDown);
             // 
             // cbCarNo
             // 
@@ -1077,7 +918,7 @@ namespace CarLocalMeter
             "琼",
             "京",
             "津"});
-            this.cbCarNo.Location = new System.Drawing.Point(433, 3);
+            this.cbCarNo.Location = new System.Drawing.Point(427, 3);
             this.cbCarNo.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
             this.cbCarNo.Name = "cbCarNo";
             this.cbCarNo.Size = new System.Drawing.Size(84, 31);
@@ -1094,7 +935,7 @@ namespace CarLocalMeter
             this.lbPointName.Location = new System.Drawing.Point(86, 1);
             this.lbPointName.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.lbPointName.Name = "lbPointName";
-            this.lbPointName.Size = new System.Drawing.Size(278, 36);
+            this.lbPointName.Size = new System.Drawing.Size(272, 36);
             this.lbPointName.TabIndex = 3;
             this.lbPointName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
             // 
@@ -1120,7 +961,7 @@ namespace CarLocalMeter
             this.label2.Dock = System.Windows.Forms.DockStyle.Fill;
             this.label2.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.label2.ForeColor = System.Drawing.Color.Blue;
-            this.label2.Location = new System.Drawing.Point(373, 1);
+            this.label2.Location = new System.Drawing.Point(367, 1);
             this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.label2.Name = "label2";
             this.label2.Size = new System.Drawing.Size(52, 36);
@@ -1131,7 +972,7 @@ namespace CarLocalMeter
             // pbLineOn
             // 
             this.pbLineOn.Image = ((System.Drawing.Image)(resources.GetObject("pbLineOn.Image")));
-            this.pbLineOn.Location = new System.Drawing.Point(798, 4);
+            this.pbLineOn.Location = new System.Drawing.Point(792, 4);
             this.pbLineOn.Name = "pbLineOn";
             this.pbLineOn.Size = new System.Drawing.Size(39, 30);
             this.pbLineOn.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
@@ -1156,8 +997,6 @@ namespace CarLocalMeter
             ((System.ComponentModel.ISupportInitialize)(this.ultraGridFirst)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.dataSetFirst)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.dataTableFirst)).EndInit();
-            ((System.ComponentModel.ISupportInitialize)(this.dataSet2)).EndInit();
-            ((System.ComponentModel.ISupportInitialize)(this.dataTableSJ)).EndInit();
             this.plImgShow.ResumeLayout(false);
             ((System.ComponentModel.ISupportInitialize)(this.pictureShow)).EndInit();
             this.panel3.ResumeLayout(false);
@@ -1197,31 +1036,8 @@ namespace CarLocalMeter
         private System.Data.DataColumn dataColumn193;
         private System.Data.DataColumn dataColumn194;
         private System.Data.DataColumn dataColumn195;
-        private System.Data.DataSet dataSet2;
-        private System.Data.DataTable dataTableSJ;
-        private System.Data.DataColumn dataColumn1;
-        private System.Data.DataColumn dataColumn2;
-        private System.Data.DataColumn dataColumn4;
-        private System.Data.DataColumn dataColumn7;
-        private System.Data.DataColumn dataColumn13;
-        private System.Data.DataColumn dataColumn15;
-        private System.Data.DataColumn dataColumn30;
-        private System.Data.DataColumn dataColumn31;
-        private System.Data.DataColumn dataColumn34;
-        private System.Data.DataColumn dataColumn35;
-        private System.Data.DataColumn dataColumn36;
-        private System.Data.DataColumn dataColumn41;
-        private System.Data.DataColumn dataColumn42;
-        private System.Data.DataColumn dataColumn45;
-        private System.Data.DataColumn dataColumn46;
-        private System.Data.DataColumn dataColumn47;
-        private System.Data.DataColumn dataColumn51;
-        private System.Data.DataColumn dataColumn55;
-        private System.Data.DataColumn dataColumn56;
-        private System.Data.DataColumn dataColumn57;
         private System.Windows.Forms.Panel plImgShow;
         private System.Windows.Forms.PictureBox pictureShow;
-        private System.Windows.Forms.Timer timer1;
         private System.Windows.Forms.Panel panel3;
         private Infragistics.Win.UltraWinTabControl.UltraTabControl uTab;
         private Infragistics.Win.UltraWinTabControl.UltraTabSharedControlsPage ultraTabSharedControlsPage1;

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 394 - 438
CarLocalMeter/frmMain.cs


+ 0 - 6
CarLocalMeter/frmMain.resx

@@ -120,12 +120,6 @@
   <metadata name="dataSetFirst.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>
-  <metadata name="dataSet2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>198, 15</value>
-  </metadata>
-  <metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>302, 15</value>
-  </metadata>
   <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   <data name="picHRed.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.