Created
September 29, 2020 06:06
-
-
Save dj1711572002/22d281bde051d2818db261380f7898c0 to your computer and use it in GitHub Desktop.
2SerialPorts_RealTime_dataReceiving ,10msec Sampling will need Hi-Peformace PC will recommend
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'Seril Port Recieve Sample Program | |
'Form1 Object must create ,button1,2 & textbox 1,2 | |
Imports System.Drawing | |
Imports System.IO.Ports | |
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 | |
'==========LinearMode Parameteres============== | |
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 fname As String = "" | |
Public file As System.IO.StreamWriter | |
Public fsdata 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 Long | |
Private dataNo As Long | |
Dim stm As Integer = 0 | |
'---------Plotting parameters-------------- | |
Private rate() As Double | |
Private Mag As Double | |
Private midvalue() 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座標 | |
'===============================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 | |
sw.Start() | |
End If | |
dcount += 1 | |
'Debug.Print(dcount) | |
'========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) | |
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" 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 | |
End If | |
'================================================================= | |
'=============ListBox===================== | |
If dcount Mod 50 = 0 Then | |
sw.Stop() | |
stm = sw.ElapsedMilliseconds | |
sw.Start() | |
TextBox46.Text = dcount | |
TextBox47.Text = stm | |
'CheckBox11.Checked = False | |
ListBox1.Items.Add("time=" + CStr(stm)) | |
End If | |
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 | |
'If sdata.Length > 5 Then | |
' '=======================TextBox $ LIST BOX======================================= | |
' 'Console.WriteLine("Text:{0}", ListBox1.Text) | |
' If CheckBox11.Checked = True Then | |
' ListBox1.Visible = True | |
' ListBox1.Items.Add(sdata) ' & ",index1=," & CStr(index1)) | |
' 'ListBox1.Items.Add("COM6:" & dStr(0) & "," & dStr(7) & "COM11:" & dStr(8) & "," & dStr(10) & "VBtime=" & CStr(index1)) | |
' 'TextBox12.Text = sdata & ",index1=," & CStr(index1) | |
' TextBox12.Text = stdata '& CStr(index1) | |
' End If | |
' 'TextBox12.Text = "COM6:" & dStr(0) & "," & dStr(7) & "COM11:" & dStr(8) & "," & dStr(10) & "VBtime=" & CStr(index1) | |
' If CheckBox11.Checked = False Then | |
' ListBox1.Visible = False | |
' End If | |
'-------------初回だけCHチェックとチェックボックス------------------------- | |
'If shokaiN = 1 Then | |
' CheckCH() | |
' Ch_sel = CheckBR() 'CheckBox Checked array 1=ON 0=OFF | |
' shokaiN = 0 | |
' Debug.Print("ShokaiN=1 CH Check Done") | |
'End If | |
'==========================Data write to 16 TextBox 16 CheckBox 20回に1回更新 ============================================ | |
'If dataNo Mod 10 = 0 Then | |
' For k = 0 To 15 | |
' If Ch_sel(k) Then | |
' dataTextBox(k).Text = dStr(k) | |
' End If | |
' Next k | |
'End If | |
'======同期ズレ表示====================== | |
'If dataNo Mod 200 = 0 Then | |
' If SerialPort2.IsOpen = True And dStr.Length > 7 Then | |
' TextBox46.Text = dStr(0) | |
' TextBox47.Text = CInt(dStr(0)) - CInt(dStr(8)) | |
' End If | |
'End If | |
'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) = CInt(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 | |
'SerialPort1.DiscardInBuffer() | |
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--" | |
End If | |
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=================================== | |
Dim rate(16) As Double | |
Dim midvalue(16) As Double | |
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) | |
'************************************************************************************* | |
'************************************************************************************** | |
'========================================================================= | |
'=================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 | |
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 x1ch, y1ch, x2ch, y2ch, x3ch, y3ch As Integer | |
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 b As Brush | |
b = Brushes.Black | |
If CheckBox10.Checked = True Then | |
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 | |
'--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) | |
g.FillEllipse(b, px, py, 3, 3) ' 点プロット | |
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) ' 点プロット | |
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) ' 点プロット | |
End If | |
g.Dispose() | |
PictureBox1.Invalidate() | |
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============================= | |
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 | |
'==============================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.Lime | |
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.Maroon | |
TextBox42.BackColor = Color.DarkSlateBlue | |
TextBox44.BackColor = Color.DarkViolet | |
'p1 = Pens.Red | |
'p2 = Pens.Blue | |
'p3 = Pens.Green | |
'p4 = Pens.Magenta | |
'p5 = Pens.Orange | |
'p6 = Pens.Black | |
'p7 = Pens.Lime | |
'p8 = Pens.MediumSpringGreen | |
'p9 = Pens.HotPink | |
'p10 = Pens.PowderBlue | |
'p11 = Pens.SeaGreen | |
'p12 = Pens.Salmon | |
'p13 = Pens.Orchid | |
'p14 = Pens.Maroon | |
'p15 = Pens.DarkSlateBlue | |
'p16 = Pens.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(8) | |
ReDim midvalue(8) | |
'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) | |
'Debug.Print("m=" & CStr(m) & "n=" & CStr(n) & "dataAry=" & CStr(dataAry(ds + m, n)) & "midvalue=" & CStr(midvalue(n)) & "sa=" & CStr((CDbl(dataAry(ds + m, n)) - midvalue(n))) & "rate=" & rate(n) & "Plotting:px=" & CStr(px) & "py=" & CStr(py)) | |
'Debug.Print("Plotting:px=" & CStr(px) & "py=" & CStr(py)) | |
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 | |
'For i = 0 To CInt(TextBox3.Text) - 1 | |
' CH_checkbox(i).Checked = True | |
'Next | |
'For i = CInt(TextBox3.Text) - 1 To 15 | |
' CH_checkbox(i).Checked = False | |
' dataTextBox(i).Text = "" | |
'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 | |
Function MovAve(ByRef dA(,) As Long, ByVal colN As Integer, ByVal MA As Integer, ByVal rowN As Integer) As Double() | |
Dim i, j As Integer | |
Dim dataSum() As Long | |
Dim dSum As Long | |
Dim dataA() As Double '= {0, 0, 0, 0, 0, 0, 0} | |
'Debug.Print("====colN=" & CStr(colN) & "MA=" & CStr(MA) & "rowN=" & CStr(rowN)) | |
ReDim dataSum(colN + 1) | |
ReDim dataA(colN + 1) | |
For j = 0 To colN - 1 | |
dSum = 0 | |
For i = rowN - MA To rowN | |
dSum = dSum + dA(i, j) | |
'Debug.Print("dA(" & CStr(i) & "," & CStr(j) & ")=" & CStr(dA(i, j)) & CStr(dataSum(j))) | |
Next | |
dataA(j) = CDbl(dSum / MA) | |
Next | |
MovAve = dataA | |
End Function | |
Sub AutoFileLog() | |
End Sub | |
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スクロール毎に画面クリア | |
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 ComboBox9_Click(sender As Object, e As EventArgs) Handles ComboBox9.Click | |
ComboBox9.ForeColor = Color.Gray | |
End Sub | |
'==========Comment MEMO===================================== | |
Private Sub Button10_Click(sender As Object, e As EventArgs) | |
End Sub | |
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 Shared _form1Instance As Form1 | |
'Form1オブジェクトを取得、設定するためのプロパティ | |
End Class | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment