Skip to content

Commit 76eca5c

Browse files
committed
Add Loss counts ratio
1 parent 7413e98 commit 76eca5c

9 files changed

+181
-27
lines changed

BecquerelMonitor/BecquerelMonitor.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
3737
<WebPage>index.html</WebPage>
3838
<ApplicationRevision>1</ApplicationRevision>
39-
<ApplicationVersion>2024.07.25.1</ApplicationVersion>
39+
<ApplicationVersion>2024.08.27.1</ApplicationVersion>
4040
<UseApplicationTrust>true</UseApplicationTrust>
4141
<PublishWizardCompleted>true</PublishWizardCompleted>
4242
<BootstrapperEnabled>true</BootstrapperEnabled>

BecquerelMonitor/CountRate.cs

+15-1
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@ namespace BecquerelMonitor
88
{
99
public class CountRate
1010
{
11-
public CountRate(int counts_, double elapsedtime_)
11+
public CountRate(int counts_, int invalidcounts_, double elapsedtime_)
1212
{
1313
this.counts = counts_;
1414
this.elapsedtime = elapsedtime_;
15+
this.invalidcounts = invalidcounts_;
1516
}
1617

1718
public int Counts
@@ -38,7 +39,20 @@ public double ElapsedTimeInMs
3839
}
3940
}
4041

42+
public int InvalidCounts
43+
{
44+
get
45+
{
46+
return this.invalidcounts;
47+
}
48+
set
49+
{
50+
this.invalidcounts = value;
51+
}
52+
}
53+
4154
int counts;
4255
double elapsedtime;
56+
int invalidcounts;
4357
}
4458
}

BecquerelMonitor/CountsRateManager.cs

+33-4
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ public void AppendResultData(ResultData resultData)
3232
new_time - resultData.CountRates[resultData.CountRates.Count - 1].ElapsedTimeInMs < 1000.0) return;
3333
}
3434

35-
if (resultData.CountRates.Count >= UpperWindow)
35+
if (resultData.CountRates.Count >= UpperWindow)
3636
{
3737
resultData.CountRates.RemoveAt(0);
3838
}
39-
resultData.CountRates.Add(new CountRate(new_counts, new_time));
39+
resultData.CountRates.Add(new CountRate(new_counts, resultData.EnergySpectrum.TotalPulseCount - resultData.EnergySpectrum.ValidPulseCount, new_time));
4040
}
4141

4242
public decimal GetCPS(ResultData resultData, decimal window)
@@ -53,8 +53,7 @@ public decimal GetCPS(ResultData resultData, decimal window)
5353
}
5454
else
5555
{
56-
if (first_countRate == null ||
57-
last_countRate.ElapsedTimeInMs <= first_countRate.ElapsedTimeInMs)
56+
if (first_countRate == null || last_countRate.ElapsedTimeInMs <= first_countRate.ElapsedTimeInMs)
5857
{
5958
first_countRate = resultData.CountRates[i];
6059
continue;
@@ -71,5 +70,35 @@ public decimal GetCPS(ResultData resultData, decimal window)
7170
return (decimal)result;
7271
}
7372

73+
public int GetSpecEffRatio(ResultData resultData, decimal window)
74+
{
75+
if (resultData.CountRates.Count <= 3) return 0;
76+
double win_ms = resultData.CountRates[resultData.CountRates.Count - 1].ElapsedTimeInMs - (double)(window * 1000);
77+
CountRate last_countRate = resultData.CountRates[resultData.CountRates.Count - 1];
78+
CountRate first_countRate = null;
79+
80+
for (int i = resultData.CountRates.Count - 2; i >= 0; i--)
81+
{
82+
if (resultData.CountRates[i].ElapsedTimeInMs >= win_ms)
83+
{
84+
first_countRate = resultData.CountRates[i];
85+
}
86+
else
87+
{
88+
if (first_countRate == null || last_countRate.ElapsedTimeInMs <= first_countRate.ElapsedTimeInMs)
89+
{
90+
first_countRate = resultData.CountRates[i];
91+
continue;
92+
}
93+
break;
94+
}
95+
}
96+
97+
double totaldelta = last_countRate.Counts - first_countRate.Counts;
98+
double invaliddelta = last_countRate.InvalidCounts - first_countRate.InvalidCounts;
99+
100+
int result = (int)(100.0 * (invaliddelta / totaldelta));
101+
return result;
102+
}
74103
}
75104
}

BecquerelMonitor/DCCountRateView.Designer.cs

+25
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

BecquerelMonitor/DCCountRateView.cs

+3-8
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,10 @@ public decimal getWindow()
1818
}
1919

2020

21-
public void ShowCountsRate(decimal value)
21+
public void UpdateInfo(decimal Cps, int sEffRatio)
2222
{
23-
if (value == 0)
24-
{
25-
this.cpslabel.Text = "0.00";
26-
return;
27-
}
28-
29-
this.cpslabel.Text = String.Format("{0:F2}", value);
23+
this.LossCountsRatioValLbl.Text = sEffRatio.ToString();
24+
this.cpslabel.Text = String.Format("{0:F2}", Cps);
3025
}
3126

3227
GlobalConfigManager globalConfigManager = GlobalConfigManager.GetInstance();

BecquerelMonitor/DCCountRateView.resx

+97-10
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@
123123
</data>
124124
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
125125
<data name="timeConstantLbl.Location" type="System.Drawing.Point, System.Drawing">
126-
<value>10, 53</value>
126+
<value>10, 93</value>
127127
</data>
128128
<data name="timeConstantLbl.Size" type="System.Drawing.Size, System.Drawing">
129129
<value>75, 13</value>
@@ -144,7 +144,7 @@
144144
<value>$this</value>
145145
</data>
146146
<data name="&gt;&gt;timeConstantLbl.ZOrder" xml:space="preserve">
147-
<value>5</value>
147+
<value>8</value>
148148
</data>
149149
<data name="countsRateLbl.AutoSize" type="System.Boolean, mscorlib">
150150
<value>True</value>
@@ -171,7 +171,7 @@
171171
<value>$this</value>
172172
</data>
173173
<data name="&gt;&gt;countsRateLbl.ZOrder" xml:space="preserve">
174-
<value>4</value>
174+
<value>7</value>
175175
</data>
176176
<data name="cpslabel.Font" type="System.Drawing.Font, System.Drawing">
177177
<value>Microsoft Sans Serif, 14.25pt, style=Bold</value>
@@ -228,13 +228,13 @@
228228
<value>$this</value>
229229
</data>
230230
<data name="&gt;&gt;label4.ZOrder" xml:space="preserve">
231-
<value>3</value>
231+
<value>6</value>
232232
</data>
233233
<data name="secLbl.AutoSize" type="System.Boolean, mscorlib">
234234
<value>True</value>
235235
</data>
236236
<data name="secLbl.Location" type="System.Drawing.Point, System.Drawing">
237-
<value>168, 54</value>
237+
<value>168, 94</value>
238238
</data>
239239
<data name="secLbl.Size" type="System.Drawing.Size, System.Drawing">
240240
<value>24, 13</value>
@@ -255,7 +255,7 @@
255255
<value>$this</value>
256256
</data>
257257
<data name="&gt;&gt;secLbl.ZOrder" xml:space="preserve">
258-
<value>2</value>
258+
<value>5</value>
259259
</data>
260260
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
261261
<value>93, 9</value>
@@ -276,10 +276,10 @@
276276
<value>$this</value>
277277
</data>
278278
<data name="&gt;&gt;panel1.ZOrder" xml:space="preserve">
279-
<value>1</value>
279+
<value>4</value>
280280
</data>
281281
<data name="windowControl.Location" type="System.Drawing.Point, System.Drawing">
282-
<value>107, 50</value>
282+
<value>107, 90</value>
283283
</data>
284284
<data name="windowControl.Size" type="System.Drawing.Size, System.Drawing">
285285
<value>54, 20</value>
@@ -301,6 +301,93 @@
301301
<value>$this</value>
302302
</data>
303303
<data name="&gt;&gt;windowControl.ZOrder" xml:space="preserve">
304+
<value>3</value>
305+
</data>
306+
<data name="LossCountsRatioLabel.AutoSize" type="System.Boolean, mscorlib">
307+
<value>True</value>
308+
</data>
309+
<data name="LossCountsRatioLabel.Location" type="System.Drawing.Point, System.Drawing">
310+
<value>9, 62</value>
311+
</data>
312+
<data name="LossCountsRatioLabel.Size" type="System.Drawing.Size, System.Drawing">
313+
<value>93, 13</value>
314+
</data>
315+
<data name="LossCountsRatioLabel.TabIndex" type="System.Int32, mscorlib">
316+
<value>10</value>
317+
</data>
318+
<data name="LossCountsRatioLabel.Text" xml:space="preserve">
319+
<value>Loss Counts Ratio</value>
320+
</data>
321+
<data name="&gt;&gt;LossCountsRatioLabel.Name" xml:space="preserve">
322+
<value>LossCountsRatioLabel</value>
323+
</data>
324+
<data name="&gt;&gt;LossCountsRatioLabel.Type" xml:space="preserve">
325+
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
326+
</data>
327+
<data name="&gt;&gt;LossCountsRatioLabel.Parent" xml:space="preserve">
328+
<value>$this</value>
329+
</data>
330+
<data name="&gt;&gt;LossCountsRatioLabel.ZOrder" xml:space="preserve">
331+
<value>2</value>
332+
</data>
333+
<data name="LossCountsRatioValLbl.Font" type="System.Drawing.Font, System.Drawing">
334+
<value>Microsoft Sans Serif, 14.25pt, style=Bold</value>
335+
</data>
336+
<data name="LossCountsRatioValLbl.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
337+
<value>NoControl</value>
338+
</data>
339+
<data name="LossCountsRatioValLbl.Location" type="System.Drawing.Point, System.Drawing">
340+
<value>114, 54</value>
341+
</data>
342+
<data name="LossCountsRatioValLbl.Size" type="System.Drawing.Size, System.Drawing">
343+
<value>94, 24</value>
344+
</data>
345+
<data name="LossCountsRatioValLbl.TabIndex" type="System.Int32, mscorlib">
346+
<value>5</value>
347+
</data>
348+
<data name="LossCountsRatioValLbl.Text" xml:space="preserve">
349+
<value>0</value>
350+
</data>
351+
<data name="LossCountsRatioValLbl.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
352+
<value>MiddleRight</value>
353+
</data>
354+
<data name="&gt;&gt;LossCountsRatioValLbl.Name" xml:space="preserve">
355+
<value>LossCountsRatioValLbl</value>
356+
</data>
357+
<data name="&gt;&gt;LossCountsRatioValLbl.Type" xml:space="preserve">
358+
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
359+
</data>
360+
<data name="&gt;&gt;LossCountsRatioValLbl.Parent" xml:space="preserve">
361+
<value>$this</value>
362+
</data>
363+
<data name="&gt;&gt;LossCountsRatioValLbl.ZOrder" xml:space="preserve">
364+
<value>1</value>
365+
</data>
366+
<data name="percentlbl.AutoSize" type="System.Boolean, mscorlib">
367+
<value>True</value>
368+
</data>
369+
<data name="percentlbl.Location" type="System.Drawing.Point, System.Drawing">
370+
<value>222, 61</value>
371+
</data>
372+
<data name="percentlbl.Size" type="System.Drawing.Size, System.Drawing">
373+
<value>15, 13</value>
374+
</data>
375+
<data name="percentlbl.TabIndex" type="System.Int32, mscorlib">
376+
<value>11</value>
377+
</data>
378+
<data name="percentlbl.Text" xml:space="preserve">
379+
<value>%</value>
380+
</data>
381+
<data name="&gt;&gt;percentlbl.Name" xml:space="preserve">
382+
<value>percentlbl</value>
383+
</data>
384+
<data name="&gt;&gt;percentlbl.Type" xml:space="preserve">
385+
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
386+
</data>
387+
<data name="&gt;&gt;percentlbl.Parent" xml:space="preserve">
388+
<value>$this</value>
389+
</data>
390+
<data name="&gt;&gt;percentlbl.ZOrder" xml:space="preserve">
304391
<value>0</value>
305392
</data>
306393
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@@ -316,7 +403,7 @@
316403
<value>365, 90</value>
317404
</data>
318405
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
319-
<value>366, 90</value>
406+
<value>366, 130</value>
320407
</data>
321408
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
322409
<value>Microsoft Sans Serif, 8pt</value>
@@ -331,6 +418,6 @@
331418
<value>DCCountRateView</value>
332419
</data>
333420
<data name="&gt;&gt;$this.Type" xml:space="preserve">
334-
<value>BecquerelMonitor.ToolWindow, BecquerelMonitor, Version=2024.7.8.3, Culture=neutral, PublicKeyToken=null</value>
421+
<value>BecquerelMonitor.ToolWindow, BecquerelMonitor, Version=2024.7.25.1, Culture=neutral, PublicKeyToken=null</value>
335422
</data>
336423
</root>

BecquerelMonitor/DCCountRateView.ru.resx

+3
Original file line numberDiff line numberDiff line change
@@ -133,4 +133,7 @@
133133
<data name="secLbl.Text" xml:space="preserve">
134134
<value>сек</value>
135135
</data>
136+
<data name="LossCountsRatioLabel.Text" xml:space="preserve">
137+
<value>Потери счёта</value>
138+
</data>
136139
</root>

BecquerelMonitor/MainForm.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -598,7 +598,8 @@ public void ShowCountsRate()
598598
{
599599
decimal window = this.dcCountRateView.getWindow();
600600
decimal cps = this.countsRateManager.GetCPS(this.activeDocument.ActiveResultData, window);
601-
this.dcCountRateView.ShowCountsRate(cps);
601+
int speceffratio = this.countsRateManager.GetSpecEffRatio(this.activeDocument.ActiveResultData, window);
602+
this.dcCountRateView.UpdateInfo(cps, speceffratio);
602603
}
603604
}
604605

BecquerelMonitor/Properties/AssemblyInfo.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
using System.Runtime.CompilerServices;
55
using System.Runtime.InteropServices;
66

7-
[assembly: AssemblyVersion("2024.07.25.1")]
7+
[assembly: AssemblyVersion("2024.08.27.1")]
88
[assembly: AssemblyProduct("BecquerelMonitor")]
99
[assembly: AssemblyCopyright("free")]
1010
[assembly: AssemblyTrademark("none")]
1111
[assembly: AssemblyConfiguration("")]
1212
[assembly: Guid("40110b38-4882-47c1-ad94-a71e58dcb5f8")]
13-
[assembly: AssemblyFileVersion("2024.07.25.1")]
13+
[assembly: AssemblyFileVersion("2024.08.27.1")]
1414
[assembly: AssemblyDescription("")]
1515
[assembly: AssemblyCompany("free")]
1616
[assembly: CompilationRelaxations(8)]

0 commit comments

Comments
 (0)