Commit dd073a92 authored by leon.huang's avatar leon.huang

1.版本号更新为1.7.7.ε

2.增加注释
3.多个控件设定"是否滚动条"显示false
4.修改保存本地在mdibase里的引用,改为new三个(前中后)
5.修改ckvocupdata去除开启系统判断,实现全程基线绘制,增加时间超过600min重绘
6.更改第三方HW(实际是HL3000)传输频率与ZB相同(后面可能再修改成另外一种直接传输的逻辑)
7.注释开机等待10S再搜索HMI,这个是更早逻辑,后面有了认为设定"选项""最大搜索时长"后就无须这个逻辑
parent 081e9483
...@@ -42,7 +42,7 @@ namespace GcDevicePc ...@@ -42,7 +42,7 @@ namespace GcDevicePc
this.fid1ver.Text = this.FID1version; this.fid1ver.Text = this.FID1version;
this.fid2ver.Text = this.FID2version; this.fid2ver.Text = this.FID2version;
this.tcdver.Text = this.TCD1version; this.tcdver.Text = this.TCD1version;
this.PCver.Text = this.Hmiversion + "/1.7.7.γ"; this.PCver.Text = this.Hmiversion + "/1.7.7.ε";
} }
} }
} }
...@@ -363,7 +363,7 @@ namespace GcDevicePc.Common ...@@ -363,7 +363,7 @@ namespace GcDevicePc.Common
globaldata.m_signalbuffer.Channel1_Port.cdata = fidv[i]; globaldata.m_signalbuffer.Channel1_Port.cdata = fidv[i];
globaldata.m_dpbuffer.ShowList.showDet.fDetValue = fidv[i] * 1000.0f; globaldata.m_dpbuffer.ShowList.showDet.fDetValue = fidv[i] * 1000.0f;
//截止20211102检查,发现此方法不会被加载,所以暂时不用深究为什么只有Channel1_Port
globaldata.m_signalbuffer.Draw_Port.Add(globaldata.m_signalbuffer.Channel1_Port); globaldata.m_signalbuffer.Draw_Port.Add(globaldata.m_signalbuffer.Channel1_Port);
} }
} }
......
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
this.datalist.HideSelection = false; this.datalist.HideSelection = false;
this.datalist.Name = "datalist"; this.datalist.Name = "datalist";
this.datalist.OwnerDraw = true; this.datalist.OwnerDraw = true;
this.datalist.Scrollable = false;
this.datalist.UseCompatibleStateImageBehavior = false; this.datalist.UseCompatibleStateImageBehavior = false;
this.datalist.View = System.Windows.Forms.View.Details; this.datalist.View = System.Windows.Forms.View.Details;
// //
......
...@@ -117,6 +117,9 @@ ...@@ -117,6 +117,9 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<data name="&gt;&gt;datalist.Name" xml:space="preserve">
<value>datalist</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve"> <data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>WeifenLuo.WinFormsUI.Docking.DockContent, WeifenLuo.WinFormsUI.Docking, Version=2.9.0.0, Culture=neutral, PublicKeyToken=5cded1a1a0a7b481</value> <value>WeifenLuo.WinFormsUI.Docking.DockContent, WeifenLuo.WinFormsUI.Docking, Version=2.9.0.0, Culture=neutral, PublicKeyToken=5cded1a1a0a7b481</value>
</data> </data>
...@@ -124,6 +127,37 @@ ...@@ -124,6 +127,37 @@
<value>GcDevicePc.ListViewNF, GcDevicePc, Version=1.0.0.1, Culture=neutral, PublicKeyToken=null</value> <value>GcDevicePc.ListViewNF, GcDevicePc, Version=1.0.0.1, Culture=neutral, PublicKeyToken=null</value>
</data> </data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="datalist.Size" type="System.Drawing.Size, System.Drawing">
<value>286, 330</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>284, 325</value>
</data>
<data name="&gt;&gt;datalist.Parent" xml:space="preserve">
<value>$this</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="datalist.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 12</value>
</data>
<data name="datalist.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>DataState</value>
</data>
<data name="datalist.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="&gt;&gt;datalist.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>GC 显示系统</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAACQAAAAAAAAAAAAAAAAAAAAA AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAACQAAAAAAAAAAAAAAAAAAAAA
...@@ -290,40 +324,6 @@ ...@@ -290,40 +324,6 @@
AAA= AAA=
</value> </value>
</data> </data>
<data name="datalist.Size" type="System.Drawing.Size, System.Drawing">
<value>286, 330</value>
</data>
<data name="&gt;&gt;datalist.Parent" xml:space="preserve">
<value>$this</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="datalist.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>284, 325</value>
</data>
<data name="datalist.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>DataState</value>
</data>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 12</value>
</data>
<data name="datalist.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="&gt;&gt;datalist.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>GC 显示系统</value>
</data>
<data name="&gt;&gt;datalist.Name" xml:space="preserve">
<value>datalist</value>
</data>
<data name="$this.Font" type="System.Drawing.Font, System.Drawing"> <data name="$this.Font" type="System.Drawing.Font, System.Drawing">
<value>宋体, 9pt</value> <value>宋体, 9pt</value>
</data> </data>
......
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
this.dockPanel1.Name = "dockPanel1"; this.dockPanel1.Name = "dockPanel1";
this.dockPanel1.Size = new System.Drawing.Size(667, 589); this.dockPanel1.Size = new System.Drawing.Size(667, 589);
this.dockPanel1.TabIndex = 2; this.dockPanel1.TabIndex = 2;
this.dockPanel1.Resize += new System.EventHandler(this.dockPanel1_Resize);
// //
// Formdebug // Formdebug
// //
......
...@@ -28,6 +28,7 @@ namespace GcDevicePc ...@@ -28,6 +28,7 @@ namespace GcDevicePc
private bool bEnglishLanguage = (Thread.CurrentThread.CurrentUICulture == CultureInfo.GetCultureInfo("en")) ? true:false; private bool bEnglishLanguage = (Thread.CurrentThread.CurrentUICulture == CultureInfo.GetCultureInfo("en")) ? true:false;
public Formdebug() public Formdebug()
{ {
InitializeComponent(); InitializeComponent();
} }
...@@ -149,5 +150,10 @@ namespace GcDevicePc ...@@ -149,5 +150,10 @@ namespace GcDevicePc
{ {
} }
private void dockPanel1_Resize(object sender, EventArgs e)
{
}
} }
} }
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<ErrorReportUrlHistory /> <ErrorReportUrlHistory />
<FallbackCulture>en-US</FallbackCulture> <FallbackCulture>en-US</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles> <VerifyUploadedFiles>false</VerifyUploadedFiles>
<ProjectView>ShowAllFiles</ProjectView> <ProjectView>ProjectFiles</ProjectView>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<EnableSecurityDebugging>false</EnableSecurityDebugging> <EnableSecurityDebugging>false</EnableSecurityDebugging>
......
...@@ -81,6 +81,8 @@ namespace GcDevicePc ...@@ -81,6 +81,8 @@ namespace GcDevicePc
// ChannelDataSave2 mydatasave2 = new ChannelDataSave2(); // ChannelDataSave2 mydatasave2 = new ChannelDataSave2();
// ChannelDataSave3 mydatasave3 = new ChannelDataSave3(); // ChannelDataSave3 mydatasave3 = new ChannelDataSave3();
ChannelDataSaveSum mydatasaveSum = new ChannelDataSaveSum(); ChannelDataSaveSum mydatasaveSum = new ChannelDataSaveSum();
ChannelDataSaveSum mydatasaveSum2 = new ChannelDataSaveSum();
ChannelDataSaveSum mydatasaveSum3 = new ChannelDataSaveSum();
/// <summary> /// <summary>
/// 处理数据接口 /// 处理数据接口
...@@ -847,7 +849,7 @@ namespace GcDevicePc ...@@ -847,7 +849,7 @@ namespace GcDevicePc
/// 1.0.2.3 添加了周期完成后,重新绘图功能 /// 1.0.2.3 添加了周期完成后,重新绘图功能
private void timer1_Tick(object sender, EventArgs e) private void timer1_Tick(object sender, EventArgs e)
{ {
this.Text = String.Format("{0}-1.7.7.γ{1}", globaldata.AppName,Formstr); this.Text = String.Format("{0}-1.7.7.ε{1}", globaldata.AppName,Formstr);
HmiStatus.Text = bEnglishLanguage == false ? String.Format("状态:{0}", statestr) : String.Format("State:{0}", statestr); HmiStatus.Text = bEnglishLanguage == false ? String.Format("状态:{0}", statestr) : String.Format("State:{0}", statestr);
...@@ -1219,10 +1221,9 @@ namespace GcDevicePc ...@@ -1219,10 +1221,9 @@ namespace GcDevicePc
// mydatasave.ChannelDataStart(); // mydatasave.ChannelDataStart();
// mydatasave2.ChannelDataStart(); // mydatasave2.ChannelDataStart();
// mydatasave3.ChannelDataStart(); // mydatasave3.ChannelDataStart();
mydatasaveSum.ChannelDataStart("Channel1","_前.hw","_A.hw", globaldata.m_signalbuffer.Save_Port); mydatasaveSum.ChannelDataStart("Channel1","_前.hw","_A.hw", globaldata.m_signalbuffer.Save_Port);
mydatasaveSum.ChannelDataStart("Channel2","_中.hw","_B.hw", globaldata.m_signalbuffer.Save_Port2); mydatasaveSum2.ChannelDataStart("Channel2","_中.hw","_B.hw", globaldata.m_signalbuffer.Save_Port2);
mydatasaveSum.ChannelDataStart("Channel3","_后.hw","_C.hw", globaldata.m_signalbuffer.Save_Port3); mydatasaveSum3.ChannelDataStart("Channel3","_后.hw","_C.hw", globaldata.m_signalbuffer.Save_Port3);
} }
if (!String.IsNullOrEmpty(globaldata.connection_ip)) if (!String.IsNullOrEmpty(globaldata.connection_ip))
{ {
...@@ -1575,7 +1576,9 @@ namespace GcDevicePc ...@@ -1575,7 +1576,9 @@ namespace GcDevicePc
} }
} }
/// <summary>
/// 改变软件上的开始按键为亮/暗
/// </summary>
void Menu_status() void Menu_status()
{ {
if (globaldata.m_hmibuffer.gcinfo.hmistatus != 0)//已开启系统 if (globaldata.m_hmibuffer.gcinfo.hmistatus != 0)//已开启系统
...@@ -1596,7 +1599,7 @@ namespace GcDevicePc ...@@ -1596,7 +1599,7 @@ namespace GcDevicePc
globaldata.stopflag = true; globaldata.stopflag = true;
(this.title.Controls.Find("pictureMenu1", true)[0] as PictureMenu).PMOptbtnstatus = 4;//开始亮 (this.title.Controls.Find("pictureMenu1", true)[0] as PictureMenu).PMOptbtnstatus = 4;//开始亮
} }
else if(globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 4) else if(globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5)
{ {
globaldata.startflag = true; globaldata.startflag = true;
globaldata.stopflag = false; globaldata.stopflag = false;
......
...@@ -8,7 +8,6 @@ using System.Diagnostics; ...@@ -8,7 +8,6 @@ using System.Diagnostics;
using GcDevicePc.IniParam; using GcDevicePc.IniParam;
using System.IO; using System.IO;
using System.Windows.Forms; using System.Windows.Forms;
namespace GcDevicePc.ProThread namespace GcDevicePc.ProThread
{ {
class CKvocUpdata class CKvocUpdata
...@@ -18,7 +17,6 @@ namespace GcDevicePc.ProThread ...@@ -18,7 +17,6 @@ namespace GcDevicePc.ProThread
int isstart = 0; int isstart = 0;
bool bNowStopFlag = globaldata.stopflag; bool bNowStopFlag = globaldata.stopflag;
bool bBeforeStopFlag = globaldata.stopflag; bool bBeforeStopFlag = globaldata.stopflag;
//批量更新 //批量更新
//用于更新记录数据 //用于更新记录数据
private void Monitor_DataList() private void Monitor_DataList()
...@@ -27,7 +25,6 @@ namespace GcDevicePc.ProThread ...@@ -27,7 +25,6 @@ namespace GcDevicePc.ProThread
{ {
double time = 0; double time = 0;
double value = 0; double value = 0;
//float dtime = 0.0f; //float dtime = 0.0f;
//float dvalue = 0.0f; //float dvalue = 0.0f;
List<double[]> listPoint = new List<double[]>(); //临时数据区 List<double[]> listPoint = new List<double[]>(); //临时数据区
...@@ -35,72 +32,67 @@ namespace GcDevicePc.ProThread ...@@ -35,72 +32,67 @@ namespace GcDevicePc.ProThread
List<double[]> listRawTem = new List<double[]>(); //原始数据缓存 List<double[]> listRawTem = new List<double[]>(); //原始数据缓存
bool drbool = false; bool drbool = false;
UInt64 NowTimeOld = 0; //上一周期开始 UInt64 NowTimeOld = 0; //上一周期开始
while (!datamre.WaitOne(500)) while (!datamre.WaitOne(500))
{ {
drbool = false; drbool = false;
listPoint.Clear(); listPoint.Clear();
listRaw.Clear(); listRaw.Clear();
if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || // if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 ||
globaldata.m_hmibuffer.gcinfo.methodstatus == 5) || // globaldata.m_hmibuffer.gcinfo.methodstatus == 5) ||
globaldata.m_pcbuffer.gcpcinfo.pcworkinfo.system_Statue // globaldata.m_pcbuffer.gcpcinfo.pcworkinfo.system_Statue
) //判断HMI工作模式 0-空闲 1-2 准备 3准备就绪 4-5 运行(分保持和程升) 6-7结束后处理 // ) //判断HMI工作模式 0-空闲 1-2 准备 3准备就绪 4-5 运行(分保持和程升) 6-7结束后处理
// if(true) // if(true)
{ #region
#if(debug) // {
//改为全状态下绘制基线(之前是保存在临时,点击开启系统后一股脑丢出)
#if (debug)
Stopwatch st = new Stopwatch(); //计时 Stopwatch st = new Stopwatch(); //计时
st.Reset(); //清零 st.Reset(); //清零
#endif #endif
//lock处断点,多次点击继续Draw_Port.Count=11,0,30,0,30,0,30,0,0,0,30,10```
lock (globaldata.m_signalbuffer.Draw_Port) lock (globaldata.m_signalbuffer.Draw_Port)
{ {
bNowStopFlag = globaldata.stopflag; bNowStopFlag = globaldata.stopflag;//停止按键标志位,默认false
if (globaldata.m_signalbuffer.Draw_Port.Count > 1) if (globaldata.m_signalbuffer.Draw_Port.Count > 1)
{ {
#region
if (globaldata.startclear1) if (globaldata.startclear1)//清除开始按键之前的数据,默认false,从未进入
{ {
CurveDisPlay.curdisp.cleardata(); CurveDisPlay.curdisp.cleardata();
globaldata.starttimer = globaldata.starttimer =
((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[0]).ctimer; ((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[0]).ctimer;
time = 0; time = 0;
globaldata.startclear1 = false; globaldata.startclear1 = false;
} }
else else
{ {
if (globaldata.startimerIsSet1||time>600)
if (globaldata.startimerIsSet1)
{ {
CurveDisPlay.curdisp.cleardata(); CurveDisPlay.curdisp.cleardata();
globaldata.starttimer = globaldata.starttimer = ((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[0]).ctimer;
((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[0]).ctimer;
time = 0; time = 0;
globaldata.startimerIsSet1 = false; globaldata.startimerIsSet1 = false;
} }//是否清空绘图的标志,外部触发(物理按钮和无源输入)不会更新这个状态为true;或者累计时长大于600min
ushort timeend = globaldata.m_dpbuffer.ShowList.showtime.alltime; ushort timeend = globaldata.m_dpbuffer.ShowList.showtime.alltime;
timeend -= 5; timeend -= 5;//没有实际意义
if (globaldata.starttimer == 0) if (globaldata.starttimer == 0)//成立时执行最近语句,反之不执行
globaldata.starttimer = globaldata.starttimer = ((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[0]).ctimer;
((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[0]).ctimer; #if (debug)
#if(debug)
st.Start(); //计时开始 st.Start(); //计时开始
#endif #endif
for (int i = 0; i < globaldata.m_signalbuffer.Draw_Port.Count; i++) for (int i = 0; i < globaldata.m_signalbuffer.Draw_Port.Count; i++)
{ {
if (globaldata.MethodRun_Statue == 4 || globaldata.MethodRun_Statue == 5) if (globaldata.MethodRun_Statue == 4 || globaldata.MethodRun_Statue == 5)
// if (true) // if (true)
{
{
if ((globaldata.m_hmibuffer.gcinfo.NowStartTime <= if ((globaldata.m_hmibuffer.gcinfo.NowStartTime <=
((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[0]) ((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[0])
.ctimer) && isstart == 0 && .ctimer) && isstart == 0 &&
(NowTimeOld != globaldata.m_hmibuffer.gcinfo.NowStartTime)) (NowTimeOld != globaldata.m_hmibuffer.gcinfo.NowStartTime))
{ {
if (CKVocAnalyzer.GlobalCKV.debugwork == 5) if (CKVocAnalyzer.GlobalCKV.debugwork == 5)
{ {
CKVocAnalyzer.GlobalCKV.debugwork = 4; CKVocAnalyzer.GlobalCKV.debugwork = 4;
...@@ -110,36 +102,25 @@ namespace GcDevicePc.ProThread ...@@ -110,36 +102,25 @@ namespace GcDevicePc.ProThread
globaldata.starttimer = globaldata.m_hmibuffer.gcinfo.NowStartTime; globaldata.starttimer = globaldata.m_hmibuffer.gcinfo.NowStartTime;
NowTimeOld = globaldata.m_hmibuffer.gcinfo.NowStartTime; NowTimeOld = globaldata.m_hmibuffer.gcinfo.NowStartTime;
CurveDisPlay.curdisp.cleardata(); CurveDisPlay.curdisp.cleardata();
}//从未进入
}
else else
{ {
isstart = 2; isstart = 2;
CurveDisPlay.curdisp.SetAxisX( CurveDisPlay.curdisp.SetAxisX(
(double)globaldata.m_dpbuffer.ShowList.showtime (double)globaldata.m_dpbuffer.ShowList.showtime
.alltime / 60.0); .alltime / 60.0);
time = 0; time = 0;
drbool = false; drbool = false;
globaldata.starttimer = globaldata.m_hmibuffer.gcinfo.NowStartTime; globaldata.starttimer = globaldata.m_hmibuffer.gcinfo.NowStartTime;
NowTimeOld = globaldata.m_hmibuffer.gcinfo.NowStartTime; NowTimeOld = globaldata.m_hmibuffer.gcinfo.NowStartTime;
CurveDisPlay.curdisp.cleardata(); CurveDisPlay.curdisp.cleardata();
Trace.WriteLine( Trace.WriteLine(
globaldata.m_hmibuffer.gcinfo.NowStartTime.ToString(), "sys"); globaldata.m_hmibuffer.gcinfo.NowStartTime.ToString(), "sys");
} }
CKVocAnalyzer.GlobalCKV.dataFtime.FTime = CKVocAnalyzer.GlobalCKV.dataFtime.FTime =
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
listPoint.Clear(); //清除记录 listPoint.Clear(); //清除记录
listRaw.Clear(); listRaw.Clear();
} }
} }
...@@ -161,9 +142,7 @@ namespace GcDevicePc.ProThread ...@@ -161,9 +142,7 @@ namespace GcDevicePc.ProThread
{ {
listRawTem.Clear(); //缓存3000点,大于3000,重新开始 listRawTem.Clear(); //缓存3000点,大于3000,重新开始
} }
//TCP数据回传 //TCP数据回传
lock (globaldata.m_signalbuffer.TCP_Port) lock (globaldata.m_signalbuffer.TCP_Port)
{ {
if (globaldata.m_signalbuffer.TCP_Port.Count > 0) if (globaldata.m_signalbuffer.TCP_Port.Count > 0)
...@@ -183,20 +162,14 @@ namespace GcDevicePc.ProThread ...@@ -183,20 +162,14 @@ namespace GcDevicePc.ProThread
.TCP_Port[tcpi]).detdata1 * 1000.0f, 6) .TCP_Port[tcpi]).detdata1 * 1000.0f, 6)
}); });
} }
if (tcpraw.Count > 0) if (tcpraw.Count > 0)
{ {
CurveDisPlay.curdisp.WriteTcp(tcpraw); CurveDisPlay.curdisp.WriteTcp(tcpraw);
} }
} }
globaldata.m_signalbuffer.TCP_Port.Clear(); globaldata.m_signalbuffer.TCP_Port.Clear();
} }
} }
if (isstart == 2 && listRawTem.Count > 0) //回填数据 if (isstart == 2 && listRawTem.Count > 0) //回填数据
{ {
int rami = listRawTem.FindIndex(s => s[0] >= globaldata.starttimer); int rami = listRawTem.FindIndex(s => s[0] >= globaldata.starttimer);
...@@ -206,7 +179,7 @@ namespace GcDevicePc.ProThread ...@@ -206,7 +179,7 @@ namespace GcDevicePc.ProThread
{ {
time += (((UInt64)listRawTem[rami][0] - globaldata.starttimer) / time += (((UInt64)listRawTem[rami][0] - globaldata.starttimer) /
1000.0f / 60.0f); 1000.0f / 60.0f);
if(time > 0xFFFF) if (time > 0xFFFF)
{ {
Console.WriteLine("data err"); Console.WriteLine("data err");
} }
...@@ -214,26 +187,18 @@ namespace GcDevicePc.ProThread ...@@ -214,26 +187,18 @@ namespace GcDevicePc.ProThread
value = listRawTem[rami][1]; value = listRawTem[rami][1];
listPoint.Add(new double[] listPoint.Add(new double[]
{Math.Round(time, 4), Math.Round(value, 6)}); {Math.Round(time, 4), Math.Round(value, 6)});
listRaw.Add( listRaw.Add(new double[] { listRawTem[rami][0], Math.Round(value, 6) });
new double[] { listRawTem[rami][0], Math.Round(value, 6) });
} }
} }
listRawTem.Clear(); listRawTem.Clear();
} }
if (globaldata.starttimer <= ((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i]).ctimer && (((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i]).ctimer - globaldata.starttimer) > 0)
if (globaldata.starttimer <=
((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i]).ctimer &&
(((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i]).ctimer -
globaldata.starttimer) > 0)
{ {
time += ((((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i]).ctimer - globaldata.starttimer) / 1000.0f / 60.0f);
time += ((((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i]) if (time > 0xFFFF)
.ctimer - globaldata.starttimer) / 1000.0f / 60.0f);
if(time > 0xFFFF)
{ {
Console.WriteLine("data err"); // Console.WriteLine("data err");
File.AppendAllText(@"./timeErr.txt", time + "\t");//异常time
} }
//time += 0.00083; //time += 0.00083;
globaldata.starttimer = globaldata.starttimer =
...@@ -241,7 +206,6 @@ namespace GcDevicePc.ProThread ...@@ -241,7 +206,6 @@ namespace GcDevicePc.ProThread
.ctimer; .ctimer;
value = (((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i]) value = (((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i])
.cdata * 1000.0f); .cdata * 1000.0f);
if (time < 600) if (time < 600)
{ {
listPoint.Add(new double[] { Math.Round(time, 4), Math.Round(value, 6) }); listPoint.Add(new double[] { Math.Round(time, 4), Math.Round(value, 6) });
...@@ -251,9 +215,6 @@ namespace GcDevicePc.ProThread ...@@ -251,9 +215,6 @@ namespace GcDevicePc.ProThread
.ctimer, .ctimer,
Math.Round(value, 6) Math.Round(value, 6)
}); });
} }
//时间判断终点 //时间判断终点
...@@ -268,17 +229,15 @@ namespace GcDevicePc.ProThread ...@@ -268,17 +229,15 @@ namespace GcDevicePc.ProThread
((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i]) ((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i])
.ctimer) && isstart == 2) .ctimer) && isstart == 2)
{ {
drbool = true; drbool = true;
isstart = 0; isstart = 0;
break; break;
} }
} }
//停止按钮按下判断 //已停止(运行)状态
if(bBeforeStopFlag != bNowStopFlag) if (bBeforeStopFlag != bNowStopFlag)
{ {
if(drbool == false && bBeforeStopFlag == false && bNowStopFlag == true) if (drbool == false && bBeforeStopFlag == false && bNowStopFlag == true)
{ {
drbool = true; drbool = true;
isstart = 0; isstart = 0;
...@@ -291,22 +250,21 @@ namespace GcDevicePc.ProThread ...@@ -291,22 +250,21 @@ namespace GcDevicePc.ProThread
globaldata.starttimer = globaldata.starttimer =
((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i]) ((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port[i])
.ctimer; .ctimer;
} }
//读取数据完毕 //读取数据完毕
// Console.WriteLine(globaldata.m_signalbuffer.Draw_Port.Count);
globaldata.m_signalbuffer.Draw_Port.Clear(); globaldata.m_signalbuffer.Draw_Port.Clear();
} }
#endregion
} }
} }
#if(debug) #if (debug)
st.Stop(); //计时终止 st.Stop(); //计时终止
Trace.WriteLine("后处理更新时间:" + st.Elapsed.ToString(), "sys"); Trace.WriteLine("后处理更新时间:" + st.Elapsed.ToString(), "sys");
#endif #endif
#region 已注释
//if (CProfileDevice.m_DevParam.syspara.u16DetFront == 1) //if (CProfileDevice.m_DevParam.syspara.u16DetFront == 1)
//{ //{
// for (int i = 0; i < listRaw.Count / CProfileDevice.m_DevParam.syspara.u16DetNum; i++) // for (int i = 0; i < listRaw.Count / CProfileDevice.m_DevParam.syspara.u16DetNum; i++)
...@@ -318,10 +276,9 @@ namespace GcDevicePc.ProThread ...@@ -318,10 +276,9 @@ namespace GcDevicePc.ProThread
// lp.Add(listPoint[i]); // lp.Add(listPoint[i]);
// } // }
//} //}
#endregion
CurveDisPlay.curdisp.addDataRaw(listRaw); //记录原始数据 CurveDisPlay.curdisp.addDataRaw(listRaw); //记录原始数据
CurveDisPlay.curdisp.addPoint(listPoint, drbool); //更新绘画区域 CurveDisPlay.curdisp.addPoint(listPoint, drbool); //更新绘画区域,停止系统后依旧处于累计状态
//lp.Clear(); //lp.Clear();
//lr.Clear(); //lr.Clear();
if (drbool) if (drbool)
...@@ -331,18 +288,14 @@ namespace GcDevicePc.ProThread ...@@ -331,18 +288,14 @@ namespace GcDevicePc.ProThread
} }
// Console.WriteLine(string.Format("【{0}】读取个数结束 {1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), globaldata.m_signalbuffer.Draw_Port.Count)); // Console.WriteLine(string.Format("【{0}】读取个数结束 {1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), globaldata.m_signalbuffer.Draw_Port.Count));
// }
} #endregion
if (globaldata.cancelflag1)//取消按键标志
if (globaldata.cancelflag1)
{ {
globaldata.cancelflag1 = false; globaldata.cancelflag1 = false;
} }
// Thread.Sleep(500); // Thread.Sleep(500);
} }
// Trace.WriteLine("绘图线程退出!","sys"); // Trace.WriteLine("绘图线程退出!","sys");
} }
catch (Exception ex) catch (Exception ex)
...@@ -351,13 +304,10 @@ namespace GcDevicePc.ProThread ...@@ -351,13 +304,10 @@ namespace GcDevicePc.ProThread
} }
finally finally
{ {
} }
} }
//List<double[]> lr = new List<double[]>(); //List<double[]> lr = new List<double[]>();
//List<double[]> lp = new List<double[]>(); //List<double[]> lp = new List<double[]>();
public void CKvocUpdataStart() public void CKvocUpdataStart()
{ {
if (datamre != null) if (datamre != null)
...@@ -369,11 +319,9 @@ namespace GcDevicePc.ProThread ...@@ -369,11 +319,9 @@ namespace GcDevicePc.ProThread
t_DataSave.IsBackground = true; t_DataSave.IsBackground = true;
t_DataSave.Start(); t_DataSave.Start();
} }
public void CKvocUpdataStop() public void CKvocUpdataStop()
{ {
datamre.Set(); datamre.Set();
} }
} }
} }
...@@ -40,9 +40,9 @@ namespace GcDevicePc.ProThread ...@@ -40,9 +40,9 @@ namespace GcDevicePc.ProThread
drbool = false; drbool = false;
listPoint.Clear(); listPoint.Clear();
listRaw.Clear(); listRaw.Clear();
if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) || globaldata.m_pcbuffer.gcpcinfo.pcworkinfo.system_Statue) //判断HMI工作模式 0-空闲 1-2 准备 3准备就绪 4-5 运行(分保持和程升) 6-7结束后处理 // if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) || globaldata.m_pcbuffer.gcpcinfo.pcworkinfo.system_Statue) //判断HMI工作模式 0-空闲 1-2 准备 3准备就绪 4-5 运行(分保持和程升) 6-7结束后处理
// if(true) // //改为全状态下绘制基线(之前是保存在临时,点击开启系统后一股脑丢出)
{ // {
#if(debug) #if(debug)
Stopwatch st = new Stopwatch(); //计时 Stopwatch st = new Stopwatch(); //计时
st.Reset(); //清零 st.Reset(); //清零
...@@ -68,7 +68,7 @@ namespace GcDevicePc.ProThread ...@@ -68,7 +68,7 @@ namespace GcDevicePc.ProThread
else else
{ {
if (globaldata.startimerIsSet2) if (globaldata.startimerIsSet2||time>600)
{ {
CurveDisPlay2.curdisp2.cleardata(); CurveDisPlay2.curdisp2.cleardata();
starttimer = ((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port2[0]).ctimer; starttimer = ((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port2[0]).ctimer;
...@@ -267,7 +267,7 @@ namespace GcDevicePc.ProThread ...@@ -267,7 +267,7 @@ namespace GcDevicePc.ProThread
// Console.WriteLine(string.Format("【{0}】读取个数结束 {1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), globaldata.m_signalbuffer.Draw_Port2.Count)); // Console.WriteLine(string.Format("【{0}】读取个数结束 {1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), globaldata.m_signalbuffer.Draw_Port2.Count));
} //}
if (globaldata.cancelflag2) if (globaldata.cancelflag2)
{ {
......
...@@ -41,9 +41,9 @@ namespace GcDevicePc.ProThread ...@@ -41,9 +41,9 @@ namespace GcDevicePc.ProThread
drbool = false; drbool = false;
listPoint.Clear(); listPoint.Clear();
listRaw.Clear(); listRaw.Clear();
if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) || globaldata.m_pcbuffer.gcpcinfo.pcworkinfo.system_Statue) //判断HMI工作模式 0-空闲 1-2 准备 3准备就绪 4-5 运行(分保持和程升) 6-7结束后处理 // if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) || globaldata.m_pcbuffer.gcpcinfo.pcworkinfo.system_Statue) //判断HMI工作模式 0-空闲 1-2 准备 3准备就绪 4-5 运行(分保持和程升) 6-7结束后处理
// if(true) // //改为全状态下绘制基线(之前是保存在临时,点击开启系统后一股脑丢出)
{ // {
#if(debug) #if(debug)
Stopwatch st = new Stopwatch(); //计时 Stopwatch st = new Stopwatch(); //计时
st.Reset(); //清零 st.Reset(); //清零
...@@ -67,7 +67,7 @@ namespace GcDevicePc.ProThread ...@@ -67,7 +67,7 @@ namespace GcDevicePc.ProThread
else else
{ {
if (globaldata.startimerIsSet3) if (globaldata.startimerIsSet3||time>600)
{ {
CurveDisPlay3.curdisp3.cleardata(); CurveDisPlay3.curdisp3.cleardata();
starttimer = ((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port3[0]).ctimer; starttimer = ((SignalBuffer.Channel_XY)globaldata.m_signalbuffer.Draw_Port3[0]).ctimer;
...@@ -261,7 +261,7 @@ namespace GcDevicePc.ProThread ...@@ -261,7 +261,7 @@ namespace GcDevicePc.ProThread
// Console.WriteLine(string.Format("【{0}】读取个数结束 {1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), globaldata.m_signalbuffer.Draw_Port3.Count)); // Console.WriteLine(string.Format("【{0}】读取个数结束 {1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), globaldata.m_signalbuffer.Draw_Port3.Count));
} // }
if (globaldata.cancelflag3) if (globaldata.cancelflag3)
{ {
......
...@@ -47,7 +47,7 @@ namespace GcDevicePc.ProThread ...@@ -47,7 +47,7 @@ namespace GcDevicePc.ProThread
/// <param name="Save_PortSumList">检测器传原始数据的端口(Save_Port前检测,Save_Port2中检测,Save_Port3后检测)</param> /// <param name="Save_PortSumList">检测器传原始数据的端口(Save_Port前检测,Save_Port2中检测,Save_Port3后检测)</param>
private void Monitor_Data(string ChannelSumList, string cur_filenameSumList,string EN_cur_filenameSumList,ArrayList Save_PortSumList) private void Monitor_Data(string ChannelSumList, string cur_filenameSumList,string EN_cur_filenameSumList,ArrayList Save_PortSumList)
{ {
#region 已注释代码段
string savefilename=""; string savefilename="";
double value = 0; double value = 0;
float dvalue = 0.0f; float dvalue = 0.0f;
...@@ -58,7 +58,6 @@ namespace GcDevicePc.ProThread ...@@ -58,7 +58,6 @@ namespace GcDevicePc.ProThread
List<float> savePoint = new List<float>(); List<float> savePoint = new List<float>();
List<UInt64> timePoint = new List<UInt64>();//临时数据区 List<UInt64> timePoint = new List<UInt64>();//临时数据区
#endregion
try try
{ {
while (!datamre.WaitOne(500)) while (!datamre.WaitOne(500))
...@@ -80,13 +79,17 @@ namespace GcDevicePc.ProThread ...@@ -80,13 +79,17 @@ namespace GcDevicePc.ProThread
#endregion #endregion
//保证在lock{}执行代码期间,被锁数组不会被干掉 //保证在lock{}执行代码期间,被锁数组不会被干掉
lock (Save_PortSumList) lock (Save_PortSumList)
{ {
// Console.WriteLine(cur_filenameSumList+"开始lock");
if (Save_PortSumList.Count > 1) if (Save_PortSumList.Count > 1)
{ {
#region HMI运行中时,采集端口发送过来的检测器数据,并保存为临时数据,最后将saveflagList变为真 #region HMI运行中时,采集端口发送过来的检测器数据,并保存为临时数据,最后将saveflagList变为真
if (globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) if (globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5)
{ {
//Console.WriteLine(cur_filenameSumList+"运行中");
//存在软件启动时,HMI就处于运行中,预创建文件夹放在这里,通过saveflagList来判断 //存在软件启动时,HMI就处于运行中,预创建文件夹放在这里,通过saveflagList来判断
if (saveflag== false) if (saveflag== false)
...@@ -130,6 +133,7 @@ namespace GcDevicePc.ProThread ...@@ -130,6 +133,7 @@ namespace GcDevicePc.ProThread
#region HMI处于就绪、运行中以外的时候(其实就是每次方法运行结束),且saveflagList为真时,将临时数据写入并创建谱图文件,最后将saveflagList变为假 #region HMI处于就绪、运行中以外的时候(其实就是每次方法运行结束),且saveflagList为真时,将临时数据写入并创建谱图文件,最后将saveflagList变为假
else if (globaldata.m_hmibuffer.gcinfo.methodstatus < 3 || globaldata.m_hmibuffer.gcinfo.methodstatus > 5) else if (globaldata.m_hmibuffer.gcinfo.methodstatus < 3 || globaldata.m_hmibuffer.gcinfo.methodstatus > 5)
{ {
// Console.WriteLine(cur_filenameSumList+"运行结束");
starttimer = ((SignalBuffer.Channel_XY)Save_PortSumList[0]).ctimer; starttimer = ((SignalBuffer.Channel_XY)Save_PortSumList[0]).ctimer;
Save_PortSumList.Clear(); Save_PortSumList.Clear();
//if (globaldata.m_hmibuffer.gcinfo.methodstatus > 5 && saveflag) //if (globaldata.m_hmibuffer.gcinfo.methodstatus > 5 && saveflag)
...@@ -155,10 +159,13 @@ namespace GcDevicePc.ProThread ...@@ -155,10 +159,13 @@ namespace GcDevicePc.ProThread
savePoint = listPoint.GetRange(index1, index2 - index1); savePoint = listPoint.GetRange(index1, index2 - index1);
TWFile twfile = new TWFile(savefilename); TWFile twfile = new TWFile(savefilename);
twfile.TW_Open(); twfile.TW_Open();
for (int j = 0; j < savePoint.Count; j++) for (int j = 0; j < savePoint.Count; j++)
{ {
twfile.bw.Write((int)(savePoint[j] * 1000)); twfile.bw.Write((int)(savePoint[j] * 1000));
} }
twfile.TW_Close(savePoint.Count); twfile.TW_Close(savePoint.Count);
} }
...@@ -179,9 +186,10 @@ namespace GcDevicePc.ProThread ...@@ -179,9 +186,10 @@ namespace GcDevicePc.ProThread
#region HMI已就绪时,清空临时数据,如果没有点击开始,清空HMI传过来的检测器数据,同时预创建谱图文件全路径保存为savefilenameList字符 #region HMI已就绪时,清空临时数据,如果没有点击开始,清空HMI传过来的检测器数据
else else
{ {
// Console.WriteLine(cur_filenameSumList+"已就绪");
listPoint.Clear(); listPoint.Clear();
timePoint.Clear(); timePoint.Clear();
//Console.WriteLine("等待开始按钮!"); //Console.WriteLine("等待开始按钮!");
...@@ -195,8 +203,11 @@ namespace GcDevicePc.ProThread ...@@ -195,8 +203,11 @@ namespace GcDevicePc.ProThread
} }
} }
#endregion #endregion
} }
#region 取消功能 #region 取消功能
if (globaldata.cancelflag1) if (globaldata.cancelflag1)
......
...@@ -29,6 +29,7 @@ namespace GcDevicePc.ProThread ...@@ -29,6 +29,7 @@ namespace GcDevicePc.ProThread
try try
{ {
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//socket = socket()需要在for循环里面,因为TCP的套接字描述符不能重用,需要在每个TCP的connect创建连接之前重新创建一个新的套接字描述符。后期验证
// int id = Thread.CurrentThread.ManagedThreadId; // int id = Thread.CurrentThread.ManagedThreadId;
// Console.WriteLine("当前线程{0:X}", id); // Console.WriteLine("当前线程{0:X}", id);
......
...@@ -11,6 +11,7 @@ namespace GcDevicePc.ProThread ...@@ -11,6 +11,7 @@ namespace GcDevicePc.ProThread
public class GcDataTh public class GcDataTh
{ {
#region 变量 #region 变量
public struct stTemp public struct stTemp
{ {
public ushort usCurTemp_Word1; public ushort usCurTemp_Word1;
...@@ -153,7 +154,7 @@ namespace GcDevicePc.ProThread ...@@ -153,7 +154,7 @@ namespace GcDevicePc.ProThread
break; break;
k = n; k = n;
} }
#region 无意义
if (useflag == 0) if (useflag == 0)
{ {
if ((Int32)(arr[0] - fDetMax_Time) < -100000) if ((Int32)(arr[0] - fDetMax_Time) < -100000)
...@@ -175,6 +176,7 @@ namespace GcDevicePc.ProThread ...@@ -175,6 +176,7 @@ namespace GcDevicePc.ProThread
//bDetMax_Time = arr[0]; //bDetMax_Time = arr[0];
} }
} }
#endregion
} }
#region 三通道数据获取 #region 三通道数据获取
...@@ -201,12 +203,14 @@ namespace GcDevicePc.ProThread ...@@ -201,12 +203,14 @@ namespace GcDevicePc.ProThread
UInt32[] timev = new UInt32[30]; UInt32[] timev = new UInt32[30];
float[] fidv = new float[30]; float[] fidv = new float[30];
if (this.setflag) if (this.setflag)//联机后执行
{ {
ret = m_modbus.ReadHoldingReg(address, num, this.strIP, this.netPost, ref dest); ret = m_modbus.ReadHoldingReg(address, num, this.strIP, this.netPost, ref dest);
#region 通过能否读到继电器来决定是否继续 #region 通过能否读到继电器来决定是否继续
if (ret == 0) if (ret == 0)
{ {
//Console.WriteLine(dest);
//获取信号值放入fidv集合(30个)
for (int start = 0, i = 0; start < num;) for (int start = 0, i = 0; start < num;)
{ {
tmp = dest[start + 1]; tmp = dest[start + 1];
...@@ -220,13 +224,14 @@ namespace GcDevicePc.ProThread ...@@ -220,13 +224,14 @@ namespace GcDevicePc.ProThread
start += 4; start += 4;
i++; i++;
} }
//依据dest排序
BubbleSort(ref timev, ref fidv, num / 4, 0); BubbleSort(ref timev, ref fidv, num / 4, 0);
{ {
for (int i = 0; i < num / 4; i++) for (int i = 0; i < num / 4; i++)
{ {
tmp = timev[i]; tmp = timev[i];
//(16)0xFFFFFF00=(10)4294967040
if (fDetMax_Time > 0xFFFFFF00 && tmp < 0xFFFFF000) if (fDetMax_Time > 0xFFFFFF00 && tmp < 0xFFFFF000)
{ {
bOverTimes1 = true; bOverTimes1 = true;
...@@ -234,6 +239,7 @@ namespace GcDevicePc.ProThread ...@@ -234,6 +239,7 @@ namespace GcDevicePc.ProThread
fDetMax_Time = 0; fDetMax_Time = 0;
//Console.WriteLine("Date Over\r\n"); //Console.WriteLine("Date Over\r\n");
} }
//(16)0x00FFFFFF=(10)16777215
if ((tmp > fDetMax_Time && Math.Abs(tmp - fDetMax_Time) < 0x00FFFFFF) || bFirstMaxTim1 == true) if ((tmp > fDetMax_Time && Math.Abs(tmp - fDetMax_Time) < 0x00FFFFFF) || bFirstMaxTim1 == true)
{ {
// Console.WriteLine($"MaxTime is {string.Format("{0:X}", fDetMax_Time)}: Temp is :{string.Format("{0:X}", tmp)}"); // Console.WriteLine($"MaxTime is {string.Format("{0:X}", fDetMax_Time)}: Temp is :{string.Format("{0:X}", tmp)}");
...@@ -253,6 +259,9 @@ namespace GcDevicePc.ProThread ...@@ -253,6 +259,9 @@ namespace GcDevicePc.ProThread
#region 实时绘图原始数据 #region 实时绘图原始数据
lock (globaldata.m_signalbuffer.Draw_Port) lock (globaldata.m_signalbuffer.Draw_Port)
{ {
Thread.Sleep(1);
//缓存信号值,最大5120,最大后重置
if (globaldata.m_signalbuffer.Draw_Port.Count < globaldata.MAX_ARRAY_LEN) if (globaldata.m_signalbuffer.Draw_Port.Count < globaldata.MAX_ARRAY_LEN)
{ {
globaldata.m_signalbuffer.Draw_Port.Add(globaldata.m_signalbuffer.Channel1_Port); globaldata.m_signalbuffer.Draw_Port.Add(globaldata.m_signalbuffer.Channel1_Port);
...@@ -261,12 +270,13 @@ namespace GcDevicePc.ProThread ...@@ -261,12 +270,13 @@ namespace GcDevicePc.ProThread
{ {
globaldata.m_signalbuffer.Draw_Port.Clear(); globaldata.m_signalbuffer.Draw_Port.Clear();
} }
} }
#endregion #endregion
#region 本地hw谱图原始数据(具体传输在ChannelDataSaveSum子类中) #region 本地hw谱图原始数据(具体传输在ChannelDataSaveSum子类中)
lock (globaldata.m_signalbuffer.Save_Port) lock (globaldata.m_signalbuffer.Save_Port)
{ { Thread.Sleep(1);
if (globaldata.m_signalbuffer.Save_Port.Count < globaldata.MAX_ARRAY_LEN) if (globaldata.m_signalbuffer.Save_Port.Count < globaldata.MAX_ARRAY_LEN)
{ {
globaldata.m_signalbuffer.Save_Port.Add(globaldata.m_signalbuffer.Channel1_Port); globaldata.m_signalbuffer.Save_Port.Add(globaldata.m_signalbuffer.Channel1_Port);
...@@ -275,6 +285,7 @@ namespace GcDevicePc.ProThread ...@@ -275,6 +285,7 @@ namespace GcDevicePc.ProThread
{ {
globaldata.m_signalbuffer.Save_Port.Clear(); globaldata.m_signalbuffer.Save_Port.Clear();
} }
} }
#endregion #endregion
...@@ -326,10 +337,7 @@ namespace GcDevicePc.ProThread ...@@ -326,10 +337,7 @@ namespace GcDevicePc.ProThread
} }
} }
} }
else
{
Log.Info("前检测信号卡死\t"+"ret!=0"+"\taddress:"+address+"\tnum:" +num+"\tthis.strIP:"+ this.strIP+"\tthis.netPost:" +this.netPost+"\tdest:" +dest +"\t"+DateTime.Now.ToString());
}
#endregion #endregion
} }
} }
...@@ -374,10 +382,10 @@ namespace GcDevicePc.ProThread ...@@ -374,10 +382,10 @@ namespace GcDevicePc.ProThread
for (int i = 0; i < num / 4; i++) for (int i = 0; i < num / 4; i++)
{ {
tmp = timev[i]; tmp = timev[i];
if(iDetMax_Time > 0xFFFFF000 && tmp < 0x00FFFFFF) if (iDetMax_Time > 0xFFFFF000 && tmp < 0x00FFFFFF)
{ {
bOverTimes2 = true; bOverTimes2 = true;
OverTimes2 ++; OverTimes2++;
iDetMax_Time = 0; iDetMax_Time = 0;
} }
if ((tmp > iDetMax_Time && Math.Abs(tmp - iDetMax_Time) < 0x00FFFFFF) || bFirstMaxTim2 == true) if ((tmp > iDetMax_Time && Math.Abs(tmp - iDetMax_Time) < 0x00FFFFFF) || bFirstMaxTim2 == true)
...@@ -393,7 +401,7 @@ namespace GcDevicePc.ProThread ...@@ -393,7 +401,7 @@ namespace GcDevicePc.ProThread
{ {
globaldata.m_signalbuffer.Draw_Port2.Add(globaldata.m_signalbuffer.Channel2_Port); globaldata.m_signalbuffer.Draw_Port2.Add(globaldata.m_signalbuffer.Channel2_Port);
} }
if(globaldata.m_signalbuffer.Save_Port2.Count < globaldata.MAX_ARRAY_LEN) if (globaldata.m_signalbuffer.Save_Port2.Count < globaldata.MAX_ARRAY_LEN)
{ {
globaldata.m_signalbuffer.Save_Port2.Add(globaldata.m_signalbuffer.Channel2_Port); globaldata.m_signalbuffer.Save_Port2.Add(globaldata.m_signalbuffer.Channel2_Port);
} }
...@@ -440,7 +448,7 @@ namespace GcDevicePc.ProThread ...@@ -440,7 +448,7 @@ namespace GcDevicePc.ProThread
} }
else else
{ {
Log.Info("中检测信号卡死\t"+"ret!=0"+"\taddress:"+address+"\tnum:" +num+"\tthis.strIP:"+ this.strIP+"\tthis.netPost:" +this.netPost+"\tdest:" +dest +"\t"+DateTime.Now.ToString()); Log.Info("中检测信号卡死\t" + "ret!=0" + "\taddress:" + address + "\tnum:" + num + "\tthis.strIP:" + this.strIP + "\tthis.netPost:" + this.netPost + "\tdest:" + dest + "\t" + DateTime.Now.ToString());
} }
} }
...@@ -485,10 +493,10 @@ namespace GcDevicePc.ProThread ...@@ -485,10 +493,10 @@ namespace GcDevicePc.ProThread
for (int i = 0; i < num / 4; i++) for (int i = 0; i < num / 4; i++)
{ {
tmp = timev[i]; tmp = timev[i];
if(bDetMax_Time > 0xFFFFFF00 && tmp < 0x000FFFFF) if (bDetMax_Time > 0xFFFFFF00 && tmp < 0x000FFFFF)
{ {
bOverTimes3 = true; bOverTimes3 = true;
OverTimes3 ++; OverTimes3++;
bDetMax_Time = 0; bDetMax_Time = 0;
} }
if ((tmp > bDetMax_Time && Math.Abs(tmp - bDetMax_Time) < 0x00FFFFFF) || bFirstMaxTim3 == true) if ((tmp > bDetMax_Time && Math.Abs(tmp - bDetMax_Time) < 0x00FFFFFF) || bFirstMaxTim3 == true)
...@@ -505,7 +513,7 @@ namespace GcDevicePc.ProThread ...@@ -505,7 +513,7 @@ namespace GcDevicePc.ProThread
{ {
globaldata.m_signalbuffer.Draw_Port3.Add(globaldata.m_signalbuffer.Channel3_Port); globaldata.m_signalbuffer.Draw_Port3.Add(globaldata.m_signalbuffer.Channel3_Port);
} }
if(globaldata.m_signalbuffer.Save_Port3.Count < globaldata.MAX_ARRAY_LEN) if (globaldata.m_signalbuffer.Save_Port3.Count < globaldata.MAX_ARRAY_LEN)
{ {
globaldata.m_signalbuffer.Save_Port3.Add(globaldata.m_signalbuffer.Channel3_Port); globaldata.m_signalbuffer.Save_Port3.Add(globaldata.m_signalbuffer.Channel3_Port);
} }
...@@ -527,7 +535,7 @@ namespace GcDevicePc.ProThread ...@@ -527,7 +535,7 @@ namespace GcDevicePc.ProThread
} }
} }
} }
else if(globaldata.m_pcbuffer.gcpcinfo.pcworkinfo.sendtoZb) else if (globaldata.m_pcbuffer.gcpcinfo.pcworkinfo.sendtoZb)
{ {
lock (globaldata.channelA_C) lock (globaldata.channelA_C)
{ {
...@@ -550,7 +558,7 @@ namespace GcDevicePc.ProThread ...@@ -550,7 +558,7 @@ namespace GcDevicePc.ProThread
} }
else else
{ {
Log.Info("后检测信号卡死\t"+"ret!=0"+"\taddress:"+address+"\tnum:" +num+"\tthis.strIP:"+ this.strIP+"\tthis.netPost:" +this.netPost+"\tdest:" +dest +"\t"+DateTime.Now.ToString()); Log.Info("后检测信号卡死\t" + "ret!=0" + "\taddress:" + address + "\tnum:" + num + "\tthis.strIP:" + this.strIP + "\tthis.netPost:" + this.netPost + "\tdest:" + dest + "\t" + DateTime.Now.ToString());
} }
} }
} }
...@@ -911,7 +919,7 @@ namespace GcDevicePc.ProThread ...@@ -911,7 +919,7 @@ namespace GcDevicePc.ProThread
ushort[] firestatus = new ushort[4] { 0, 0, 0, 0 }; ushort[] firestatus = new ushort[4] { 0, 0, 0, 0 };
ushort[] dacstatus = new ushort[6] { 0, 0, 0, 0, 0, 0 }; ushort[] dacstatus = new ushort[6] { 0, 0, 0, 0, 0, 0 };
ushort[] hmiabnormal = new ushort[4]; ushort[] hmiabnormal = new ushort[4];
ushort[] hmipower = new ushort[6] { 0,0,0,0,0,0}; ushort[] hmipower = new ushort[6] { 0, 0, 0, 0, 0, 0 };
//ushort[] epcdata = new ushort[36]; //ushort[] epcdata = new ushort[36];
ushort[] epc1 = new ushort[6]; ushort[] epc1 = new ushort[6];
...@@ -1236,9 +1244,9 @@ namespace GcDevicePc.ProThread ...@@ -1236,9 +1244,9 @@ namespace GcDevicePc.ProThread
if (globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) if (globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5)
{ {
UInt64 StartTime = Get_Method_StartTime(); UInt64 StartTime = Get_Method_StartTime();
if((HMIStartBeforeTime > 0xFFF00000 && StartTime < 0x00FFFFF) || (HMIStartOverTimes == 0 && (bOverTimes1 == true || bOverTimes2 == true || bOverTimes3 == true))) if ((HMIStartBeforeTime > 0xFFF00000 && StartTime < 0x00FFFFF) || (HMIStartOverTimes == 0 && (bOverTimes1 == true || bOverTimes2 == true || bOverTimes3 == true)))
{ {
HMIStartOverTimes ++; HMIStartOverTimes++;
} }
globaldata.m_hmibuffer.gcinfo.NowStartTime = StartTime + (ulong)(0x100000000 * HMIStartOverTimes); globaldata.m_hmibuffer.gcinfo.NowStartTime = StartTime + (ulong)(0x100000000 * HMIStartOverTimes);
HMIStartBeforeTime = StartTime; HMIStartBeforeTime = StartTime;
...@@ -1250,7 +1258,7 @@ namespace GcDevicePc.ProThread ...@@ -1250,7 +1258,7 @@ namespace GcDevicePc.ProThread
UInt64 EndTime = Get_Method_EndTime(); UInt64 EndTime = Get_Method_EndTime();
if ((HMIEndBeforeTime > 0xFFF00000 && EndTime < 0x000FFFFF) || (HMIEndOverTimes == 0 && (bOverTimes1 == true || bOverTimes2 == true || bOverTimes3 == true))) if ((HMIEndBeforeTime > 0xFFF00000 && EndTime < 0x000FFFFF) || (HMIEndOverTimes == 0 && (bOverTimes1 == true || bOverTimes2 == true || bOverTimes3 == true)))
{ {
HMIEndOverTimes ++; HMIEndOverTimes++;
} }
globaldata.m_hmibuffer.gcinfo.NowEndTime = EndTime + (ulong)(0x100000000 * HMIEndOverTimes); globaldata.m_hmibuffer.gcinfo.NowEndTime = EndTime + (ulong)(0x100000000 * HMIEndOverTimes);
HMIEndBeforeTime = EndTime; HMIEndBeforeTime = EndTime;
...@@ -1357,14 +1365,17 @@ namespace GcDevicePc.ProThread ...@@ -1357,14 +1365,17 @@ namespace GcDevicePc.ProThread
{ {
try try
{ {
while (!channelmre.WaitOne(500)) while (!channelmre.WaitOne(500))
{ {
try try
{ {
lock (globaldata.m_signalbuffer.Draw_Port) //20211104注释lock,注释后前检测实时绘图耗时由50~300降为0
{ //lock (globaldata.m_signalbuffer.Draw_Port)
// {
update_channeldata(); update_channeldata();
} // }
} }
catch (Exception e) catch (Exception e)
{ {
......
...@@ -84,7 +84,7 @@ using System.Collections.Generic; ...@@ -84,7 +84,7 @@ using System.Collections.Generic;
if (adapter.OperationalStatus == OperationalStatus.Up) //&& (adapter.Name == Meshport || string.IsNullOrEmpty(Meshport))) if (adapter.OperationalStatus == OperationalStatus.Up) //&& (adapter.Name == Meshport || string.IsNullOrEmpty(Meshport)))
{ {
bool pd1 = (adapter.NetworkInterfaceType == NetworkInterfaceType.Ethernet || adapter.NetworkInterfaceType == NetworkInterfaceType.Wireless80211); //判断是否是以太网连接 bool pd1 = (adapter.NetworkInterfaceType == NetworkInterfaceType.Ethernet || adapter.NetworkInterfaceType == NetworkInterfaceType.Wireless80211); //判断是否是以太网连接或者WIFI
if (pd1) if (pd1)
{ {
IPInterfaceProperties ip = adapter.GetIPProperties(); //IP配置信息 IPInterfaceProperties ip = adapter.GetIPProperties(); //IP配置信息
...@@ -95,13 +95,13 @@ using System.Collections.Generic; ...@@ -95,13 +95,13 @@ using System.Collections.Generic;
{ {
this._localip.Add(ipadd.Address.ToString());//获取ip this._localip.Add(ipadd.Address.ToString());//获取ip
this._localmask.Add(ipadd.IPv4Mask.ToString());//获取子网掩码 this._localmask.Add(ipadd.IPv4Mask.ToString());//获取子网掩码
this._adapter.Add(adapter.Name.ToString()); this._adapter.Add(adapter.Name.ToString());//网口名称
} }
} }
} }
} }
} }
if (_adapter.Contains(Meshport) == true) if (_adapter.Contains(Meshport) == true)//网口是否已存在_adapter集合
{ {
int sIndex = _adapter.IndexOf(Meshport); int sIndex = _adapter.IndexOf(Meshport);
string strLocalip = _localip[sIndex]; string strLocalip = _localip[sIndex];
......
...@@ -405,6 +405,7 @@ namespace GcDevicePc.ProThread ...@@ -405,6 +405,7 @@ namespace GcDevicePc.ProThread
while (!datamre.WaitOne(500)) while (!datamre.WaitOne(500))
{ {
if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) && methodconfig != null && run_stop != true&&(methodconfig.signal.u16ChannelA == 1 || methodconfig.signal.u16ChannelB == 1)) if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) && methodconfig != null && run_stop != true&&(methodconfig.signal.u16ChannelA == 1 || methodconfig.signal.u16ChannelB == 1))
//&&(methodconfig.signal.u16ChannelA == 1 || methodconfig.signal.u16ChannelB == 1)可以避免没有勾选AB通道下执行不必要代码
//if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) && globaldata.m_hmibuffer.gcinfo.hmistatus == 4 && run_stop != true) //if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) && globaldata.m_hmibuffer.gcinfo.hmistatus == 4 && run_stop != true)
{ {
int saveB = 0; int saveB = 0;
...@@ -895,10 +896,6 @@ namespace GcDevicePc.ProThread ...@@ -895,10 +896,6 @@ namespace GcDevicePc.ProThread
StartTimeB = DateTime.Now; StartTimeB = DateTime.Now;
} }
} }
if (recordA==0||recordB==0)
{
Console.ReadKey();
}
} }
catch catch
......
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
...@@ -296,6 +297,8 @@ namespace GcDevicePc.ProThread ...@@ -296,6 +297,8 @@ namespace GcDevicePc.ProThread
public static GCMethodConfig methodconfig { get; set; } public static GCMethodConfig methodconfig { get; set; }
private void SendToHW_Draw() private void SendToHW_Draw()
{ {
Stopwatch sw = new Stopwatch();//获取两次循环的间隔时间,单位毫秒
Stopwatch sw2 = new Stopwatch();//hz测试
DateTime StartTimeA; DateTime StartTimeA;
DateTime StartTimeB; DateTime StartTimeB;
DateTime EndTimeA; DateTime EndTimeA;
...@@ -313,7 +316,7 @@ namespace GcDevicePc.ProThread ...@@ -313,7 +316,7 @@ namespace GcDevicePc.ProThread
bool runflag = false; bool runflag = false;
while (!datamre.WaitOne(500)) while (!datamre.WaitOne(500))
{ {
if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) && methodconfig != null && run_stop != true) if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) && methodconfig != null && run_stop != true&&(methodconfig.signal.u16ChannelA == 1 || methodconfig.signal.u16ChannelB == 1))
//if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) && globaldata.m_hmibuffer.gcinfo.hmistatus == 4 && run_stop != true) //if ((globaldata.m_hmibuffer.gcinfo.methodstatus == 4 || globaldata.m_hmibuffer.gcinfo.methodstatus == 5) && globaldata.m_hmibuffer.gcinfo.hmistatus == 4 && run_stop != true)
{ {
int saveB = 0; int saveB = 0;
...@@ -353,12 +356,143 @@ namespace GcDevicePc.ProThread ...@@ -353,12 +356,143 @@ namespace GcDevicePc.ProThread
int StepA = 0; int StepA = 0;
int StepB = 0; int StepB = 0;
{
StartTimeA = DateTime.Now; StartTimeA = DateTime.Now;
StartTimeB = DateTime.Now; StartTimeB = DateTime.Now;
int mydataA = 0; int mydataA = 0;
int mydataB = 0; int mydataB = 0;
while (true) int hz = 0;
bool bhz = true;
sw.Restart();
while (hz <= 20)
{
upab(ref StartTimeA, ref StartTimeB, out EndTimeA, out EndTimeB, out tsA, out tsB, out secA, out secB, offetA, offetB, SendNumA, SendNumB, ref saveB, ref recordB, ref recordA, ref saveA, ref onea, ref oneb, ref ackoneA, ref ackoneB, ref StepA, ref StepB, ref mydataA, ref mydataB);
if (StepB >= SendNumB && StepA >= SendNumA)
{
run_stop = true;
sw.Stop();
sw2.Stop();
break;
}
if ((globaldata.m_hmibuffer.gcinfo.methodstatus != 4 && globaldata.m_hmibuffer.gcinfo.methodstatus != 5))
{
//LogHelper.I("methodstatus", "stop");
run_stop = true;
sw.Stop();
sw2.Stop();
break;
}
//写入AB
if (StepA < SendNumA || StepB < SendNumB)
{
if (hz == 20 || sw2.ElapsedMilliseconds >= 1000)
{
//发送20次,但是没有到1S,进入等待,凑足1S。测试发现基本是没到1S
if (hz == 20)
{
while (sw2.ElapsedMilliseconds <= 1000)
{
}
}
//到了1S但是次数不足够20,补齐20
else
{
// Console.WriteLine("到了1S但是次数不足够20,补齐20");
for (int i = 0; i < 20 - hz; i++)
{
upab(ref StartTimeA, ref StartTimeB, out EndTimeA, out EndTimeB, out tsA, out tsB, out secA, out secB, offetA, offetB, SendNumA, SendNumB, ref saveB, ref recordB, ref recordA, ref saveA, ref onea, ref oneb, ref ackoneA, ref ackoneB, ref StepA, ref StepB, ref mydataA, ref mydataB);
SendDataToHW_AB(mydataA, mydataB);
}
}
hz = 0;
sw.Restart();
sw2.Restart();
continue;
}
if (sw.ElapsedMilliseconds == 0 || sw.ElapsedMilliseconds > 50)
{
sw.Restart();
SendDataToHW_AB(mydataA, mydataB);
if (bhz == true)
{
sw2.Restart();
bhz = false;
}
hz++;
Thread.Sleep(1);
continue;
}
else
{
Thread.Sleep(50 - (int)sw.ElapsedMilliseconds);
sw.Restart();
SendDataToHW_AB(mydataA, mydataB);
if (bhz == true)
{
sw2.Restart();
bhz = false;
}
hz++;
continue;
}
}
}
#region 已注释
//写入A
/*
if (StepA < SendNumA && StepB >= SendNumB)
{
// LogHelper.I("SendDataToHW_A", secA.ToString());
SendDataToHW_A(mydataA);
Thread.Sleep(50);
}
//写入B
if (StepB < SendNumB && StepA >= SendNumA)
{
// LogHelper.I("SendDataToHW_B", secB.ToString());
SendDataToHW_B(mydataB);
Thread.Sleep(50);
}
*/
//if ((globaldata.m_hmibuffer.gcinfo.methodstatus != 4 && globaldata.m_hmibuffer.gcinfo.methodstatus != 5))
//{
// break;
//}
#endregion
}
}
if ((globaldata.m_hmibuffer.gcinfo.methodstatus != 4 && globaldata.m_hmibuffer.gcinfo.methodstatus != 5) || run_stop)
{
if (runflag)
{
StopSendDataToHW();
CleanAllToHWData();
runflag = false;
run_stop = false;
}
}
}
}
private static void upab(ref DateTime StartTimeA, ref DateTime StartTimeB, out DateTime EndTimeA, out DateTime EndTimeB, out TimeSpan tsA, out TimeSpan tsB, out int secA, out int secB, int offetA, int offetB, ushort SendNumA, ushort SendNumB, ref int saveB, ref int recordB, ref int recordA, ref int saveA, ref int onea, ref int oneb, ref bool ackoneA, ref bool ackoneB, ref int StepA, ref int StepB, ref int mydataA, ref int mydataB)
{ {
EndTimeA = DateTime.Now; EndTimeA = DateTime.Now;
tsA = StartTimeA.Subtract(EndTimeA).Duration(); tsA = StartTimeA.Subtract(EndTimeA).Duration();
...@@ -368,6 +502,8 @@ namespace GcDevicePc.ProThread ...@@ -368,6 +502,8 @@ namespace GcDevicePc.ProThread
secB = (int)tsB.TotalSeconds; secB = (int)tsB.TotalSeconds;
try try
{
if (methodconfig.signal.u16ChannelA == 1)
{ {
if (StepA < SendNumA) if (StepA < SendNumA)
{ {
...@@ -519,8 +655,11 @@ namespace GcDevicePc.ProThread ...@@ -519,8 +655,11 @@ namespace GcDevicePc.ProThread
StartTimeA = DateTime.Now; StartTimeA = DateTime.Now;
} }
} }
}
if ( methodconfig.signal.u16ChannelB == 1)
{
if (StepB < SendNumB) if (StepB < SendNumB)
{ {
if (secB <= methodconfig.signal.u16DetTimeLengthB[StepB]) if (secB <= methodconfig.signal.u16DetTimeLengthB[StepB])
...@@ -664,73 +803,11 @@ namespace GcDevicePc.ProThread ...@@ -664,73 +803,11 @@ namespace GcDevicePc.ProThread
} }
} }
} }
catch(Exception ex)
{
File.AppendAllText(Application.StartupPath + "\\HW.txt",ex.Message + "\r\n");//查看HW基线持平原因
}
//写入AB
if (StepA < SendNumA && StepB < SendNumB)
{
//Console.WriteLine("SendDataToHW A B", secA.ToString() + " "+ secB.ToString());
SendDataToHW_AB(mydataA, mydataB);
// File.AppendAllText(Application.StartupPath + "\\HW.txt",$"{DateTime.Now}:SendDataToHW A:{mydataA} B:{mydataB} ChannelA_A Count:{globaldata.channelA_A.Count} ChannelB_A Count:{globaldata.channelB_A.Count}\r\n");//查看HW基线持平原因
Thread.Sleep(50);
}
//写入A
if (StepA < SendNumA && StepB >= SendNumB)
{
// LogHelper.I("SendDataToHW_A", secA.ToString());
SendDataToHW_A(mydataA);
Thread.Sleep(50);
}
//写入B
if (StepB < SendNumB && StepA >= SendNumA)
{
// LogHelper.I("SendDataToHW_B", secB.ToString());
SendDataToHW_B(mydataB);
Thread.Sleep(50);
}
if (StepB >= SendNumB && StepA >= SendNumA)
{
run_stop = true;
break;
}
if ((globaldata.m_hmibuffer.gcinfo.methodstatus != 4 && globaldata.m_hmibuffer.gcinfo.methodstatus != 5))
{
//LogHelper.I("methodstatus", "stop");
run_stop = true;
break;
} }
} catch (Exception ex)
//if ((globaldata.m_hmibuffer.gcinfo.methodstatus != 4 && globaldata.m_hmibuffer.gcinfo.methodstatus != 5))
//{
// break;
//}
}
}
}
if ((globaldata.m_hmibuffer.gcinfo.methodstatus != 4 && globaldata.m_hmibuffer.gcinfo.methodstatus != 5) || run_stop)
{ {
if (runflag) File.AppendAllText(Application.StartupPath + "\\HW.txt", ex.Message + "\r\n");//查看HW基线持平原因
{
StopSendDataToHW();
CleanAllToHWData();
runflag = false;
run_stop = false;
}
}
} }
} }
......
...@@ -236,7 +236,7 @@ namespace GcDevicePc ...@@ -236,7 +236,7 @@ namespace GcDevicePc
})); }));
break; break;
} }
} }//如果没有从集合找到可连接IP,进入下一步
if (bCanFindBindHMI == true) if (bCanFindBindHMI == true)
{ {
break; break;
...@@ -332,7 +332,7 @@ namespace GcDevicePc ...@@ -332,7 +332,7 @@ namespace GcDevicePc
{ {
try try
{ {
globaldata.connection_ip = ((globaldata.DeviceInfo)globaldata.DeviceList[HMIMACComboBox1.SelectedIndex]).IpAddr; globaldata.connection_ip = ((globaldata.DeviceInfo)globaldata.DeviceList[HMIMACComboBox1.SelectedIndex]).IpAddr;//ip和mac绑定
bBindOK = true; bBindOK = true;
this.label3.Text = ""; this.label3.Text = "";
HMIMACComboBox1.Visible = false; HMIMACComboBox1.Visible = false;
...@@ -353,12 +353,12 @@ namespace GcDevicePc ...@@ -353,12 +353,12 @@ namespace GcDevicePc
private void vSearch_HMI_Poll() private void vSearch_HMI_Poll()
{ {
Thread.Sleep(10000); //延时10S等待HMI开机 // Thread.Sleep(10000); //延时10S等待HMI开机,改为用户指定(选项)
HMISearch mysearch = new HMISearch(globaldata.m_pcbuffer.gcpcinfo.pcworkinfo.hmimac); HMISearch mysearch = new HMISearch(globaldata.m_pcbuffer.gcpcinfo.pcworkinfo.hmimac);
mysearch.bSearch_Bind_HMI(); mysearch.bSearch_Bind_HMI();
bStartSearchOK = true; bStartSearchOK = true;
mysearch.ThStart(); mysearch.ThStart();
mysearch.ThStart(); // mysearch.ThStart();
if (globaldata.DeviceList.Count < 1) if (globaldata.DeviceList.Count < 1)
{ {
......
...@@ -24,7 +24,7 @@ AppName= ...@@ -24,7 +24,7 @@ AppName=
Name=admin Name=admin
Password=0 Password=0
[SendData] [SendData]
Thirdparty=1 Thirdparty=0
Foreign=1 Foreign=1
[SaveData] [SaveData]
ZBSaveData=1 ZBSaveData=1
......
No preview for this file type
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment