VB.NET Serial_Graphic_Monitor 2ports 16CH RealtimeGraph
'Seril Port Recieve Sample Program | |
'Form1 Object must create ,button1,2 & textbox 1,2 | |
Imports System.Drawing | |
Imports System.IO.Ports | |
Imports Microsoft.VisualBasic.FileIO | |
Imports System.IO | |
Imports System.Text | |
Imports System.Collections | |
Public Class Form1 | |
'======================================================== | |
Dim ReceivedData1 As String = " " '受信データ用変数を宣言します | |
Dim ReceivedData2 As String = " " '受信データ用変数を宣言します | |
Dim ReceivedData3 As String = " " | |
Dim header As String | |
Dim rdata1 As String = "" | |
Dim rdata2 As String = "" | |
Dim rdata3 As String = "" | |
Dim Aflag As Integer = 0 | |
Dim Bflag As Integer = 0 | |
Dim sdnum As Integer | |
Dim dcount As Integer = 0 | |
Dim dummy As String | |
Private com1_None As Integer | |
Private com2_None As Integer | |
'=========Moving Average ====================== | |
Private MA As Integer | |
Private sCH(16) As Integer | |
Private dataSum(16) As Double | |
Private dataA(16) As Double | |
Private dSum As Double | |
Private iniFlag As Integer = 1 '初回のみ指定 | |
'==========LinearMode Parameteres============== | |
Public fStr1, fStr2 As String | |
Public rate(16) As Double | |
Public midvalue(16) As Double | |
Public x1ch, y1ch, x2ch, y2ch, x3ch, y3ch As Integer | |
Public pushMode As Integer = 0 | |
Public pushMode_1 As Integer = 0 | |
Public averaging As Integer = 0 | |
Public pushN As Integer = 0 | |
Public pushN_1 As Integer = 0 | |
Public aveStat As Integer = 0 | |
Public aveNcount As Integer = 0 | |
Public avecount As Integer = 0 | |
Public aveData1X(10000) As Double 'pushModeで得た平均値プロットデータ | |
Public aveData1Y(10000) As Double 'pushModeで得た平均値プロットデータ | |
Public aveData2X(10000) As Double 'pushModeで得た平均値プロットデータ | |
Public aveData2Y(10000) As Double 'pushModeで得た平均値プロットデータ | |
Public aveData3X(10000) As Double 'pushModeで得た平均値プロットデータ | |
Public aveData3Y(10000) As Double 'pushModeで得た平均値プロットデータ | |
Public aveN As Integer | |
Public sum1X As Double = 0 | |
Public sum1Y As Double = 0 | |
Public sum2X As Double = 0 | |
Public sum2Y As Double = 0 | |
Public sum3X As Double = 0 | |
Public sum3Y As Double = 0 | |
Public cp1X As Integer(,) | |
Public cp1Y As Integer(,) | |
Public cp2X As Integer(,) | |
Public cp2Y As Integer(,) | |
Public cp3X As Integer(,) | |
Public cp3Y As Integer(,) | |
'===========Controls ============== | |
Dim Ch_sel(16) As Integer | |
Dim shokaiN As Integer | |
Dim Chsuu As Integer | |
'=========Receive Stop=========== | |
Public rFlag As Integer = 1 | |
Public rcFlag As Integer = 0 | |
'=======file=============== | |
Public f1open As Integer = 0 | |
Public fname As String = "" | |
Public fname1 As String = "" | |
Public file As System.IO.StreamWriter | |
Public file1 As System.IO.StreamWriter | |
Public fsdata As String | |
Public fsdata1 As String | |
Public pushStr, pushStr1, pushStr2, pushStr3 As String | |
'======PictureBoxSize======== | |
Const yh = 240 | |
Const xw = 600 | |
Private onetime As Integer = 1 | |
Delegate Sub DataDelegate(ByVal sdata As String) | |
'=========Available Parameters in thie Class================= | |
Private dStr(100) As String | |
Private dataAry(60000, 16) As Double | |
Private dataNo As Long | |
Dim stm As Integer = 0 | |
'---------Plotting parameters-------------- | |
'Private rate As Double() | |
Private Mag As Double | |
Private dstep As Double 'x軸ドット単位 dot/dataNo | |
Private dvalue As Double = 1 'Y軸ドット単位 dot/mV 10mvで1ドット | |
'----------------------------------------- | |
Private Mave() As Double | |
Private sw As New System.Diagnostics.Stopwatch() | |
Private sw1 As New System.Diagnostics.Stopwatch() | |
Private tp As TimeSpan | |
Private tr As TimeSpan | |
Private timestamp As Integer | |
Private stime As Integer 'plot start sampling time | |
Private etime As Integer 'plot end sampling time | |
Private totalsec As Double | |
Private startFlag As Integer = 0 | |
Private px As Integer | |
Private py As Integer | |
Private px_1 As Integer | |
Private py_1 As Integer '1個前のY座標 | |
'=============================================================== | |
'Least Square Method Function Parameters | |
'=============================================================== | |
Private num(3) As Integer | |
Private sumX(3) As Double | |
Private sumY(3) As Double | |
Private sumX2(3) As Double | |
Private sumY2(3) As Double | |
Private sumXY(3) As Double | |
Private aveX As Double = 0 | |
Private aveY As Double = 0 | |
Private devX As Double = 0 | |
Private devY As Double = 0 | |
Private devXY As Double = 0 | |
Private stdevX As Double = 0 | |
Private stdevY As Double = 0 | |
Private n, n_1 As Integer | |
Private result(4, 3) As Double ' 0:correl 1:slope 2:intercept 3:setN ,setN=1,2,3waku | |
'===================================================================== | |
' Setting Save & Read parameters | |
'===================================================================== | |
Public fname2 As String = "" | |
Public file2 As System.IO.StreamWriter | |
Public fname3 As String = "" | |
Public file3 As System.IO.StreamWriter | |
Private cIndex As Integer | |
Private textboxdata As String | |
Private checkboxdata As String | |
Private comboboxdata As String | |
Private readata(1000) As String | |
'=============================================================================== | |
'=========================LSM Function========================================== | |
'================================================================================ | |
Private Function LSM(ByVal x As Double, ByVal y As Double, ByVal setN As Integer) As Double() | |
Dim a(8) As Double 'correl,slope,intercept,n,aveX,aveY,stdevX,stcevY | |
Dim slope As Double | |
Dim correl As Double | |
Dim intercept As Double | |
num(setN) = num(setN) + 1 | |
sumX(setN) += x | |
sumY(setN) += y | |
aveX = sumX(setN) / num(setN) | |
aveY = sumY(setN) / num(setN) | |
sumX2(setN) += (x - aveX) ^ 2 | |
sumY2(setN) += (y - aveY) ^ 2 | |
sumXY(setN) += (x - aveX) * (y - aveY) | |
devX = sumX2(setN) / num(setN) | |
devY = sumY2(setN) / num(setN) | |
devXY = sumXY(setN) / num(setN) | |
stdevX = Math.Sqrt(devX) | |
stdevY = Math.Sqrt(devY) | |
slope = devXY / devX | |
correl = devXY / (stdevX * stdevY) | |
intercept = aveY - slope * aveX | |
a(0) = correl | |
a(1) = slope | |
a(2) = intercept | |
a(3) = num(setN) | |
a(4) = aveX | |
a(5) = aveY | |
a(6) = stdevX | |
a(7) = stdevY | |
Return a | |
End Function | |
Private Sub LSMinit() | |
Array.Clear(sumX, 0, sumX.Length) | |
Array.Clear(sumY, 0, sumY.Length) | |
Array.Clear(sumXY, 0, sumXY.Length) | |
Array.Clear(sumX2, 0, sumX2.Length) | |
Array.Clear(sumY2, 0, sumY2.Length) | |
Array.Clear(num, 0, num.Length) | |
n = 0 | |
avecount = 0 | |
End Sub | |
'===============================MAIN=========================================================================================================================== | |
'=============================PRINT DATA======================================================================================================================= | |
'============================================================================================================================================================== | |
Private Sub PrintData(ByVal sdata As String) | |
''*********************Object Array set**************************************************************************** | |
Dim CH_checkbox() As CheckBox | |
CH_checkbox = {Me.CheckBox1, Me.CheckBox2, Me.CheckBox3, Me.CheckBox4, Me.CheckBox5, Me.CheckBox6, Me.CheckBox7, Me.CheckBox13, Me.CheckBox14, Me.CheckBox15, Me.CheckBox16, Me.CheckBox17, Me.CheckBox18, Me.CheckBox19, Me.CheckBox20, Me.CheckBox21} | |
Dim dataTextBox() As TextBox | |
dataTextBox = {Me.TextBox4, Me.TextBox5, Me.TextBox6, Me.TextBox7, Me.TextBox8, Me.TextBox9, Me.TextBox10, Me.TextBox29, Me.TextBox31, Me.TextBox33, Me.TextBox35, Me.TextBox37, Me.TextBox39, Me.TextBox41, Me.TextBox43, Me.TextBox45} | |
Dim adjustComboBox() As ComboBox | |
adjustComboBox = {Me.ComboBox1, Me.ComboBox2, Me.ComboBox3, Me.ComboBox4, Me.ComboBox5, Me.ComboBox6, Me.ComboBox7, Me.ComboBox12, Me.ComboBox13, Me.ComboBox14, Me.ComboBox15, Me.ComboBox16, Me.ComboBox17, Me.ComboBox18, Me.ComboBox19, Me.ComboBox20} | |
Dim midTextBox() As TextBox | |
midTextBox = {Me.TextBox13, Me.TextBox14, Me.TextBox15, Me.TextBox16, Me.TextBox17, Me.TextBox18, Me.TextBox19, Me.TextBox28, Me.TextBox30, Me.TextBox32, Me.TextBox34, Me.TextBox36, Me.TextBox38, Me.TextBox40, Me.TextBox42, Me.TextBox44} | |
'****************************************************************************************************************** | |
'===Start StopWatch=============== | |
If dcount = 0 Then | |
sw1.Start() | |
End If | |
dcount += 1 | |
'Debug.Print(dcount) | |
If dcount Mod 50 = 0 Then | |
'========Recived data Period Measurement=========== | |
sw1.Stop() | |
stm = sw1.ElapsedMilliseconds | |
sw1.Start() | |
TextBox46.Text = dcount | |
TextBox47.Text = stm | |
'CheckBox11.Checked = False | |
ListBox1.Items.Add("time=" + CStr(stm)) | |
End If | |
'========First CSV File Declaration====================== | |
If CheckBox8.Checked = True And fname = "" Then | |
fname = Format(Now, "yyyyMMdd_HHmmss") | |
fname = "C:\vb_LOG\" & fname & ".csv" | |
TextBox21.Text = fname | |
'---MS Example------------------------------ | |
'Dim file As System.IO.StreamWriter | |
'file = My.Computer.FileSystem.OpenTextFileWriter("c:\test.txt", True) | |
'file.WriteLine("Here is the first string.") | |
'file.Close() | |
'------------------------------------------ | |
Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding(“Shift_JIS”) | |
file = My.Computer.FileSystem.OpenTextFileWriter(fname, False, enc) | |
End If | |
' Debug.Print("sdata=" & sdata) | |
'=======sdata File writing==================== | |
If System.IO.File.Exists(fname) And CheckBox8.Checked = True Then | |
fsdata = sdata.Substring(0, sdata.Length - 2) + Chr(13) + Chr(10) | |
'fsdata = sdata.Substring(0, sdata.Length - 2) + ",80data_time=" + CStr(stm) + Chr(13) + Chr(10) | |
file.Write(fsdata) | |
Label7.Text = "Logging" | |
End If | |
''=====Port1 A, +Port2 B,合体============================== | |
If CheckBox22.Checked = True Then | |
header = sdata.Substring(0, 3) | |
pushMode_1 = pushMode | |
If header = "B,2" Then | |
pushMode = 1 | |
If pushMode = 1 Then | |
Label28.Visible = True | |
Else | |
Label28.Visible = False | |
End If | |
' Debug.Print("B2:pushMode=" + CStr(pushMode)) | |
End If | |
If header = "B,1" Then | |
pushMode = 0 | |
If pushMode = 0 Then | |
Label28.Visible = False | |
End If | |
' Debug.Print("B1:pushMode=" + CStr(pushMode)) | |
End If | |
'Debug.Print(header) | |
sdnum = sdata.Length | |
'Debug.Print(sdnum) | |
If header = "A,1" And sdnum > 5 Then | |
rdata1 = sdata.Substring(2, sdnum - 2) | |
Aflag = 1 | |
'Debug.Print("rdata1=") | |
'Debug.Print(rdata1) | |
End If | |
If (header = "B,1" Or header = "B,2") And sdnum > 5 Then | |
rdata2 = sdata.Substring(2, sdnum - 2) | |
Bflag = 1 | |
'Debug.Print("rdata2=") | |
'Debug.Print(rdata2) | |
'Debug.Print("--------------") | |
End If | |
If Aflag = 1 And Bflag = 1 Then | |
rdata3 = rdata1 + "," + rdata2 | |
'Debug.Print("rdata3=") | |
'Debug.Print(rdata3) | |
'TextBox48.Text = rdata3 | |
End If | |
If Aflag = 1 And Bflag = 0 Then | |
rdata3 = rdata1 | |
'Debug.Print("rdata3=") | |
'Debug.Print(rdata3) | |
'TextBox48.Text = rdata3 | |
End If | |
If Aflag = 0 And Bflag = 0 Then | |
rdata3 = rdata2 | |
'Debug.Print("rdata3=") | |
'Debug.Print(rdata3) | |
'TextBox48.Text = rdata3 | |
End If | |
End If | |
'================================================================= | |
'=============ListBox===================== | |
If CheckBox11.Checked = True And CheckBox22.Checked = False Then | |
ListBox1.Visible = True | |
ListBox1.Items.Add(sdata) | |
End If | |
If CheckBox11.Checked = True And CheckBox22.Checked = True Then | |
ListBox1.Visible = True | |
ListBox1.Items.Add(rdata3) | |
End If | |
If CheckBox11.Checked = False Then | |
ListBox1.Visible = False | |
End If | |
'======================================= | |
Dim delimiter As String = "," | |
Dim i, j, k As Integer | |
'Dim stdata As String | |
Dim dStrAry(100) As String | |
'============================SPLITTING============================ | |
'================================================================== | |
If rdata3.Length > 6 And CheckBox12.Checked = True Then | |
dStr = Split(rdata3, delimiter, -1, CompareMethod.Text) | |
Chsuu = dStr.Length | |
TextBox3.Text = Chsuu | |
End If | |
'---------------------------------dStr to dataAry-------------------------------------------------------------------------- | |
'Debug.Print("dStr.length=" & CStr(dStr.Length) & "sdata.Length=" & CStr(sdata.Length)) | |
If sdata.Length < 90 And sdata.Length > 6 And dStr.Length > 1 And CheckBox12.Checked Then 'dStr.Length = 7 And sdata.Length < 37 | |
Try | |
dataNo = (dataNo + 1) Mod 3000 | |
TextBox2.Text = dataNo | |
'Debug.Print("SPLITed TextBox Printing") | |
For i = 0 To dStr.Length - 1 | |
If dStr(i) <> "" Then | |
TextBox1.Text = dStr(i) | |
dataAry(dataNo, i) = CDbl(dStr(i)) | |
End If | |
Next | |
If startFlag = 1 Then | |
'=================PLOT SUBへ================= | |
plotC(dataNo, 0, 0, 0) 'plotC(x,y,colorN) | |
'plotC(dataNo, dataAry(dataNo, i), dataAry(dataNo - 1, i), i) 'plotC(x,y,colorN) | |
'Debug.Print("dataAry()=" & CStr(dataAry(dataNo, i)) & "i=" & CStr(i)) | |
'End If | |
'=========================================== | |
End If | |
'Debug.Print("dataAry(" & CStr(dataNo) & "," & CStr(i) & ")=" & CStr(dataAry(dataNo, i))) | |
Catch ex As Exception | |
Console.WriteLine(ex.Message) | |
Console.WriteLine("Error in dstr=>dataAry") | |
End Try | |
End If | |
'End If | |
End Sub | |
'==========================================MAIN BOTTOM======================================================================================================== | |
'============================================================================================================================================================= | |
'============================================================================================================================================================= | |
'*************************SerialPort Open Close REceive*************************************************************** | |
'=================================================================================================================== | |
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click | |
SerialPort1.PortName = ComboBox10.SelectedItem 'TextBox1.Text 'オープンするポート名を格納 | |
SerialPort2.PortName = ComboBox11.SelectedItem | |
If SerialPort1.PortName <> "None" Then | |
SerialPort1.Open() 'ポートオープン | |
Label2.Text = "Port1_OPENED" | |
com1_None = 0 | |
SerialPort1.DiscardInBuffer() | |
End If | |
If SerialPort1.PortName = "None" Then | |
com1_None = 1 | |
End If | |
If SerialPort2.PortName <> "None" Then | |
SerialPort2.Open() 'ポートオープン | |
Label22.Text = "Port2_OPENED" | |
com2_None = 0 | |
SerialPort2.DiscardInBuffer() | |
End If | |
If SerialPort2.PortName = "None" Then | |
com2_None = 1 | |
End If | |
'Received CheckBox ON | |
CheckBox9.Checked = True | |
End Sub | |
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click | |
Dim k As Integer | |
If System.IO.File.Exists(fname) Then | |
file.Close() | |
Label7.Text = "FileClosed" | |
fname = "" | |
TextBox21.Text = fname | |
End If | |
If SerialPort1.IsOpen = True Then 'ポートオープン済み | |
SerialPort1.Close() 'ポートクローズ | |
Label2.Text = "Port1_CLOSED" | |
End If | |
If SerialPort2.IsOpen = True Then 'ポートオープン済み | |
SerialPort2.Close() 'ポートクローズ | |
Label22.Text = "Port2_CLOSED" | |
End If | |
End Sub | |
Private Sub PrintData1(ByVal sdata As String) | |
ListBox1.Items.Add(sdata) | |
End Sub | |
'*************************************************************************************************************************** | |
'******************************DataReceiving******************************************************************************** | |
'*************************************************************************************************************************** | |
Private Sub SerialPort1_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived | |
If CheckBox9.Checked = True And com1_None = 0 Then | |
Try | |
ReceivedData1 = "A," + SerialPort1.ReadLine 'データを受信します | |
'If SerialPort2.IsOpen = True Then | |
' 'SerialPort2.DiscardInBuffer() | |
' ReceivedData2 = SerialPort2.ReadLine | |
' ReceivedData3 = ReceivedData1 & "," & ReceivedData2 | |
'Else | |
'ReceivedData3 = ReceivedData1 | |
'End If | |
'Invokeメソッドにより実行されるメソッドへのデリゲートの宣言を行い、受信データを表示します | |
Dim adre As New DataDelegate(AddressOf PrintData) | |
Me.Invoke(adre, ReceivedData1) | |
Catch ex As Exception | |
ReceivedData1 = ex.Message '例外処理を行います | |
'Console.WriteLine("Error in DataReceived1") | |
End Try | |
SerialPort1.DiscardInBuffer() | |
End If | |
End Sub | |
Private Sub SerialPort2_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived | |
If CheckBox9.Checked = True And com2_None = 0 Then | |
Try | |
'SerialPort2.DiscardInBuffer() | |
ReceivedData2 = "B," + SerialPort2.ReadLine 'データを受信します | |
Dim adre As New DataDelegate(AddressOf PrintData) | |
Me.Invoke(adre, ReceivedData2) | |
Catch ex As Exception | |
ReceivedData2 = ex.Message '例外処理を行います | |
'Console.WriteLine("Error in DataReceived2") | |
End Try | |
'Invokeメソッドにより実行されるメソッドへのデリゲートの宣言を行い、受信データを表示します | |
SerialPort2.DiscardInBuffer() | |
End If | |
End Sub | |
'***************************************************************************************************************************** | |
'***************************************************************************************************************************** | |
'***************************************************************************************************************************** | |
'================================================================================================================= | |
'===================================SerialPort Setting End================================================================== | |
'================================================================================================================ | |
'===============Plotting Start Button======================= | |
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click | |
If startFlag = 0 Then | |
startFlag = 1 | |
Label20.Text = "--Plotting--" | |
End If | |
End Sub | |
'===============Plotting Stop=================================== | |
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click | |
If startFlag = 1 Then | |
startFlag = 0 | |
Label20.Text = "--PlotStopped--" | |
If f1open = 1 Then | |
file1.Close() | |
RichTextBox1.AppendText("FileClosed") | |
f1open = 0 | |
LSMinit() | |
End If | |
End If | |
End Sub | |
'LSM 計算初期化 | |
Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click | |
LSMinit() 'LSM計算初期化 | |
End Sub | |
'************************************************************************************************************************************************** | |
'================================描画メソッドPlotc()=================================================== | |
'===========-PLOT パラメータの定義 計算方式=================================================== | |
'===========ゼロレベルでデフォルト平均値(1650mV)をとってCenteringを実施してY軸中心にそろえる=============== | |
'===========負荷をいれながらrate値(ドット/mV)を手動で変えて最適値にセット======================== | |
'========================================================================================== | |
Sub plotC(ByVal dataNo As Integer, ByVal value As Integer, ByVal value_1 As Integer, ByVal colorN As Integer) | |
If PictureBox1.Image Is Nothing Then '初回だけBITMAPを定義する Picture1.imageという名称をつかうこと | |
PictureBox1.Image = New Bitmap(720, 240) | |
End If | |
Dim g As Graphics = Graphics.FromImage(PictureBox1.Image) | |
Ch_sel = CheckBR() 'CheckBox Checked array 1=ON 0=OFF | |
'==============Text Box Value Reading=================================== | |
rate = RateCR() ' rate(0-16)はdot/mV | |
midvalue = AvTR() 'midvalue(0-16)はゼロレベル値 | |
'==============TrackBar value Read============== | |
Dim TBvalue As Integer | |
Dim TBposition As Integer | |
TBvalue = TrackBar1.Value | |
TBposition = CInt(TBvalue / 100 * yh) | |
TextBox20.Text = CStr(TBvalue) | |
'********************************************************************************************************** | |
'************************************Moving Average Function CALL****************************************** | |
MA = CInt(ComboBox21.SelectedItem) | |
'Debug.Print("Before MovAve_sCH.Length=" + CStr(sCH.Length)) | |
If dataNo > MA Then | |
If iniFlag = 1 Then '初回に総和を出しておく | |
For j = 0 To Chsuu - 1 | |
For i = 0 To MA - 1 | |
dataSum(j) += dataAry(dataNo - MA + i, j) | |
Next i | |
dataA(j) = dataSum(j) / MA | |
Next j | |
iniFlag = 0 | |
End If 'iniFlag=1 | |
For j = 0 To Chsuu - 1 '総和から古いデータをを引いて、最新データを足す | |
'dataNo=100は1~100までの和、101番目移動平均計算は、1番データを引いて101番目を足す | |
dataSum(j) = dataSum(j) + dataAry(dataNo, j) - dataAry(dataNo - MA, j) | |
dataA(j) = dataSum(j) / MA | |
'Debug.Print("iniFlag0:" + CStr(dataAry(dataNo, sCH(j)) + "," + CStr(dataA(j)))) | |
dataAry(dataNo, j) = dataA(j) '元データへ移動平均値を代入変更 | |
Next j | |
End If 'dataNo>MA | |
'********************************************************************************************************** | |
'********************************************************************************************************** | |
'********************************************************************************************************** | |
'========================================================================= | |
'=================Plot Oresen Graph========================================= | |
'========================================================================= | |
'------------Pen COLORS------------ | |
Dim p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16 As New Pen(Color.Black) | |
Dim p As New Pen(Color.Black) | |
'Dim p(16) As Pen | |
Dim b As Brush | |
Dim bp As Brush | |
b = Brushes.Black | |
p1.Width = 0.1 | |
p2.Width = 0.1 | |
p3.Width = 0.1 | |
p4.Width = 0.1 | |
p5.Width = 0.1 | |
p7.Width = 0.1 | |
p8.Width = 0.1 | |
p9.Width = 0.1 | |
p10.Width = 0.1 | |
p11.Width = 0.1 | |
p12.Width = 0.1 | |
p13.Width = 0.1 | |
p14.Width = 0.1 | |
p15.Width = 0.1 | |
p16.Width = 0.1 | |
p1 = Pens.Red | |
p2 = Pens.Blue | |
p3 = Pens.Green | |
p4 = Pens.Magenta | |
p5 = Pens.Orange | |
p6 = Pens.LemonChiffon | |
p7 = Pens.Lime | |
p8 = Pens.MediumSpringGreen | |
p9 = Pens.DeepPink | |
p10 = Pens.Crimson | |
p11 = Pens.SeaGreen | |
p12 = Pens.GreenYellow | |
p13 = Pens.Orchid | |
p14 = Pens.Maroon | |
p15 = Pens.DarkSlateBlue | |
p16 = Pens.DarkViolet | |
'=============PLOT パラメータ準備============== | |
Dim xscale As Integer = 2 | |
'--Y軸 | |
'-------------ドット変換値設定------- | |
dstep = 1 'X軸基本 | |
Mag = CDbl(ComboBox8.SelectedItem) 'X軸倍率 0.01-0.5 1-10 dot/dataNo | |
'===========================時系列プロットDrawing================================================================= | |
If CheckBox10.Checked = False Then '*********False=Oresen View Mode /True=LenearViewMode | |
'===================スクロール クリア&時間測定======================================== | |
' Debug.Print("dataNo=" & CStr(dataNo) & "cstr(600/Mag)=" & CStr(600 / Mag)) | |
If dataNo Mod CInt(600 / Mag) = 0 Then '1画面終了したらimageクリア | |
tp = sw.Elapsed | |
totalsec = tp.TotalSeconds | |
' Debug.Print("tp.sec=" & totalsec) | |
sw.Stop() | |
If totalsec > 0.6 Then | |
TextBox11.Text = CStr(totalsec) | |
End If | |
sw.Reset() | |
sw.Start() | |
'Debug.Print("MOD 300:dataNo=" & CStr(dataNo)) | |
' SerialPort1.DiscardInBuffer() | |
PictureBox1.Image = Nothing '1スクロール毎に画面クリア | |
Else | |
'====================折れ線PLOT============================================== | |
'Debug.Print("dataNo=" & CStr(dataNo) & "value=" & CStr(value) & "midvalue=" & CStr(midvalue(0)) & "px=" & CStr(px) & "py=" & CStr(py)) | |
'******************Plot Unit 1ch****************************** | |
If Ch_sel(0) = 1 Then | |
px = Int((dstep * dataNo Mod CInt(600 / Mag)) * Mag) | |
px_1 = Int((dstep * (dataNo - 1) Mod CInt(600 / Mag)) * Mag) | |
py = yh - (Int(rate(0) * (dataAry(dataNo, 0) - midvalue(0))) + TBposition) | |
'Debug.Print("------1ch_py:dataAry=" & CStr(dataAry(dataNo, 0)) & "midvalue=" & CStr(midvalue(0))) | |
py_1 = yh - (Int(rate(0) * (dataAry(dataNo - 1, 0) - midvalue(0))) + TBposition) | |
'Debug.Print("1ch_py_1:dataAry=" & CStr(dataAry(dataNo, 0)) & "midvalue=" & CStr(midvalue(0))) | |
g.DrawLine(p1, CSng(px_1), CSng(py_1), CSng(px), CSng(py)) | |
'Debug.Print("------1ch:px_1=" & CStr(px_1) & "px=" & CStr(px) & "py_1=" & CStr(py_1) & "py=" & CStr(py)) | |
'g.FillEllipse(b, px, py, 5, 5) ' 点プロット この位置で動作OK | |
End If | |
'********************************************************** | |
'******************Plot Unit2ch****************************** | |
If Ch_sel(1) = 1 Then | |
px = Int((dstep * dataNo Mod CInt(600 / Mag)) * Mag) | |
px_1 = Int((dstep * (dataNo - 1) Mod CInt(600 / Mag)) * Mag) | |
py = yh - (Int(rate(1) * (dataAry(dataNo, 1) - midvalue(1))) + TBposition) | |
'Debug.Print("=======2ch_py:dataAry=" & CStr(dataAry(dataNo, 0)) & "midvalue=" & CStr(midvalue(1))) | |
py_1 = yh - (Int(rate(1) * (dataAry(dataNo - 1, 1) - midvalue(1))) + TBposition) | |
'Debug.Print("2ch_py_1:dataAry=" & CStr(dataAry(dataNo, 0)) & "midvalue=" & CStr(midvalue(1))) | |
g.DrawLine(p2, CSng(px_1), CSng(py_1), CSng(px), CSng(py)) | |
'Debug.Print("=====2ch:px_1=" & CStr(px_1) & "px=" & CStr(px) & "py_1=" & CStr(py_1) & "py=" & CStr(py)) | |
End If | |
'********************************************************** | |
'******************Plot Unit3ch****************************** | |
If Ch_sel(2) = 1 Then | |
px = Int((dstep * dataNo Mod CInt(600 / Mag)) * Mag) | |
px_1 = Int((dstep * (dataNo - 1) Mod CInt(600 / Mag)) * Mag) | |
py = yh - (Int(rate(2) * (dataAry(dataNo, 2) - midvalue(2))) + TBposition) | |
py_1 = yh - (Int(rate(2) * (dataAry(dataNo - 1, 2) - midvalue(2))) + TBposition) | |
g.DrawLine(p3, CSng(px_1), CSng(py_1), CSng(px), CSng(py)) | |
End If | |
'********************************************************** | |
'******************Plot Unit4ch****************************** | |
If Ch_sel(3) = 1 Then | |
px = Int((dstep * dataNo Mod CInt(600 / Mag)) * Mag) | |
px_1 = Int((dstep * (dataNo - 1) Mod CInt(600 / Mag)) * Mag) | |
py = yh - (Int(rate(3) * (dataAry(dataNo, 3) - midvalue(3))) + TBposition) | |
py_1 = yh - (Int(rate(3) * (dataAry(dataNo - 1, 3) - midvalue(3))) + TBposition) | |
g.DrawLine(p4, CSng(px_1), CSng(py_1), CSng(px), CSng(py)) | |
End If | |
'********************************************************** | |
'******************Plot Unit5ch****************************** | |
If Ch_sel(4) = 1 Then | |
px = Int((dstep * dataNo Mod CInt(600 / Mag)) * Mag) | |
px_1 = Int((dstep * (dataNo - 1) Mod CInt(600 / Mag)) * Mag) | |
py = yh - (Int(rate(4) * (dataAry(dataNo, 4) - midvalue(4))) + TBposition) | |
py_1 = yh - (Int(rate(4) * (dataAry(dataNo - 1, 4) - midvalue(4))) + TBposition) | |
g.DrawLine(p5, CSng(px_1), CSng(py_1), CSng(px), CSng(py)) | |
End If | |
'********************************************************** | |
'******************Plot Unit6ch****************************** | |
If Ch_sel(5) = 1 Then | |
px = Int((dstep * dataNo Mod CInt(600 / Mag)) * Mag) | |
px_1 = Int((dstep * (dataNo - 1) Mod CInt(600 / Mag)) * Mag) | |
py = yh - (Int(rate(5) * (dataAry(dataNo, 5) - midvalue(5))) + TBposition) | |
py_1 = yh - (Int(rate(5) * (dataAry(dataNo - 1, 5) - midvalue(5))) + TBposition) | |
g.DrawLine(p6, CSng(px_1), CSng(py_1), CSng(px), CSng(py)) | |
End If | |
'********************************************************** | |
'******************Plot Unit7ch****************************** | |
If Ch_sel(6) = 1 Then | |
px = Int((dstep * dataNo Mod CInt(600 / Mag)) * Mag) | |
px_1 = Int((dstep * (dataNo - 1) Mod CInt(600 / Mag)) * Mag) | |
py = yh - (Int(rate(6) * (dataAry(dataNo, 6) - midvalue(6))) + TBposition) | |
py_1 = yh - (Int(rate(6) * (dataAry(dataNo - 1, 6) - midvalue(6))) + TBposition) | |
g.DrawLine(p7, CSng(px_1), CSng(py_1), CSng(px), CSng(py)) | |
End If | |
'********************************************************** | |
'******************Plot Unit8ch****************************** | |
If Ch_sel(7) = 1 Then | |
px = Int((dstep * dataNo Mod CInt(600 / Mag)) * Mag) | |
px_1 = Int((dstep * (dataNo - 1) Mod CInt(600 / Mag)) * Mag) | |
py = yh - (Int(rate(7) * (dataAry(dataNo, 7) - midvalue(7))) + TBposition) | |
py_1 = yh - (Int(rate(7) * (dataAry(dataNo - 1, 7) - midvalue(7))) + TBposition) | |
g.DrawLine(p8, CSng(px_1), CSng(py_1), CSng(px), CSng(py)) | |
End If | |
'********************************************************** | |
'******************Plot Unit9ch****************************** | |
If Ch_sel(8) = 1 Then | |
px = Int((dstep * dataNo Mod CInt(600 / Mag)) * Mag) | |
px_1 = Int((dstep * (dataNo - 1) Mod CInt(600 / Mag)) * Mag) | |
py = yh - (Int(rate(8) * (dataAry(dataNo, 8) - midvalue(8))) + TBposition) | |
py_1 = yh - (Int(rate(8) * (dataAry(dataNo - 1, 8) - midvalue(8))) + TBposition) | |
g.DrawLine(p9, CSng(px_1), CSng(py_1), CSng(px), CSng(py)) | |
End If | |
'********************************************************** | |
'******************Plot Unit10ch****************************** | |
If Ch_sel(9) = 1 Then | |
px = Int((dstep * dataNo Mod CInt(600 / Mag)) * Mag) | |
px_1 = Int((dstep * (dataNo - 1) Mod CInt(600 / Mag)) * Mag) | |
py = yh - (Int(rate(9) * (dataAry(dataNo, 9) - midvalue(9))) + TBposition) | |
py_1 = yh - (Int(rate(9) * (dataAry(dataNo - 1, 9) - midvalue(9))) + TBposition) | |
g.DrawLine(p10, CSng(px_1), CSng(py_1), CSng(px), CSng(py)) | |
End If | |
'********************************************************** | |
'******************Plot Unit11ch****************************** | |
If Ch_sel(10) = 1 Then | |
px = Int((dstep * dataNo Mod CInt(600 / Mag)) * Mag) | |
px_1 = Int((dstep * (dataNo - 1) Mod CInt(600 / Mag)) * Mag) | |
py = yh - (Int(rate(10) * (dataAry(dataNo, 10) - midvalue(10))) + TBposition) | |
py_1 = yh - (Int(rate(10) * (dataAry(dataNo - 1, 10) - midvalue(10))) + TBposition) | |
g.DrawLine(p11, CSng(px_1), CSng(py_1), CSng(px), CSng(py)) | |
End If | |
'********************************************************** | |
'******************Plot Unit12ch****************************** | |
If Ch_sel(11) = 1 Then | |
px = Int((dstep * dataNo Mod CInt(600 / Mag)) * Mag) | |
px_1 = Int((dstep * (dataNo - 1) Mod CInt(600 / Mag)) * Mag) | |
py = yh - (Int(rate(11) * (dataAry(dataNo, 11) - midvalue(11))) + TBposition) | |
py_1 = yh - (Int(rate(11) * (dataAry(dataNo - 1, 11) - midvalue(11))) + TBposition) | |
g.DrawLine(p12, CSng(px_1), CSng(py_1), CSng(px), CSng(py)) | |
End If | |
'********************************************************** | |
'******************Plot Unit13ch****************************** | |
If Ch_sel(12) = 1 Then | |
px = Int((dstep * dataNo Mod CInt(600 / Mag)) * Mag) | |
px_1 = Int((dstep * (dataNo - 1) Mod CInt(600 / Mag)) * Mag) | |
py = yh - (Int(rate(12) * (dataAry(dataNo, 12) - midvalue(12))) + TBposition) | |
py_1 = yh - (Int(rate(12) * (dataAry(dataNo - 1, 12) - midvalue(12))) + TBposition) | |
g.DrawLine(p13, CSng(px_1), CSng(py_1), CSng(px), CSng(py)) | |
End If | |
'********************************************************** | |
'******************Plot Unit14ch****************************** | |
If Ch_sel(13) = 1 Then | |
px = Int((dstep * dataNo Mod CInt(600 / Mag)) * Mag) | |
px_1 = Int((dstep * (dataNo - 1) Mod CInt(600 / Mag)) * Mag) | |
py = yh - (Int(rate(13) * (dataAry(dataNo, 13) - midvalue(13))) + TBposition) | |
py_1 = yh - (Int(rate(13) * (dataAry(dataNo - 1, 13) - midvalue(13))) + TBposition) | |
g.DrawLine(p14, CSng(px_1), CSng(py_1), CSng(px), CSng(py)) | |
End If | |
'********************************************************** | |
'******************Plot Unit15ch****************************** | |
If Ch_sel(14) = 1 Then | |
px = Int((dstep * dataNo Mod CInt(600 / Mag)) * Mag) | |
px_1 = Int((dstep * (dataNo - 1) Mod CInt(600 / Mag)) * Mag) | |
py = yh - (Int(rate(14) * (dataAry(dataNo, 14) - midvalue(14))) + TBposition) | |
py_1 = yh - (Int(rate(14) * (dataAry(dataNo - 1, 14) - midvalue(14))) + TBposition) | |
g.DrawLine(p15, CSng(px_1), CSng(py_1), CSng(px), CSng(py)) | |
End If | |
'********************************************************** | |
'******************Plot Unit16ch****************************** | |
If Ch_sel(15) = 1 Then | |
px = Int((dstep * dataNo Mod CInt(600 / Mag)) * Mag) | |
px_1 = Int((dstep * (dataNo - 1) Mod CInt(600 / Mag)) * Mag) | |
py = yh - (Int(rate(15) * (dataAry(dataNo, 15) - midvalue(15))) + TBposition) | |
py_1 = yh - (Int(rate(15) * (dataAry(dataNo - 1, 15) - midvalue(15))) + TBposition) | |
g.DrawLine(p16, CSng(px_1), CSng(py_1), CSng(px), CSng(py)) | |
End If | |
'********************************************************** | |
'Debug.Print("px_1=" & CStr(px_1) & "px=" & CStr(px) & "py_1=" & CStr(py_1) & "py=1" & CStr(py)) | |
End If | |
g.Dispose() | |
'b.Dispose() | |
PictureBox1.Invalidate() | |
End If 'Oresen Graph End | |
'************************************************************************************************************* | |
'*************************Linear View Mode******************************************************************** | |
'***************************720x240*************************************************************************** | |
Dim result1(10) As Double | |
Dim result2(10) As Double | |
Dim result3(10) As Double | |
ReDim cp1X(600000, 16) | |
ReDim cp1Y(600000, 16) | |
ReDim cp2X(600000, 16) | |
ReDim cp2Y(600000, 16) | |
ReDim cp3X(600000, 16) | |
ReDim cp3Y(600000, 16) | |
Dim acp1X, acp1Y, acp2X, acp2Y, acp3X, acp3Y As Integer 'for push Mode plotting | |
b = Brushes.Black | |
If CheckBox10.Checked = True Then 'Linear Mode CheckBox | |
'Debug.Print("Linear Mode In") | |
'----=WAKU--------------------- | |
g.DrawRectangle(Pens.Black, 0, 0, 239, 239) | |
g.DrawRectangle(Pens.Black, 241, 0, 479, 239) | |
g.DrawRectangle(Pens.Black, 480, 0, 719, 239) | |
'-------Ellipse Color---------------- | |
Select Case ComboBox9.SelectedIndex | |
Case 0 | |
b = Brushes.Red | |
Case 1 | |
b = Brushes.Blue | |
Case 2 | |
b = Brushes.Green | |
Case 3 | |
b = Brushes.Magenta | |
Case 4 | |
b = Brushes.Orange | |
Case 5 | |
b = Brushes.Black | |
End Select | |
'If pushMode = 1 Then | |
' b = Brushes.Black | |
'End If | |
'========First CSV File Declaration====================== | |
If f1open = 0 Then | |
fname1 = Format(Now, "yyyyMMdd_HHmmss") | |
fStr1 = ComboBox9.SelectedItem.ToString() | |
fname1 = "C:\vb_LOG\" & fStr1 & fname1 & ".csv" | |
fStr2 = "FileOpen:" + fname1 | |
RichTextBox1.AppendText(fStr2) | |
'---MS Example------------------------------ | |
'Dim file As System.IO.StreamWriter | |
'file = My.Computer.FileSystem.OpenTextFileWriter("c:\test.txt", True) | |
'file.WriteLine("Here is the first string.") | |
'file.Close() | |
'------------------------------------------ | |
Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding(“Shift_JIS”) | |
file1 = My.Computer.FileSystem.OpenTextFileWriter(fname1, False, enc) | |
f1open = 1 | |
End If | |
'===============Linear Mode pushMode Averaging===================== | |
If (CheckBox23.Checked = True And pushMode = 1) Then 'pushMode CheckBox ON | |
'Debug.Print("pushMode IN averaging=" + CStr(aveNcount)) | |
x1ch = CInt(TextBox22.Text) - 1 'array indexNo | |
y1ch = CInt(TextBox23.Text) - 1 | |
x2ch = CInt(TextBox24.Text) - 1 'array indexNo | |
y2ch = CInt(TextBox25.Text) - 1 | |
x3ch = CInt(TextBox26.Text) - 1 'array indexNo | |
y3ch = CInt(TextBox27.Text) - 1 | |
sum1X += dataAry(dataNo, x1ch) | |
sum1Y += dataAry(dataNo, y1ch) | |
sum2X += dataAry(dataNo, x2ch) | |
sum2Y += dataAry(dataNo, y2ch) | |
sum3X += dataAry(dataNo, x3ch) | |
sum3Y += dataAry(dataNo, y3ch) | |
averaging = 1 | |
aveNcount += 1 | |
End If | |
'Debug.Print("Push end pushMode_1,pushMode,averaging:" + CStr(pushMode_1) + "," + CStr(pushMode) + "," + CStr(averaging)) | |
If (CheckBox23.Checked = True And (pushMode_1 = 1 And pushMode = 0) And averaging = 1) Then 'pushMode CheckBox ON=>OFF and averaging GO | |
avecount += 1 | |
aveData1X(avecount) = sum1X / aveNcount | |
aveData1Y(avecount) = sum1Y / aveNcount | |
aveData2X(avecount) = sum2X / aveNcount | |
aveData2Y(avecount) = sum2Y / aveNcount | |
aveData3X(avecount) = sum3X / aveNcount | |
aveData3Y(avecount) = sum3Y / aveNcount | |
If CheckBox24.Checked = True Then 'Input Weight Mode | |
aveData1Y(avecount) = CInt(TextBox58.Text) | |
aveData2Y(avecount) = aveData1Y(avecount) | |
aveData3Y(avecount) = aveData1Y(avecount) | |
End If | |
If TextBox22.Text <> "" And TextBox23.Text <> "" Then 'waku1 | |
acp1X = yh - (Int(rate(x1ch) * (aveData1X(avecount) - midvalue(x1ch))) + TBposition) | |
acp1Y = yh - (Int(rate(y1ch) * (aveData1Y(avecount) - midvalue(y1ch))) + TBposition) | |
g.FillEllipse(b, acp1X, acp1Y, 9, 9) ' 点プロット | |
Debug.Print("pushMode_aveData1X,Y=" + CStr(avecount) + "," + CStr(aveData1X(avecount)) + "," + CStr(aveData1Y(avecount))) | |
result1 = LSM(aveData1X(avecount), aveData1Y(avecount), 0) | |
Debug.Print("2Ch-7CH:" + CStr(avecount) + "," + CStr(result1(0)) + "," + CStr(result1(1)) + "," + CStr(result1(2)) + "," + CStr(result1(3)) + "," + CStr(result1(4)) + "," + CStr(result1(5)) + "," + CStr(result1(6)) + "," + CStr(result1(7))) | |
TextBox49.Text = CStr(result1(0)) 'correl | |
TextBox50.Text = CStr(result1(1)) ' slope | |
TextBox55.Text = CStr(result1(2)) ' intercept | |
pushStr1 = "waku1:," + CStr(avecount) + "," + CStr(result1(0)) + "," + CStr(result1(1)) + "," + CStr(result1(2)) + "," + CStr(aveData1X(avecount)) + "," + CStr(aveData1Y(avecount)) + vbCrLf | |
RichTextBox1.AppendText(pushStr1) | |
file1.Write(pushStr1) | |
pushStr1 = "" | |
End If 'waku2 | |
If TextBox24.Text <> "" And TextBox25.Text <> "" Then 'waku2 | |
Dim xoff As Integer = 240 | |
acp2X = yh - (Int(rate(x2ch) * (aveData2X(avecount) - midvalue(x2ch))) + TBposition) + xoff | |
acp2Y = yh - (Int(rate(y2ch) * (aveData2Y(avecount) - midvalue(y2ch))) + TBposition) | |
g.FillEllipse(b, acp2X, acp2Y, 9, 9) ' 点プロット | |
Debug.Print("pushMode_aveData2X,Y=" + CStr(avecount) + "," + CStr(aveData2X(avecount)) + "," + CStr(aveData2Y(avecount))) | |
result2 = LSM(aveData2X(avecount), aveData2Y(avecount), 1) | |
Debug.Print("3Ch-7CH:" + CStr(avecount) + "," + CStr(result2(0)) + "," + CStr(result2(1)) + "," + CStr(result2(2)) + "," + CStr(result2(3)) + "," + CStr(result2(4)) + "," + CStr(result2(5)) + "," + CStr(result2(6)) + "," + CStr(result2(7))) | |
TextBox51.Text = CStr(result2(0)) 'correl | |
TextBox52.Text = CStr(result2(1)) ' slope | |
TextBox56.Text = CStr(result1(2)) ' intercept | |
pushStr2 = "waku2:," + CStr(avecount) + "," + CStr(result2(0)) + "," + CStr(result2(1)) + "," + CStr(result2(2)) + "," + CStr(aveData2X(avecount)) + "," + CStr(aveData2Y(avecount)) + vbCrLf | |
RichTextBox1.AppendText(pushStr2) | |
file1.Write(pushStr2) | |
pushStr2 = "" | |
End If 'waku2 | |
If TextBox26.Text <> "" And TextBox27.Text <> "" Then 'waku3 | |
Dim xoff As Integer = 480 | |
acp3X = yh - (Int(rate(x3ch) * (aveData3X(avecount) - midvalue(x3ch))) + TBposition) + xoff | |
acp3Y = yh - (Int(rate(y3ch) * (aveData3Y(avecount) - midvalue(y3ch))) + TBposition) | |
g.FillEllipse(b, acp3X, acp3Y, 9, 9) ' 点プロット | |
Debug.Print("pushMode_aveData3X,Y=" + CStr(avecount) + "," + CStr(aveData3X(avecount)) + "," + CStr(aveData3Y(avecount))) | |
result3 = LSM(aveData3X(avecount), aveData3Y(avecount), 2) | |
Debug.Print("4Ch-7CH:" + CStr(avecount) + "," + CStr(result3(0)) + "," + CStr(result3(1)) + "," + CStr(result3(2)) + "," + CStr(result3(3)) + "," + CStr(result3(4)) + "," + CStr(result3(5)) + "," + CStr(result3(6)) + "," + CStr(result3(7))) | |
TextBox53.Text = CStr(result3(0)) 'correl | |
TextBox54.Text = CStr(result3(1)) ' slope | |
TextBox57.Text = CStr(result1(2)) ' intercept | |
pushStr3 = "waku3:," + CStr(avecount) + "," + CStr(result3(0)) + "," + CStr(result3(1)) + "," + CStr(result3(2)) + "," + CStr(aveData3X(avecount)) + "," + CStr(aveData3Y(avecount)) + vbCrLf | |
RichTextBox1.AppendText(pushStr3) | |
file1.Write(pushStr3) | |
pushStr3 = "" | |
End If 'waku3 | |
file1.Write(pushStr1 + pushStr2 + pushStr3) | |
sum1X = 0 | |
sum1Y = 0 | |
sum2X = 0 | |
sum2Y = 0 | |
sum3X = 0 | |
sum3Y = 0 | |
aveNcount = 0 | |
averaging = 0 | |
g.Dispose() | |
PictureBox1.Invalidate() | |
'PictureBox1.Refresh() | |
End If | |
g.Dispose() | |
PictureBox1.Invalidate() | |
'=================Linear Mode Continuous Plot=============== | |
'If CheckBox23.Checked = False Then ' Or (CheckBox23.Checked = True And pushMode = 1) Then 'pushMode CheckBox off | |
' '--Waku1------------------------- | |
' If TextBox22.Text <> "" And TextBox23.Text <> "" Then | |
' x1ch = CInt(TextBox22.Text) - 1 'array indexNo | |
' y1ch = CInt(TextBox23.Text) - 1 | |
' cp1X(dataNo, x1ch) = yh - (Int(rate(x1ch) * (dataAry(dataNo, x1ch) - midvalue(x1ch))) + TBposition) | |
' cp1Y(dataNo, y1ch) = yh - (Int(rate(y1ch) * (dataAry(dataNo, y1ch) - midvalue(y1ch))) + TBposition) | |
' px = cp1X(dataNo, x1ch) | |
' py = cp1Y(dataNo, y1ch) | |
' 'Debug.Print("y1ch,rate(y1ch),midvalue,dataAry(y1ch)=" + CStr(y1ch) + "," + CStr(rate(y1ch)) + "," + CStr(midvalue(y1ch)) + "," + CStr(dataAry(dataNo, y1ch))) | |
' g.FillEllipse(b, px, py, 3, 3) ' 点プロット | |
' result1 = LSM(dataAry(dataNo, x1ch), dataAry(dataNo, y1ch), 0) | |
' TextBox49.Text = CStr(result1(0)) 'correl | |
' TextBox50.Text = CStr(result1(1)) ' slope | |
' End If | |
' '---Waku2---------------------------- | |
' If TextBox24.Text <> "" And TextBox25.Text <> "" Then | |
' Dim xoff As Integer = 240 | |
' x2ch = CInt(TextBox24.Text) - 1 'array indexNo | |
' y2ch = CInt(TextBox25.Text) - 1 | |
' cp2X(dataNo, x2ch) = yh - (Int(rate(x2ch) * (dataAry(dataNo, x2ch) - midvalue(x2ch))) + TBposition) | |
' cp2Y(dataNo, y2ch) = yh - (Int(rate(y2ch) * (dataAry(dataNo, y2ch) - midvalue(y2ch))) + TBposition) | |
' px = cp2X(dataNo, x2ch) + xoff | |
' py = cp2Y(dataNo, y2ch) | |
' g.FillEllipse(b, px, py, 3, 3) ' 点プロット | |
' result2 = LSM(dataAry(dataNo, x2ch), dataAry(dataNo, y2ch), 1) | |
' TextBox51.Text = CStr(result2(0)) 'correl | |
' TextBox52.Text = CStr(result2(1)) 'slope | |
' End If | |
' '---Waku3---------------------------- | |
' If TextBox26.Text <> "" And TextBox27.Text <> "" Then | |
' Dim xoff As Integer = 480 | |
' x3ch = CInt(TextBox26.Text) - 1 'array indexNo | |
' y3ch = CInt(TextBox27.Text) - 1 | |
' cp3X(dataNo, x3ch) = yh - (Int(rate(x3ch) * (dataAry(dataNo, x3ch) - midvalue(x3ch))) + TBposition) | |
' cp3Y(dataNo, y3ch) = yh - (Int(rate(y3ch) * (dataAry(dataNo, y3ch) - midvalue(y3ch))) + TBposition) | |
' px = cp3X(dataNo, x3ch) + xoff | |
' py = cp3Y(dataNo, y3ch) | |
' g.FillEllipse(b, px, py, 3, 3) ' 点プロット | |
' result3 = LSM(dataAry(dataNo, x3ch), dataAry(dataNo, y3ch), 2) | |
' TextBox53.Text = CStr(result3(0)) 'correl | |
' TextBox54.Text = CStr(result3(1)) ' slope | |
' End If | |
' g.Dispose() | |
' PictureBox1.Invalidate() | |
' 'PictureBox1.Refresh() | |
'End If 'Continuous Plot end | |
End If 'Linear mode end | |
'End If | |
End Sub | |
'******************************************************************************************************************************************************** | |
'===================================================================================================================== | |
'===============================================Form Load Init================================================== | |
'===================================================================================================================== | |
'======================================================================================== | |
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load | |
''*********************Object Array set**************************************************************************** | |
Dim CH_checkbox() As CheckBox | |
CH_checkbox = {Me.CheckBox1, Me.CheckBox2, Me.CheckBox3, Me.CheckBox4, Me.CheckBox5, Me.CheckBox6, Me.CheckBox7, Me.CheckBox13, Me.CheckBox14, Me.CheckBox15, Me.CheckBox16, Me.CheckBox17, Me.CheckBox18, Me.CheckBox19, Me.CheckBox20, Me.CheckBox21} | |
Dim dataTextBox() As TextBox | |
dataTextBox = {Me.TextBox4, Me.TextBox5, Me.TextBox6, Me.TextBox7, Me.TextBox8, Me.TextBox9, Me.TextBox10, Me.TextBox29, Me.TextBox31, Me.TextBox33, Me.TextBox35, Me.TextBox37, Me.TextBox39, Me.TextBox41, Me.TextBox43, Me.TextBox45} | |
Dim adjustComboBox() As ComboBox | |
adjustComboBox = {Me.ComboBox1, Me.ComboBox2, Me.ComboBox3, Me.ComboBox4, Me.ComboBox5, Me.ComboBox6, Me.ComboBox7, Me.ComboBox12, Me.ComboBox13, Me.ComboBox14, Me.ComboBox15, Me.ComboBox16, Me.ComboBox17, Me.ComboBox18, Me.ComboBox19, Me.ComboBox20} | |
Dim midTextBox() As TextBox | |
midTextBox = {Me.TextBox13, Me.TextBox14, Me.TextBox15, Me.TextBox16, Me.TextBox17, Me.TextBox18, Me.TextBox19, Me.TextBox28, Me.TextBox30, Me.TextBox32, Me.TextBox34, Me.TextBox36, Me.TextBox38, Me.TextBox40, Me.TextBox42, Me.TextBox44} | |
'****************************************************************************************************************** | |
'Dim arry() As Integer = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100} | |
'================COMBOBOX Def============================= | |
ComboBox21.SelectedIndex = 0 ' MA 初期値 1 | |
ComboBox1.Items.Clear() | |
Dim n As Integer | |
shokaiN = 1 | |
For i = 0 To 15 | |
adjustComboBox(i).Items.Add("0.01") '0.01mv/yh_DOT | |
adjustComboBox(i).Items.Add("0.02") '0.02mv/yh_DOT | |
adjustComboBox(i).Items.Add("0.1") '0.1mv/yh_DOT | |
adjustComboBox(i).Items.Add("0.2") | |
adjustComboBox(i).Items.Add("0.5") | |
adjustComboBox(i).Items.Add("1") '1mv?yh?DOT | |
adjustComboBox(i).Items.Add("2") | |
adjustComboBox(i).Items.Add("5") | |
adjustComboBox(i).Items.Add("10") '10mV/yh_DOT | |
adjustComboBox(i).Items.Add("20") | |
adjustComboBox(i).Items.Add("50") '50mV?yh_DOT | |
'adjustComboBox(i).Items.Add("90") | |
'adjustComboBox(i).Items.Add("100") | |
Next | |
For i = 0 To 15 | |
'adjustComboBox(i).SelectedIndex = 3 | |
midTextBox(i).Text = CStr(1550) | |
'CH_checkbox(i).Checked = True | |
Next i | |
'==================COMBOBOX8 X_Mag scale================================= | |
'===============1,2,3,4,5,6,10,12================================== | |
ComboBox8.Items.Add("0.01") | |
ComboBox8.Items.Add("0.1") | |
ComboBox8.Items.Add("0.2") | |
ComboBox8.Items.Add("0.5") | |
ComboBox8.Items.Add("1") | |
ComboBox8.Items.Add("2") | |
ComboBox8.Items.Add("3") | |
ComboBox8.Items.Add("4") | |
ComboBox8.Items.Add("5") | |
ComboBox8.Items.Add("6") | |
ComboBox8.Items.Add("10") | |
ComboBox8.Items.Add("12") | |
ComboBox8.SelectedIndex = 5 | |
'===================TrackBar read======================== | |
Dim TBvalue As Integer | |
TBvalue = TrackBar1.Value | |
TextBox20.Text = CStr(TBvalue) | |
'===========Receive check============== | |
CheckBox9.Checked = True | |
Button2.Enabled = False | |
'======Color Combobox ============================ | |
ComboBox9.Items.Add(Color.Red) | |
ComboBox9.Items.Add(Color.Blue) | |
ComboBox9.Items.Add(Color.Green) | |
ComboBox9.Items.Add(Color.Magenta) | |
ComboBox9.Items.Add(Color.Orange) | |
ComboBox9.Items.Add(Color.Black) | |
ComboBox9.SelectedIndex = 0 | |
'============USB Serial Ports Search============= | |
For Each sp As String In My.Computer.Ports.SerialPortNames | |
ComboBox10.Items.Add(sp) | |
ComboBox11.Items.Add(sp) | |
Next | |
ComboBox10.Items.Add("None") | |
ComboBox11.Items.Add("None") | |
ComboBox11.SelectedIndex = ComboBox11.Items.Count - 1 | |
'==============================COLORS ==================================== | |
TextBox13.BackColor = Color.Red | |
TextBox14.BackColor = Color.Blue | |
TextBox15.BackColor = Color.Green | |
TextBox16.BackColor = Color.Magenta | |
TextBox17.BackColor = Color.Orange | |
TextBox18.BackColor = Color.LemonChiffon | |
TextBox19.BackColor = Color.Maroon | |
TextBox28.BackColor = Color.MediumSpringGreen | |
TextBox30.BackColor = Color.DeepPink | |
TextBox32.BackColor = Color.Crimson | |
TextBox34.BackColor = Color.SeaGreen | |
TextBox36.BackColor = Color.GreenYellow | |
TextBox38.BackColor = Color.Orchid | |
TextBox40.BackColor = Color.Lime | |
TextBox42.BackColor = Color.DarkSlateBlue | |
TextBox44.BackColor = Color.DarkViolet | |
End Sub | |
'======================================================================== | |
'================Average Graph mid Data================================== | |
'======================================================================== | |
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click | |
Try | |
Dim endnum As Integer | |
Dim startnum As Integer | |
Dim midave(16) As Double | |
If dataNo > 200 Then | |
endnum = dataNo ' CInt(TextBox2.Text) | |
startnum = endnum - 100 | |
midave = dave(startnum, endnum, CInt(TextBox3.Text)) | |
'Debug.Print("AveButtn:" & CStr(startnum) & "," & CStr(endnum) & "," & CStr(midave(0))) | |
TextBox13.Text = midave(0) | |
TextBox14.Text = midave(1) | |
TextBox15.Text = midave(2) | |
TextBox16.Text = midave(3) | |
TextBox17.Text = midave(4) | |
TextBox18.Text = midave(5) | |
TextBox19.Text = midave(6) | |
TextBox28.Text = midave(7) | |
TextBox30.Text = midave(8) | |
TextBox32.Text = midave(9) | |
TextBox34.Text = midave(10) | |
TextBox36.Text = midave(11) | |
TextBox38.Text = midave(12) | |
TextBox40.Text = midave(13) | |
TextBox42.Text = midave(14) | |
TextBox44.Text = midave(15) | |
End If | |
Catch ex As Exception | |
Console.WriteLine(ex.Message) '例外処理を行います | |
Console.WriteLine("Error in Average") | |
End Try | |
End Sub | |
'==========================PLOTTING Parameter Check =============================================== | |
'===================dataAry(,)=mV rate()=dot/mv=1/adjutvalue()(=mV/dot)============================================ | |
'=================== plot: py=(dataAry(,)-midvalue())*rate()+midvalue()============================================== | |
'Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click | |
' Dim m, n As Integer | |
' Dim px, py As Integer | |
' Dim dn, ds, de As Integer | |
' 'ReDim rate(16) | |
' 'For m = 0 To 6 | |
' ' rate(m) = 1 / CInt(adjustComboBox(m).Text) | |
' ' midvalue(m) = CDbl(midTextBox(m).Text) | |
' 'Next | |
' dn = CInt(TextBox2.Text) '現在データNo | |
' ds = CInt(dn / 600) * 600 '左始点データスタートNO | |
' de = dn Mod 600 '現在座標 | |
' 'Debug.Print("dn=" & CStr(dn) & "ds=" & CStr(ds) & "de=" & CStr(de)) | |
' For n = 0 To 5 | |
' For m = 0 To de | |
' px = m | |
' py = CInt((CDbl(dataAry(ds + m, n)) - midvalue(n)) * rate(n) / 100 + yh / 2) | |
' Next | |
' Next | |
'End Sub | |
'******************************************************************************************************************** | |
'*********************************FORM Reading Functions************************************************************* | |
'******************************************************************************************************************* | |
Private Function AvTR() As Double() | |
Dim ave(16) As Double | |
ave(0) = CDbl(TextBox13.Text) | |
ave(1) = CDbl(TextBox14.Text) | |
ave(2) = CDbl(TextBox15.Text) | |
ave(3) = CDbl(TextBox16.Text) | |
ave(4) = CDbl(TextBox17.Text) | |
ave(5) = CDbl(TextBox18.Text) | |
ave(6) = CDbl(TextBox19.Text) | |
ave(7) = CDbl(TextBox28.Text) | |
ave(8) = CDbl(TextBox30.Text) | |
ave(9) = CDbl(TextBox32.Text) | |
ave(10) = CDbl(TextBox34.Text) | |
ave(11) = CDbl(TextBox36.Text) | |
ave(12) = CDbl(TextBox38.Text) | |
ave(13) = CDbl(TextBox40.Text) | |
ave(14) = CDbl(TextBox42.Text) | |
ave(15) = CDbl(TextBox44.Text) | |
Return ave | |
End Function | |
Private Function RateCR() As Double() | |
Dim rate(16) As Double | |
rate(0) = CDbl(ComboBox1.SelectedItem) 'mv/dot | |
rate(1) = CDbl(ComboBox2.SelectedItem) | |
rate(2) = CDbl(ComboBox3.SelectedItem) | |
rate(3) = CDbl(ComboBox4.SelectedItem) | |
rate(4) = CDbl(ComboBox5.SelectedItem) | |
rate(5) = CDbl(ComboBox6.SelectedItem) | |
rate(6) = CDbl(ComboBox7.SelectedItem) | |
rate(7) = CDbl(ComboBox12.SelectedItem) 'mv/dot | |
rate(8) = CDbl(ComboBox13.SelectedItem) | |
rate(9) = CDbl(ComboBox14.SelectedItem) | |
rate(10) = CDbl(ComboBox15.SelectedItem) | |
rate(11) = CDbl(ComboBox16.SelectedItem) | |
rate(12) = CDbl(ComboBox17.SelectedItem) | |
rate(13) = CDbl(ComboBox18.SelectedItem) | |
rate(14) = CDbl(ComboBox19.SelectedItem) | |
rate(15) = CDbl(ComboBox20.SelectedItem) | |
Return rate | |
End Function | |
Private Function CheckBR() As Integer() | |
Dim selCh(16) As Integer '= {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} | |
Dim CH_checkbox() As CheckBox | |
CH_checkbox = {Me.CheckBox1, Me.CheckBox2, Me.CheckBox3, Me.CheckBox4, Me.CheckBox5, Me.CheckBox6, Me.CheckBox7, Me.CheckBox13, Me.CheckBox14, Me.CheckBox15, Me.CheckBox16, Me.CheckBox17, Me.CheckBox18, Me.CheckBox19, Me.CheckBox20, Me.CheckBox21} | |
For i = 0 To 15 | |
If CH_checkbox(i).Checked = True Then | |
selCh(i) = 1 | |
Else | |
selCh(i) = 0 | |
End If | |
Next i | |
Return selCh | |
End Function | |
Private Function CheckCH() | |
Dim CH_checkbox() As CheckBox | |
CH_checkbox = {Me.CheckBox1, Me.CheckBox2, Me.CheckBox3, Me.CheckBox4, Me.CheckBox5, Me.CheckBox6, Me.CheckBox7, Me.CheckBox13, Me.CheckBox14, Me.CheckBox15, Me.CheckBox16, Me.CheckBox17, Me.CheckBox18, Me.CheckBox19, Me.CheckBox20, Me.CheckBox21} | |
Dim dataTextBox() As TextBox | |
dataTextBox = {Me.TextBox4, Me.TextBox5, Me.TextBox6, Me.TextBox7, Me.TextBox8, Me.TextBox9, Me.TextBox10, Me.TextBox29, Me.TextBox31, Me.TextBox33, Me.TextBox35, Me.TextBox37, Me.TextBox39, Me.TextBox41, Me.TextBox43, Me.TextBox45} | |
'Debug.Print("CheckCH Integer Chsuu") | |
'Debug.Print(Chsuu) | |
For i = 0 To 15 | |
If i < Chsuu Then | |
CH_checkbox(i).Checked = True | |
Else | |
CH_checkbox(i).Checked = False | |
End If | |
Next | |
Label3.Text = "CH selected" | |
End Function | |
'******************************************************************************************************************* | |
'******************************************************************************************************************* | |
'******************************************************************************************************************* | |
'================================================================================================================== | |
'==================================Static Calculation=========================================================== | |
'==========================Ave() MovingAve() ============================================================ | |
'================================================================================================================== | |
'================================================================================================================== | |
Function dave(ByVal startN As Integer, ByVal endN As Integer, ByVal ch As Integer) As Double() | |
Dim chN As Integer | |
Dim dataN As Integer | |
Dim dsum As Double | |
Dim avech() As Double | |
ReDim avech(16) | |
Dim dstring As String | |
dstring = "dave:" + CStr(startN) + "," + CStr(endN) + "," + CStr(ch) | |
' Debug.Print(dstring) | |
'Try | |
For chN = 0 To ch - 1 'chは1-6chで与えられるがデータindexは0-5 | |
For dataN = startN To endN 'startNからendNまでendN-startN+1 個の総和をとって平均 | |
dsum += dataAry(dataN, chN) | |
Next | |
avech(chN) = dsum / (endN - startN + 1) | |
dsum = 0 | |
Next | |
Return avech | |
'Catch ex As Exception | |
' Console.WriteLine(ex.Message) | |
' Console.WriteLine("Error In dave()") | |
'End Try | |
End Function | |
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click | |
'===================FILE Name================= | |
'------FILE SAVE---------------------- | |
Dim sfd As New SaveFileDialog() | |
Dim fname As String | |
fname = Format(Now, "yyyyMMdd_HHmmss") | |
' Debug.Print("fname=" & fname) | |
sfd.FileName = fname | |
sfd.Filter = "TXTファイル|*.txt|CSVファイル|*.csv|すべてのファイル|*.*" | |
sfd.InitialDirectory = "C:\vb_LOG " | |
sfd.FilterIndex = 2 | |
sfd.Title = "保存先のファイルを選択してください" | |
If sfd.ShowDialog() = DialogResult.OK Then | |
'OKボタンがクリックされたとき、選択されたファイル名を表示する | |
Console.WriteLine(sfd.FileName) | |
TextBox21.Text = sfd.FileName | |
End If | |
End Sub | |
Private Sub TrackBar1_MouseDown(sender As Object, e As MouseEventArgs) Handles TrackBar1.MouseDown | |
'Debug.Print("Mouse Downed") | |
End Sub | |
'============ Auto File save CheckBox8==================================== | |
Private Sub CheckBox8_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox8.CheckedChanged | |
If CheckBox8.Checked = False Then | |
fname = "" | |
TextBox21.Text = "" | |
'If System.IO.File.Exists(fname) Then | |
file.Close() | |
Label7.Text = "FileClosed" | |
' End If | |
End If | |
End Sub | |
'=========Receiving CheckBox=============================== | |
Private Sub CheckBox9_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox9.CheckedChanged | |
If CheckBox9.Checked = False Then | |
Button2.Enabled = True | |
Else | |
Button2.Enabled = False | |
End If | |
End Sub | |
'====Linearuty MODE Controls Visible=============== | |
Private Sub CheckBox10_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox10.CheckedChanged | |
If CheckBox10.Checked = True Then | |
TextBox22.Visible = True | |
TextBox23.Visible = True | |
TextBox24.Visible = True | |
TextBox25.Visible = True | |
TextBox26.Visible = True | |
TextBox27.Visible = True | |
Label11.Visible = True | |
Label12.Visible = True | |
Label13.Visible = True | |
Label14.Visible = True | |
Label15.Visible = True | |
Label16.Visible = True | |
Label17.Visible = True | |
Label18.Visible = True | |
Label19.Visible = True | |
End If | |
If CheckBox10.Checked = False Then | |
TextBox22.Visible = False | |
TextBox23.Visible = False | |
TextBox24.Visible = False | |
TextBox25.Visible = False | |
TextBox26.Visible = False | |
TextBox27.Visible = False | |
Label11.Visible = False | |
Label12.Visible = False | |
Label13.Visible = False | |
Label14.Visible = False | |
Label15.Visible = False | |
Label16.Visible = False | |
Label17.Visible = False | |
Label18.Visible = False | |
Label19.Visible = False | |
End If | |
End Sub | |
Private Sub Button8_Click_1(sender As Object, e As EventArgs) Handles Button8.Click | |
PictureBox1.Image = Nothing '1スクロール毎に画面クリア | |
'LSMinit() 'LSM計算初期化 | |
End Sub | |
Private Sub ComboBox9_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox9.SelectedIndexChanged | |
Select Case ComboBox9.SelectedIndex | |
Case 0 | |
ComboBox9.BackColor = Color.Red | |
ComboBox9.ForeColor = Color.Red | |
Case 1 | |
ComboBox9.BackColor = Color.Blue | |
ComboBox9.ForeColor = Color.Blue | |
Case 2 | |
ComboBox9.BackColor = Color.Green | |
ComboBox9.ForeColor = Color.Green | |
Case 3 | |
ComboBox9.BackColor = Color.Magenta | |
ComboBox9.ForeColor = Color.Magenta | |
Case 4 | |
ComboBox9.BackColor = Color.Orange | |
ComboBox9.ForeColor = Color.Orange | |
Case 5 | |
ComboBox9.BackColor = Color.Black | |
ComboBox9.ForeColor = Color.Black | |
End Select | |
End Sub | |
Private Sub Label24_Click(sender As Object, e As EventArgs) Handles Label24.Click | |
End Sub | |
Private Sub ComboBox9_Click(sender As Object, e As EventArgs) Handles ComboBox9.Click | |
ComboBox9.ForeColor = Color.Gray | |
End Sub | |
'==========Comment MEMO===================================== | |
Private Sub RichTextBox1_TextChanged(sender As Object, e As EventArgs) Handles RichTextBox1.TextChanged | |
'-------Ellipse Color---------------- | |
Select Case ComboBox9.SelectedIndex | |
Case 0 | |
RichTextBox1.SelectionColor = Color.Red | |
Case 1 | |
RichTextBox1.SelectionColor = Color.Blue | |
Case 2 | |
RichTextBox1.SelectionColor = Color.Green | |
Case 3 | |
RichTextBox1.SelectionColor = Color.Magenta | |
Case 4 | |
RichTextBox1.SelectionColor = Color.Orange | |
Case 5 | |
RichTextBox1.SelectionColor = Color.Black | |
End Select | |
End Sub | |
Private Sub TextBox3_TextChanged(sender As Object, e As EventArgs) Handles TextBox3.TextChanged | |
'shokaiN = 1 | |
End Sub | |
Private Sub ListBox1_MouseDown(sender As Object, e As MouseEventArgs) Handles ListBox1.MouseDown | |
Dim sindex As Integer | |
sindex = ListBox1.SelectedIndex | |
TextBox12.Text = ListBox1.SelectedItem | |
End Sub | |
Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click | |
shokaiN = 1 | |
End Sub | |
Private Sub formRecord() | |
''*********************Object Array set**************************************************************************** | |
Dim CH_checkbox() As CheckBox | |
CH_checkbox = {Me.CheckBox1, Me.CheckBox2, Me.CheckBox3, Me.CheckBox4, Me.CheckBox5, Me.CheckBox6, Me.CheckBox7, Me.CheckBox13, Me.CheckBox14, Me.CheckBox15, Me.CheckBox16, Me.CheckBox17, Me.CheckBox18, Me.CheckBox19, Me.CheckBox20, Me.CheckBox21} | |
Dim dataTextBox() As TextBox | |
dataTextBox = {Me.TextBox4, Me.TextBox5, Me.TextBox6, Me.TextBox7, Me.TextBox8, Me.TextBox9, Me.TextBox10, Me.TextBox29, Me.TextBox31, Me.TextBox33, Me.TextBox35, Me.TextBox37, Me.TextBox39, Me.TextBox41, Me.TextBox43, Me.TextBox45} | |
Dim adjustComboBox() As ComboBox | |
adjustComboBox = {Me.ComboBox1, Me.ComboBox2, Me.ComboBox3, Me.ComboBox4, Me.ComboBox5, Me.ComboBox6, Me.ComboBox7, Me.ComboBox12, Me.ComboBox13, Me.ComboBox14, Me.ComboBox15, Me.ComboBox16, Me.ComboBox17, Me.ComboBox18, Me.ComboBox19, Me.ComboBox20} | |
Dim midTextBox() As TextBox | |
midTextBox = {Me.TextBox13, Me.TextBox14, Me.TextBox15, Me.TextBox16, Me.TextBox17, Me.TextBox18, Me.TextBox19, Me.TextBox28, Me.TextBox30, Me.TextBox32, Me.TextBox34, Me.TextBox36, Me.TextBox38, Me.TextBox40, Me.TextBox42, Me.TextBox44} | |
'****************************************************************************************************************** | |
'Dim arry() As Integer = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100} | |
'================COMBOBOX Def============================= | |
ComboBox21.SelectedIndex = 0 ' MA 初期値 1 | |
ComboBox1.Items.Clear() | |
Dim n As Integer | |
shokaiN = 1 | |
For i = 0 To 15 | |
adjustComboBox(i).Items.Add("0.1") '0.1mv/yh_DOT | |
adjustComboBox(i).Items.Add("0.2") | |
adjustComboBox(i).Items.Add("0.5") | |
adjustComboBox(i).Items.Add("1") '1mv?yh?DOT | |
adjustComboBox(i).Items.Add("2") | |
adjustComboBox(i).Items.Add("5") | |
adjustComboBox(i).Items.Add("10") '10mV/yh_DOT | |
adjustComboBox(i).Items.Add("20") | |
adjustComboBox(i).Items.Add("50") '50mV?yh_DOT | |
'adjustComboBox(i).Items.Add("90") | |
'adjustComboBox(i).Items.Add("100") | |
Next | |
For i = 0 To 15 | |
'adjustComboBox(i).SelectedIndex = 3 | |
midTextBox(i).Text = CStr(1550) | |
'CH_checkbox(i).Checked = True | |
Next i | |
'==================COMBOBOX8 X_Mag scale================================= | |
'===============1,2,3,4,5,6,10,12================================== | |
ComboBox8.Items.Add("0.01") | |
ComboBox8.Items.Add("0.1") | |
ComboBox8.Items.Add("0.2") | |
ComboBox8.Items.Add("0.5") | |
ComboBox8.Items.Add("1") | |
ComboBox8.Items.Add("2") | |
ComboBox8.Items.Add("3") | |
ComboBox8.Items.Add("4") | |
ComboBox8.Items.Add("5") | |
ComboBox8.Items.Add("6") | |
ComboBox8.Items.Add("10") | |
ComboBox8.Items.Add("12") | |
ComboBox8.SelectedIndex = 5 | |
'===================TrackBar read======================== | |
Dim TBvalue As Integer | |
TBvalue = TrackBar1.Value | |
TextBox20.Text = CStr(TBvalue) | |
'===========Receive check============== | |
CheckBox9.Checked = True | |
Button2.Enabled = False | |
'======Color Combobox ============================ | |
ComboBox9.Items.Add(Color.Red) | |
ComboBox9.Items.Add(Color.Blue) | |
ComboBox9.Items.Add(Color.Green) | |
ComboBox9.Items.Add(Color.Magenta) | |
ComboBox9.Items.Add(Color.Orange) | |
ComboBox9.Items.Add(Color.Black) | |
ComboBox9.SelectedIndex = 0 | |
'============USB Serial Ports Search============= | |
For Each sp As String In My.Computer.Ports.SerialPortNames | |
ComboBox10.Items.Add(sp) | |
ComboBox11.Items.Add(sp) | |
Next | |
ComboBox10.Items.Add("None") | |
ComboBox11.Items.Add("None") | |
ComboBox11.SelectedIndex = ComboBox11.Items.Count - 1 | |
End Sub | |
'======================================================================================================================== | |
'================================================Setting Save Mode======================================================== | |
'======================================================================================================================== | |
Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click | |
'''*********************Control Object Array set**************************************************************************** | |
Dim allTextBox() As TextBox | |
allTextBox = {Me.TextBox1, Me.TextBox2, Me.TextBox3, Me.TextBox4, Me.TextBox5, Me.TextBox6, Me.TextBox7, Me.TextBox8, Me.TextBox9, Me.TextBox10 _ | |
, Me.TextBox11, Me.TextBox12, Me.TextBox13, Me.TextBox14, Me.TextBox15, Me.TextBox16, Me.TextBox17, Me.TextBox18, Me.TextBox19, Me.TextBox20 _ | |
, Me.TextBox21, Me.TextBox22, Me.TextBox23, Me.TextBox24, Me.TextBox25, Me.TextBox26, Me.TextBox27, Me.TextBox28, Me.TextBox29, Me.TextBox30 _ | |
, Me.TextBox31, Me.TextBox32, Me.TextBox33, Me.TextBox34, Me.TextBox35, Me.TextBox36, Me.TextBox37, Me.TextBox38, Me.TextBox39, Me.TextBox40 _ | |
, Me.TextBox41, Me.TextBox42, Me.TextBox43, Me.TextBox44, Me.TextBox45, Me.TextBox46, Me.TextBox47, Me.TextBox48, Me.TextBox49, Me.TextBox50 _ | |
, Me.TextBox51, Me.TextBox52, Me.TextBox53, Me.TextBox54, Me.TextBox55, Me.TextBox56, Me.TextBox57, Me.TextBox58, Me.TextBox59} | |
Dim allcheckbox() As CheckBox | |
allcheckbox = {Me.CheckBox1, Me.CheckBox2, Me.CheckBox3, Me.CheckBox4, Me.CheckBox5, Me.CheckBox6, Me.CheckBox7, Me.CheckBox8, Me.CheckBox9, Me.CheckBox10 _ | |
, Me.CheckBox11, Me.CheckBox12, Me.CheckBox13, Me.CheckBox14, Me.CheckBox15, Me.CheckBox16, Me.CheckBox17, Me.CheckBox18, Me.CheckBox19, Me.CheckBox20 _ | |
, Me.CheckBox21, Me.CheckBox22, Me.CheckBox23, Me.CheckBox24} | |
Dim allComboBox() As ComboBox | |
allComboBox = {Me.ComboBox1, Me.ComboBox2, Me.ComboBox3, Me.ComboBox4, Me.ComboBox5, Me.ComboBox6, Me.ComboBox7, Me.ComboBox8, Me.ComboBox9, Me.ComboBox10 _ | |
, Me.ComboBox11, Me.ComboBox12, Me.ComboBox13, Me.ComboBox14, Me.ComboBox15, Me.ComboBox16, Me.ComboBox17, Me.ComboBox18, Me.ComboBox19, Me.ComboBox20 _ | |
, Me.ComboBox21} | |
''***************************************File Name ****************************************************************** | |
' If CheckBox8.Checked = True And fname = "" Then | |
fname2 = Format(Now, "yyyyMMdd_HHmmss") | |
fname2 = "C:\vb_LOG\Set_" & fname2 & ".csv" | |
TextBox59.Text = fname2 | |
'---MS Example------------------------------ | |
'Dim file As System.IO.StreamWriter | |
'file = My.Computer.FileSystem.OpenTextFileWriter("c:\test.txt", True) | |
'file.WriteLine("Here is the first string.") | |
'file.Close() | |
'------------------------------------------ | |
Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding(“Shift_JIS”) | |
file2 = My.Computer.FileSystem.OpenTextFileWriter(fname2, False, enc) | |
' End If | |
'=====TextBox Save======== | |
For cIndex = 0 To 58 | |
textboxdata = allTextBox(cIndex).Text & "," | |
file2.Write(textboxdata) | |
Next | |
file2.Write(vbCrLf) | |
For cIndex = 0 To 23 | |
checkboxdata = allcheckbox(cIndex).Checked & "," | |
file2.Write(checkboxdata) | |
Next | |
file2.Write(vbCrLf) | |
For cIndex = 0 To 20 | |
comboboxdata = allComboBox(cIndex).SelectedIndex & "," | |
file2.Write(comboboxdata) | |
Next | |
file2.Write(vbCrLf) | |
file2.Close() | |
End Sub | |
'======================================================================================================================== | |
'================================================Setting Read Mode======================================================== | |
'======================================================================================================================== | |
Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click | |
'''*********************Control Object Array set**************************************************************************** | |
Dim allTextBox() As TextBox | |
allTextBox = {Me.TextBox1, Me.TextBox2, Me.TextBox3, Me.TextBox4, Me.TextBox5, Me.TextBox6, Me.TextBox7, Me.TextBox8, Me.TextBox9, Me.TextBox10 _ | |
, Me.TextBox11, Me.TextBox12, Me.TextBox13, Me.TextBox14, Me.TextBox15, Me.TextBox16, Me.TextBox17, Me.TextBox18, Me.TextBox19, Me.TextBox20 _ | |
, Me.TextBox21, Me.TextBox22, Me.TextBox23, Me.TextBox24, Me.TextBox25, Me.TextBox26, Me.TextBox27, Me.TextBox28, Me.TextBox29, Me.TextBox30 _ | |
, Me.TextBox31, Me.TextBox32, Me.TextBox33, Me.TextBox34, Me.TextBox35, Me.TextBox36, Me.TextBox37, Me.TextBox38, Me.TextBox39, Me.TextBox40 _ | |
, Me.TextBox41, Me.TextBox42, Me.TextBox43, Me.TextBox44, Me.TextBox45, Me.TextBox46, Me.TextBox47, Me.TextBox48, Me.TextBox49, Me.TextBox50 _ | |
, Me.TextBox51, Me.TextBox52, Me.TextBox53, Me.TextBox54, Me.TextBox55, Me.TextBox56, Me.TextBox57, Me.TextBox58, Me.TextBox59} | |
Dim allcheckbox() As CheckBox | |
allcheckbox = {Me.CheckBox1, Me.CheckBox2, Me.CheckBox3, Me.CheckBox4, Me.CheckBox5, Me.CheckBox6, Me.CheckBox7, Me.CheckBox8, Me.CheckBox9, Me.CheckBox10 _ | |
, Me.CheckBox11, Me.CheckBox12, Me.CheckBox13, Me.CheckBox14, Me.CheckBox15, Me.CheckBox16, Me.CheckBox17, Me.CheckBox18, Me.CheckBox19, Me.CheckBox20 _ | |
, Me.CheckBox21, Me.CheckBox22, Me.CheckBox23, Me.CheckBox24} | |
Dim allComboBox() As ComboBox | |
allComboBox = {Me.ComboBox1, Me.ComboBox2, Me.ComboBox3, Me.ComboBox4, Me.ComboBox5, Me.ComboBox6, Me.ComboBox7, Me.ComboBox8, Me.ComboBox9, Me.ComboBox10 _ | |
, Me.ComboBox11, Me.ComboBox12, Me.ComboBox13, Me.ComboBox14, Me.ComboBox15, Me.ComboBox16, Me.ComboBox17, Me.ComboBox18, Me.ComboBox19, Me.ComboBox20 _ | |
, Me.ComboBox21} | |
''****************************************************************************************************************** | |
Dim ofd As New OpenFileDialog() | |
'はじめのファイル名を指定する | |
'はじめに「ファイル名」で表示される文字列を指定する | |
ofd.FileName = "yyyyMMdd_HHmmss" '"default.html" | |
'はじめに表示されるフォルダを指定する | |
'指定しない(空の文字列)の時は、現在のディレクトリが表示される | |
ofd.InitialDirectory = "C:\vb_LOG " | |
'[ファイルの種類]に表示される選択肢を指定する | |
'指定しないとすべてのファイルが表示される | |
ofd.Filter = "TXTファイル|*.txt|CSVファイル|*.csv|すべてのファイル|*.*" | |
'[ファイルの種類]ではじめに選択されるものを指定する | |
'2番目の「すべてのファイル」が選択されているようにする | |
ofd.FilterIndex = 2 | |
'タイトルを設定する | |
ofd.Title = "開くファイルを選択してください" | |
'ダイアログボックスを閉じる前に現在のディレクトリを復元するようにする | |
ofd.RestoreDirectory = True | |
'存在しないファイルの名前が指定されたとき警告を表示する | |
'デフォルトでTrueなので指定する必要はない | |
ofd.CheckFileExists = True | |
'存在しないパスが指定されたとき警告を表示する | |
'デフォルトでTrueなので指定する必要はない | |
ofd.CheckPathExists = True | |
If ofd.ShowDialog() = DialogResult.OK Then | |
'OKボタンがクリックされたとき、選択されたファイル名を表示する | |
Console.WriteLine(ofd.FileName) | |
End If | |
'ダイアログを表示する | |
'================================MS sample========================= | |
'https://docs.microsoft.com/ja-jp/dotnet/visual-basic/developing-apps/programming/drives-directories-files/how-to-read-from-comma-delimited-text-files | |
'=================================================================== | |
Using MyReader As New Microsoft.VisualBasic. | |
FileIO.TextFieldParser(ofd.FileName) | |
MyReader.TextFieldType = FileIO.FieldType.Delimited | |
MyReader.SetDelimiters(",") | |
Dim currentRow As String() | |
cIndex = 0 | |
While Not MyReader.EndOfData | |
Try | |
currentRow = MyReader.ReadFields() | |
Dim currentField As String | |
For Each currentField In currentRow | |
'MsgBox(currentField) | |
readata(cIndex) = currentField | |
Debug.Print(cIndex & ":" & readata(cIndex)) | |
'=====TextBox input===== | |
If cIndex < 59 Then | |
allTextBox(cIndex).Text = currentField | |
End If | |
If cIndex > 59 And cIndex < 84 Then | |
allcheckbox(cIndex - 60).Checked = CType(currentField, Boolean) | |
End If | |
If cIndex > 84 And cIndex < 106 Then | |
allComboBox(cIndex - 85).SelectedIndex = currentField | |
End If | |
cIndex = cIndex + 1 | |
Next | |
Catch ex As Microsoft.VisualBasic. | |
FileIO.MalformedLineException | |
MsgBox("Line " & ex.Message & | |
"is not valid and will be skipped.") | |
End Try | |
End While | |
End Using | |
'Using parser As New TextFieldParser(ofd.FileName, System.Text.Encoding.GetEncoding("Shift_JIS")) | |
' parser.TextFieldType = FieldType.Delimited | |
' parser.SetDelimiters(",") ' 区切り文字はコンマ | |
' ' parser.HasFieldsEnclosedInQuotes = False | |
' ' parser.TrimWhiteSpace = False | |
' While Not parser.EndOfData | |
' Dim row As String() = parser.ReadFields() ' 1行読み込み | |
' For i = 0 To row.Length | |
' readata = Split(row(i), ",", -1, CompareMethod.Text) | |
' ' For j = 0 To readata.Length | |
' Debug.Print(readata(0) & ",") | |
' 'Next j | |
' Next i | |
'For Each field As String In row | |
' field = field.Replace(vbCrLf, "n") ' 改行をnで表示 | |
' field = field.Replace(" ", "_") ' 空白を_で表示 | |
' Debug.Writeline(field + vbTab) ' TAB区切りで出力 | |
' 'Debug.Print(field + ",") | |
'Next | |
'Console.WriteLine() | |
'End While | |
'End Using | |
''==============================File Open Read====================================================== | |
'Dim textFile As FileIO.TextFieldParser ' -- 入力するファイル | |
'' --- 入力ファイルを開く | |
'textFile = New FileIO.TextFieldParser(ofd.FileName) ' -- デフォルト encoding は UTF8 | |
'' --- デリミターをタブと定義する | |
'textFile.TextFieldType = FileIO.FieldType.Delimited | |
'textFile.SetDelimiters(",") ' -- カンマ区切りの場合はカッコ内を "," にします | |
'' --- 行を文字型配列(currentRow)に読み込み、各列を DataGridView に格納する | |
'Dim currentRow As String() ' -- 文字型配列 | |
'Dim myRow As Integer = 0 | |
'Dim myCol As Integer = 0 | |
'' ---▼▼ 行ループ | |
'While Not textFile.EndOfData | |
' Me.DataGridView1.Rows.Add() ' -- DataGridView に新規行を追加 | |
' currentRow = textFile.ReadFields() ' -- 1行を文字型配列に格納 | |
' Dim currentColumn As String | |
' ' ---▼ 列ループ:1行分の列を埋める | |
' For Each currentColumn In currentRow | |
' Me.DataGridView1(myCol, myRow).Value = currentColumn | |
' myCol += 1 | |
' Next ' --▲ 列ループ | |
' myCol = 0 | |
' myRow += 1 | |
'End While ' --▲▲ 行ループ | |
'' --- 入力ファイルを閉じる | |
'textFile.Close() | |
''===================FILE Name================= | |
''------FILE SAVE---------------------- | |
'Dim sfd As New SaveFileDialog() | |
'Dim fname4 As String | |
'fname4 = Format(Now, "yyyyMMdd_HHmmss") | |
'' Debug.Print("fname4=" & fname4) | |
'sfd.FileName = fname4 | |
'sfd.Filter = "TXTファイル|*.txt|CSVファイル|*.csv|すべてのファイル|*.*" | |
'sfd.InitialDirectory = "C:\vb_LOG " | |
'sfd.FilterIndex = 2 | |
'sfd.Title = "読み込むファイルを選択してください" | |
'If sfd.ShowDialog() = DialogResult.OK Then | |
' 'OKボタンがクリックされたとき、選択されたファイル名を表示する | |
' Console.WriteLine(sfd.FileName) | |
' TextBox21.Text = sfd.FileName | |
'End If | |
End Sub | |
End Class | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment