瀏覽代碼

winfrom提交

duyong 4 年之前
父節點
當前提交
6be2bf21d7

+ 1 - 1
CarMeterSystem/App.config

@@ -34,7 +34,7 @@
 		<add key="lianDaPointNo" value="00019" />
     
     <!--期限皮使用方式配置:车号-物料-路线(1),车号-物料-称点(2),车号-物料(3)-->
-    <add key="TareControlType" value="1" />
+    <add key="TareControlType" value="3" />
 
     <!--厂内外车配置:001004003(内部),001004002(外部)-->
     <add key="carTypeNo" value="001004003" />

+ 2 - 2
Common/DbOption/work/MeterWorkCarActualService.cs

@@ -151,8 +151,8 @@ namespace Common
         {
             DbHelper db = new DbHelper();
             PbSomeModel<MeterWorkCarActualFirst, MeterWorkCarActualFirst, PreTrackScale, MeterMonitorNote> pbSomeModel = new PbSomeModel<MeterWorkCarActualFirst, MeterWorkCarActualFirst, PreTrackScale, MeterMonitorNote>();
-            pbSomeModel.one = actualFirst1;
-            pbSomeModel.two = actualFirst;
+            pbSomeModel.one = actualFirst;
+            pbSomeModel.two = actualFirst1;
             pbSomeModel.three = scale;
 
             if (actualFirst1 != null && string.IsNullOrEmpty(actualFirst1.createManNo))

+ 5 - 0
Common/vo/work/MeterWorkRailwayRecMain.cs

@@ -54,5 +54,10 @@ namespace Common
 		/// 方向
 		/// <summary>
 		public string trackWay { get; set; }
+
+		/// <summary>
+		/// 方向
+		/// <summary>
+		public string railwayNo { get; set; }
 	}
 }

+ 8 - 8
MeterSceneLibrary/JISCO/InnerCarJISCO.cs

@@ -256,7 +256,7 @@ namespace MeterSceneLibrary
                                                     }
                                                     else
                                                     {
-                                                        if (tareUnitResult.Data[0].caoNo != "" && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
+                                                        if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
                                                         {
                                                             mwaf.weightType = "0";
                                                             // 只保存一次计量数据
@@ -375,7 +375,7 @@ namespace MeterSceneLibrary
                                                     }
                                                     else
                                                     {
-                                                        if (tareUnitResult.Data[0].caoNo != "" && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
+                                                        if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
                                                         {
                                                             mwaf.weightType = "0";
                                                             // 只保存一次计量数据
@@ -597,7 +597,7 @@ namespace MeterSceneLibrary
                                                             }
                                                             else
                                                             {
-                                                                if (tareUnitResult.Data[0].caoNo != "" && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
+                                                                if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
                                                                 {
                                                                     mwaf.weightType = "0";
                                                                     rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
@@ -737,7 +737,7 @@ namespace MeterSceneLibrary
                                                             }
                                                             else
                                                             {
-                                                                if (tareUnitResult.Data[0].caoNo != "" && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
+                                                                if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
                                                                 {
                                                                     mwaf.weightType = "0";
                                                                     rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
@@ -891,7 +891,7 @@ namespace MeterSceneLibrary
                                                             }
                                                             else
                                                             {
-                                                                if (tareUnitResult.Data[0].caoNo != "" && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
+                                                                if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
                                                                 {
                                                                     // 正常结净
                                                                     //给一次数据匹配委托
@@ -1049,7 +1049,7 @@ namespace MeterSceneLibrary
                                                             }
                                                             else
                                                             {
-                                                                if (tareUnitResult.Data[0].caoNo != "" && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
+                                                                if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
                                                                 {
                                                                     // 正常结净
                                                                     //给一次数据匹配委托
@@ -1327,7 +1327,7 @@ namespace MeterSceneLibrary
                                                         }
                                                         else
                                                         {
-                                                            if (tareUnitResult.Data[0].caoNo != "" && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
+                                                            if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
                                                             {
                                                                 //匹配结净
                                                                 EntityBase<PreTrackScale> entityBase2 = new EntityBase<PreTrackScale>();
@@ -1486,7 +1486,7 @@ namespace MeterSceneLibrary
                                                         }
                                                         else
                                                         {
-                                                            if (tareUnitResult.Data[0].caoNo != "" && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
+                                                            if (!string.IsNullOrEmpty(tareUnitResult.Data[0].caoNo) && tareUnitResult.Data[0].caoNo != PbCache.lockCarNo)
                                                             {
                                                                 //匹配结净
                                                                 EntityBase<PreTrackScale> entityBase2 = new EntityBase<PreTrackScale>();

+ 8 - 2
MeterSceneLibrary/JISCO/OuterCarJISCO.cs

@@ -329,6 +329,7 @@ namespace MeterSceneLibrary
                                             mwaf.isPreScale = "1";
                                             // 混装逻辑,并洁净匹配委托
                                             rt = saveMethod.doAddNetNewHZHX(listPreScale[0], newActualFirst, mwaf);
+                                            rt.resultInfo += ",混装业务";
                                         }
                                         else
                                         {
@@ -428,7 +429,7 @@ namespace MeterSceneLibrary
                             if (listPreScale.Count == 2 && !string.IsNullOrEmpty(listPreScale[0].receiverRemark) && !string.IsNullOrEmpty(listPreScale[1].receiverRemark) && listPreScale[0].tempConveyance == listPreScale[1].tempConveyance && !string.IsNullOrEmpty(listPreScale[0].tempConveyance) && !string.IsNullOrEmpty(listPreScale[1].tempConveyance))
                             {
                                 pre = listPreScale[1];
-                                res = ",混装";
+                                res = ",混装业务";
                                 PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,计量完成,混装", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2));
                             }
                             if (pre == null)
@@ -556,6 +557,7 @@ namespace MeterSceneLibrary
 
                                         rt = saveMethod.doNetHZHX(listPreScale[1], mwca, mwaf);
                                         PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmX.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
+                                        rt.resultInfo += ",混装业务";
                                     }
                                     // 不满足以上逻辑
                                     else
@@ -639,6 +641,10 @@ namespace MeterSceneLibrary
                                     if (flag)
                                     {
                                         pre = listPreScale[0];
+
+                                        EntityBase<PreTrackScale> entityBase = new EntityBase<PreTrackScale>();
+                                        mwaf = entityBase.format<MeterWorkCarActualFirst>(pre, mwaf);
+                                        mwaf.isPreScale = "1";
                                     }
                                     rt = saveMethod.doNet(pre, rmX.Data[0], mwaf);
                                     rt.isWarn = true;
@@ -732,7 +738,7 @@ namespace MeterSceneLibrary
                                         //mwaf.isPreScale = "1";
 
                                         rt = saveMethod.doNetHZHX(pts, mwca, mwaf);
-                                        rt.resultInfo += ",混装混卸";
+                                        rt.resultInfo += ",混装业务";
                                         PbCache.LEDResultMessage = string.Format("车号{0},重量{1}吨,净重{2}吨,计量完成", PbCache.lockCarNo, Math.Round((PbCache.lockWgt / 1000), 2), Math.Round((Math.Abs(rmX.Data[0].meterWeight.Value - PbCache.lockWgt) / 1000), 2));
                                     }
                                     // 不满足以上逻辑

+ 46 - 0
TrainVideoDataDispose/CHCNetSDK.cs

@@ -1160,6 +1160,8 @@ namespace NVRCsharpDemo
         public const int DS91XX_HD_S = 92; /*91XXHD-S(MD)*/
         /**********************设备类型 end***********************/
 
+        public const int NET_DVR_GET_TRAFFIC_DATA = 3141;
+
         /*************************************************
         参数配置结构、参数(其中_V30为9000新增)
         **************************************************/
@@ -14934,6 +14936,50 @@ namespace NVRCsharpDemo
         public const int ACCOUNTNUM_LEN = 6;
         public const int ACCOUNTNUM_LEN_32 = 32;
 
+        [StructLayoutAttribute(LayoutKind.Sequential)]
+        public struct NET_DVR_TRAFFIC_DATA_QUERY_COND
+        {
+            public uint dwSize;  //结构体大小 
+            public uint dwQueryCond;  
+            //查询条件,按位表示,取值:0- 无效,1- 有效,定义如下所示:
+            //bit0- 通道,bit1- 时间,bit2- 车牌号,bit3- 车牌类型,bit4- 车牌颜色,bit5- 车身颜色,bit6- 车辆类型,bit7- 车辆品牌,bit8- 车道号,bit9- 监测方向,bit10- 最低速度,bit11- 最高速度,bit12- 数据类型,bit13- 布控方式类型,bit14- 违法取bit15- 事件类型,bit16- 取证类型
+            public uint dwChannel;  //查询通道,按位表示,bit0表示数字通道01(通道号33),bit1表示数字通道02(通道号34),依次类推,取值:0- 无效,1- 有效
+            public NET_DVR_TIME_V30 struStartTime;  //开始时间
+            public NET_DVR_TIME_V30 struEndTime;  //结束时间
+            public char sLicense;  //车牌号码,支持模糊查询(通配符是“*”),GB2312编码
+            public uint dwPlateType;
+            //车牌类型,按位表示,支持复选,取值:0- 无效,1- 有效,定义如下所示:
+            //bit0- 未知(其他),bit1- 标准民用车与军车,bit2- 02式民用车牌,bit3- 武警车,bit4- 警车,bit5- 民用车双行尾牌,bit6- 使馆车牌,bit7- 农用车,bit8- 摩托车
+            public uint dwPlateColor;
+            //车牌颜色,按位表示,支持复选,取值:0- 无效,1- 有效,定义如下所示:
+            //bit0- 未知(其他),bit1- 黄色,bit2- 白色,bit3- 黑色,bit4- 绿色,bit5- 蓝色
+            public uint dwVehicleColor;
+            //车身颜色,按位表示,支持复选,取值:0- 无效,1- 有效,定义如下所示:
+            //it0- 未知(其他),bit1- 白色,bit2- 银色,bit3- 灰色,bit4- 黑色,bit5- 红色,bit6- 深蓝色,bit7- 蓝色,bit8- 黄色,bit9- 绿色,bit10- 棕色,bit11- 粉色,bit12- 紫色,bit13- 深灰色
+            public uint dwVehicleType;
+            //车辆类型,按位表示,支持复选,取值:0- 无效,1- 有效,定义如下所示:
+            //Bit0- 未知(其他),Bit1- 客车,Bit2- 大货车,Bit3- 轿车,Bit4- 面包车,Bit5- 小货车,Bit6- 行人,Bit7- 二轮车,Bit8- 三轮车,Bit9- SUV/MPV,Bit10- 中型客车
+            public uint dwIllegalType;
+            //违法类型,按位表示,支持复选,取值:0- 无效,1- 有效,定义如下所示:
+            //bit0- 其他(保留),bit1- 低速,bit2- 超速,bit3- 逆行,bit4- 闯红灯,bit5- 压车道线,bit6- 不按导向,bit7- 路口滞留,bit8- 机占非,bit9- 违法变道,bit10- 不按车道,bit11- 违反禁令,bit12- 路口停车,bit13- 绿灯停车,bit14- 未礼让行人,bit15- 违章停车,bit16- 违章掉头,bit17- 占用应急车道,bit18- 未系安全带
+            public uint dwEventType;
+            //事件类型,按位表示,支持复选,取值:0- 无效,1- 有效,定义如下所示:
+            //bit0- 其他(保留),bit1- 拥堵,bit2- 停车,bit3- 逆行,bit4- 行人,bit5- 抛洒物,bit6- 烟雾,bit7- 压线,bit8- 黑名单,bit9- 超速,bit10- 变道,bit11- 掉头,bit12- 机占非,bit13- 加塞
+            public uint dwForensiceType;
+            //取证类型,按位表示,支持复选,取值:0- 无效,1- 有效,定义如下所示:
+            //bit0- 其他(保留),bit1- 城市公路违法停车,bit2- 高速公路违法停车,bit3- 压线,bit4- 逆行,bit5- 违法变道,bit6- 机占非
+            public ushort wVehicleLogoRecog;//车辆主品牌(单选)
+            public byte byLaneNo;  //车道号(0~255,0表示车道号未知)
+            public byte byDirection;  //监测方向:1- 上行,2- 下行,3- 双向,4- 由东向西,5- 由南向北,6- 由西向东,7- 由北向南
+            public ushort wMinSpeed;  //最低速度,取值范围:0~999,单位:km/h
+            public ushort wMaxSpeed;  //最高速度,取值范围:0~999,单位:km/h
+            public byte byDataType;  //数据类型(单选):0- 卡口数据,1- 违法数据,2- 交通事件,3- 取证数据
+            public byte byExecuteCtrl;  //布控:0- 白名单,1- 黑名单,0xff- 其他
+            [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 254, ArraySubType = UnmanagedType.I1)]
+            public byte[] byRes;  //保留,置为0
+
+        }
+
         [StructLayoutAttribute(LayoutKind.Sequential)]
         public struct NET_DVR_CID_ALARM
         {

+ 15 - 22
TrainVideoDataDispose/Form1.cs

@@ -31,6 +31,8 @@ namespace TrainVideoDataDispose
         private MeterWorkRailwayRecMainService meterWorkRailwayRecMainService = new MeterWorkRailwayRecMainService(); // 采集主表
         private MeterWorkRailwayReceivedService MeterWorkRailwayReceivedService = new MeterWorkRailwayReceivedService(); // 采集从表
 
+        private MeterBaseSpotInfoService meterBaseSpotInfoService = new MeterBaseSpotInfoService();
+
         /// <summary>
         /// 获取轨道衡系统上传的原始数据文件保存路径
         /// </summary>
@@ -161,22 +163,6 @@ namespace TrainVideoDataDispose
                 // Create a reference to the current directory.
                 foreach (string strPath in m_szOrigDataPath)
                 {
-                    //读取称点配置信息并存入hashtable
-                    hashtable.Clear();
-                    //读取配置
-                    string[] list = System.Configuration.ConfigurationSettings.AppSettings["spotConfig"].ToString().Split(';');
-                    foreach (var item in list)
-                    {
-                        string path = item.Split(',')[0];
-                        string spotNo = item.Split(',')[1];
-                        string spotName = item.Split(',')[2];
-                        //判断是否为配置信息中的某个
-                        if (strPath == path)
-                        {
-                            hashtable.Add("spotNo", spotNo);
-                            hashtable.Add("spotName", spotName);
-                        }
-                    }
                     System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(strPath);
                     FileInfo[] fis = null;
 
@@ -384,6 +370,11 @@ namespace TrainVideoDataDispose
             string strPointName = "";
             string strVideoFileName = "";
             DataRow dr = null;
+            //读取称点配置信息并存入hashtable
+            hashtable.Clear();
+            //读取配置
+
+
 
             //拆分行
             Lines = strContent.Split(new string[] { "\r\n" }, StringSplitOptions.None);
@@ -428,19 +419,21 @@ namespace TrainVideoDataDispose
 
                 dr["SEQUENCENUMBER"] = strSequenceNo;
                 dr["INDEXNO"] = Fields[1];//车厢号
+                //dr["TRAINNO"] = strSequenceNo;
+                dr["TRAINNO"] = Fields[3];
                 dr["RAILWAYMODELNAME"] = Fields[2];//车型
-                dr["TRAINNO"] = Fields[3];//车号
                 dr["WEIGHT"] = Fields[4];//重量
-                dr["RAILWAYWORKNO"] = Fields[8];//列车作业编号
+                dr["RAILWAYWORKNO"] = strSequenceNo;//列车作业编号
                 if (Fields[3] == "")
                 {//lck20150109静态过磅时车速处理
                     Fields[3] = "3";
                 }
                 dr["SPEED"] = Fields[5];//速度
-                dr["POINTNO"] = hashtable["spotNo"].ToString();//称点信息
-                dr["POINTNAME"] = hashtable["spotName"].ToString();//称点信息
-                strPointNo = hashtable["spotNo"].ToString();//称点信息
-                strPointName = hashtable["spotName"].ToString();//称点信息
+                RESTfulResult<List<MeterBaseSpotInfo>> rmX = meterBaseSpotInfoService.doQueryWf(new MeterBaseSpotInfo { baseSpotNo = Fields[8] });
+                strPointNo = rmX.Data[0].baseSpotNo;//称点信息
+                strPointName = rmX.Data[0].baseSpotName;//称点信息
+                dr["POINTNO"] = strPointNo;//称点信息
+                dr["POINTNAME"] = strPointName;//称点信息
                 string _path = strPath.Substring(2);//录像地址
                 string _strPath = "\\\\194.168.0.38" + _path;//194.168.0.38//录像地址dd
                 strVideoFileName = strPath.Replace("\\txt", "\\movie").Replace(".txt",".mp4");//录像地址

+ 1 - 1
TrainVideoDataDispose/Program.cs

@@ -15,7 +15,7 @@ namespace TrainVideoDataDispose
         {
             Application.EnableVisualStyles();
             Application.SetCompatibleTextRenderingDefault(false);
-            Application.Run(new Form2());
+            Application.Run(new text());
         }
     }
 }

+ 1 - 1
TrainVideoDataDispose/TrainVideoDataDispose.csproj

@@ -43,7 +43,7 @@
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
     <Prefer32Bit>false</Prefer32Bit>
-    <PlatformTarget>x86</PlatformTarget>
+    <PlatformTarget>x64</PlatformTarget>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>

+ 56 - 17
TrainVideoDataDispose/text.cs

@@ -70,7 +70,7 @@ namespace TrainVideoDataDispose
                 LoginCallBack = new CHCNetSDK.LOGINRESULTCALLBACK(cbLoginCallBack);//注册回调函数                    
             }
             pLoginInfo.cbLoginResult = LoginCallBack;
-            pLoginInfo.bUseAsynLogin = false;
+            pLoginInfo.bUseAsynLogin = true;
 
             //登录设备 Login the device
             //m_lUserID = CHCNetSDK.NET_DVR_Login_V40(ref pLoginInfo, ref tDeviceInfo);
@@ -95,22 +95,35 @@ namespace TrainVideoDataDispose
                 //listViewFaceConfig.Items.Clear();
                 //LpArr.Clear();
 
-                ////定义查询信息对象
-                //CHCNetSDK.NET_DVR_FACE_PARAM_COND struCond = new CHCNetSDK.NET_DVR_FACE_PARAM_COND();
-                //struCond.Init();
-                //struCond.dwSize = (uint)Marshal.SizeOf(struCond);
-                //struCond.dwFaceNum = (uint)IndexOfListview;
-                //struCond.byFaceID = Convert.ToByte(textBoxFaceID.Text.ToString());
-                //StrToByteArray(ref struCond.byCardNo, textBoxAssociatedCardNo.Text);
-                //GetCardReaderIndex(ref struCond.byEnableCardReader);
-
-                //int dwSize = Marshal.SizeOf(struCond);
-                //IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);
-                //Marshal.StructureToPtr(struCond, ptrStruCond, true);
-                //g_fGetFaceParamCallback = new CHCNetSDK.RemoteConfigCallback(ProcessGetFaceParam);
-                //m_lGetFaceParamCfgHandle = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lServerID, CHCNetSDK.NET_DVR_GET_FACE_PARAM_CFG, ptrStruCond, dwSize, g_fGetFaceParamCallback, this.Handle);
-
-                //Marshal.FreeHGlobal(ptrStruCond);
+                //定义查询信息对象
+                CHCNetSDK.NET_DVR_TRAFFIC_DATA_QUERY_COND struCond = new CHCNetSDK.NET_DVR_TRAFFIC_DATA_QUERY_COND();
+                struCond.dwSize = (uint)Marshal.SizeOf(struCond);
+                //保留
+                byte[] byRes = System.Text.Encoding.Default.GetBytes("0");
+                struCond.byRes = new byte[254];
+                byRes.CopyTo(struCond.byRes, 0);
+                //struCond.dwQueryCond
+
+                if (remoteConfigCallback == null)
+                {
+                    remoteConfigCallback = new CHCNetSDK.RemoteConfigCallback(cbStateCallback);//注册回调函数                    
+                }
+
+                int dwSize = Marshal.SizeOf(struCond);
+                IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);
+                Marshal.StructureToPtr(struCond, ptrStruCond, true);
+                m_lGetFaceParamCfgHandle = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_TRAFFIC_DATA, ptrStruCond, dwSize, remoteConfigCallback, IntPtr.Zero);
+                if (m_lGetFaceParamCfgHandle < 0)
+                {
+                    uint iLastErr = CHCNetSDK.NET_DVR_GetLastError();
+                    string str = "NET_DVR_StartRemoteConfig failed, error code= " + iLastErr; //登录失败,输出错误号 Failed to login and output the error code
+                    textinfo.Text = str;
+                    return;
+                }
+                else
+                {
+                    Marshal.FreeHGlobal(ptrStruCond);
+                }
             }
 
             
@@ -143,5 +156,31 @@ namespace TrainVideoDataDispose
             }
 
         }
+
+        public void cbStateCallback(uint dwType, IntPtr lpBuffer, uint dwBufLen, IntPtr pUserData)
+        {
+            string strLoginCallBack = "登录设备,lUserID:" + dwType + ",dwResult:" + dwBufLen;
+
+            if (dwType == 0)
+            {
+                uint iErrCode = CHCNetSDK.NET_DVR_GetLastError();
+                strLoginCallBack = strLoginCallBack + ",错误号:" + iErrCode;
+            }
+
+            //下面代码注释掉也会崩溃
+            if (InvokeRequired)
+            {
+                object[] paras = new object[2];
+                paras[0] = strLoginCallBack;
+                paras[1] = dwType;
+
+            }
+            else
+            {
+                //创建该控件的主线程直接更新信息列表 
+
+            }
+
+        }
     }
 }