Я пытаюсь установить соединение и считывать данные из виртуального COM-порта, используя VB6, исходя из моего запроса здесь: Ограничения скорости передачи в программном обеспечении и последовательной связи с внешним устройством . Я использую драйвер FTDI для связи с устройством через USB VCP.
Я использую библиотеку FTD2XX в Visual Basic 6 для отображения имени и серийного номера устройства (это уже работает), установки количества стоп-битов, установки скорости передачи данных и количества битов данных. Я хотел бы сейчас читать и писать с последовательного порта, и у меня есть код и вопросы. Мой код ниже:
Public Class FTDI1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim DeviceIndex As Integer
Dim TempDevString As String
Dim Read_Result As Integer
Dim Read_Count As Integer
' Get serial number of device with index 0
' Allocate space for string variable
TempDevString = Space(16)
FT_Status = FT_GetDeviceString(DeviceIndex, TempDevString, FT_LIST_BY_INDEX Or FT_OPEN_BY_SERIAL_NUMBER)
If FT_Status <> FT_OK Then
Exit Sub
End If
FT_Serial_Number = Microsoft.VisualBasic.Left(TempDevString, InStr(1, TempDevString, vbNullChar) - 1)
' Display serial number on form
TextBox1.Text = FT_Serial_Number
' Get the model of the connected device
TempDevString = Space(64)
FT_Status = FT_GetDeviceString(DeviceIndex, TempDevString, FT_LIST_BY_INDEX Or FT_OPEN_BY_DESCRIPTION)
If FT_Status <> FT_OK Then
Exit Sub
End If
FT_Description = Microsoft.VisualBasic.Left(TempDevString, InStr(1, TempDevString, vbNullChar) - 1)
' Display serial number on form
TextBox2.Text = FT_Description
' Set baud rate of the connected device
' Set Baud Rate
FT_Status = FT_SetBaudRate(FT_Handle, 1000000)
If FT_Status <> FT_OK Then
Debug.Print("Baud rate set")
Exit Sub
End If
' Set the number of stop bits of the recorded device
' Set parameters
FT_Status = FT_SetDataCharacteristics(FT_Handle, FT_DATA_BITS_8, FT_STOP_BITS_2, FT_PARITY_NONE)
If FT_Status <> FT_OK Then
Debug.Print("Stop bits, parity and data bits set")
Exit Sub
End If
' Read bytes (not strings)
FT_Status = FT_Read_Bytes(FT_Handle, FT_In_Buffer(16), Read_Count, Read_Result)
If FT_Status <> FT_OK Then
Debug.Print(Read_Result)
Exit Sub
End If
' Display read bytes on form
TextBox3.Text = Read_Result
' Close device
FT_Status = FT_Close(FT_Handle)
If FT_Status <> FT_OK Then
Exit Sub
End If
End Sub
End Class
У меня следующие вопросы:
1) Я установил скорость передачи, стоп-биты и количество битов данных, используя библиотеку FD2XX. После того, как это будет сделано, возможно ли напрямую подключиться к последовательному порту и отправлять или получать данные, используя функции, которые не входят в библиотеку FTDI? Я спрашиваю об этом, потому что я не уверен, что драйверы FTD2XX отделены от VCP, а FTDI не предоставляет документацию по последовательной связи с использованием USB VCP.
2) Существуют ли хорошо документированные библиотеки функций / предложения кода, которые позволили бы мне читать из него? Если это требует какой-либо формы преобразования, пожалуйста, можно ли также предложить хорошо документированную библиотеку функций?
3) Существуют ли хорошо документированные библиотеки функций для записи целых чисел без знака на устройство, с которым я обмениваюсь информацией через USB VCP?