У меня есть восемь текстовых полей, каждое из которых может иметь любое числовое значение, состоящее только из цифр от 1-8 до восьми цифр в каждом. Нет 0 или 9.
Я использую таймер для циклического просмотра последовательностей текстовых полей с заданной скоростью. Это уже настроено.
Теперь вот самая сложная часть, которая так со мной обнажена.
Мне нужно вывести первое значение текстового поля, подождать некоторое время, затем вывести его счетчик буква (ниже числа на клавиатуре), перейти к следующему текстовому полю и повторить. Пример:
У меня в восьми коробках:
1
34
765
2
56
84
7
12345678
После каждого вывода каждого последовательного текстового поля мне нужно вывести:
Q
ER
UYT
W
TY
IR
U
QWERTYUI
«Выход» будет SerialPort1.Write(*numbers or letters*)
разделен таймером между каждым ВКЛ / ВЫКЛ. Числа включают устройство, буквы выключают его. Начиная с SerialPort1.Write(TxtLoop1.Text)
У меня уже установлена связь по RS-232. Информация поступает на 8-канальную плату сбора данных DLP-IO8 USB.
Чтобы лучше понять устройство:
1-8 включает каждый канал (12345678)
Q-I отключает каждый канал (QWERTYUI)
Таблица истинности для устройства:
1 = Ch1 ON | Q = Ch1 OFF
2 = Ch2 ON | W = Ch2 OFF
3 = Ch3 ON | E = Ch3 OFF
--
8 = Ch8 ON | I = Ch8 OFF
При отправке «124» включаются каналы 1, 2 и 4.
Отправка «QWR» отключит каналы 1, 2 и 4.
Я кодирую только несколько дней, так что успокойся. Учусь, как я иду.
Моя форма для справки
В конечном итоге я пытаюсь обновить свой проект PC Interface , перейдя с параллельного порта на USB. Это будет функция «Custom Loop» для устройства.
Dim loopnum1 As String
loopnum1 = TxtLoop1.Text
Dim ListOfloop1 As String() = loopnum1.Split(New Char() {""})
Dim singlenum1 As String
Dim offloop1 As String
offloop1 = "Q"
For Each singlenum1 In ListOfloop1
SerialPort1.Write(singlenum1)
Timer2.Interval = (cmbSPLoop.Value) * 12
If singlenum1 = "1" Then offloop1 = "Q"
If singlenum1 = "2" Then offloop1 = "W"
If singlenum1 = "3" Then offloop1 = "E"
If singlenum1 = "4" Then offloop1 = "R"
If singlenum1 = "5" Then offloop1 = "T"
If singlenum1 = "6" Then offloop1 = "Y"
If singlenum1 = "7" Then offloop1 = "U"
If singlenum1 = "8" Then offloop1 = "I"
SerialPort1.Write(offloop1)
Next
Dim loopnum2 As String
loopnum2 = TxtLoop2.Text
Dim ListOfloop2 As String() = loopnum2.Split(New Char() {""})
Dim singlenum2 As String
Dim offloop2 As String
offloop2 = "Q"
For Each singlenum2 In ListOfloop2
SerialPort1.Write(singlenum2)
Timer2.Interval = (cmbSPLoop.Value) * 12
If singlenum2 = "1" Then offloop2 = "Q"
If singlenum2 = "2" Then offloop2 = "W"
If singlenum2 = "3" Then offloop2 = "E"
If singlenum2 = "4" Then offloop2 = "R"
If singlenum2 = "5" Then offloop2 = "T"
If singlenum2 = "6" Then offloop2 = "Y"
If singlenum2 = "7" Then offloop2 = "U"
If singlenum2 = "8" Then offloop2 = "I"
SerialPort1.Write(offloop2)
Next
и т.д.
Полагаю, я делаю это восемь раз подряд с каждым шагом TxtLoop # .text или?