В Visual Basic использую компонент MSComm.
Настройки порта в свойствах этого компонента.
Создал на форме Label - FromCAT, в него принимаются данные из порта.
Код:
Private Sub MSComm1_OnComm()
Form1.FromCAT.Caption = Form1.FromCAT.Caption + MSComm1.Input 'В строку принимаются данные из порта.
End Sub
Вывод частоты в текстовый файл:
Код:
'Обработка выводимой в журнал частоты из трансивера через CAT. Смотри Private Sub MSComm1_OnComm()
FromCAT.Caption = "" 'Обнуление содержимого строки - подготовка к приёму значения частоты с САТ.
MSComm1.Output = "FA;" 'Отправка команды на порт COM2 - на трансивер.
Delay (2) 'Пауза для получения ответа из порта. Если поставить 1, то значение частоты принимается не полностью.
If Len(FromCAT.Caption) > 0 Then 'Если ответ принят.
Freq = LTrim(Str(Val(Mid(FromCAT.Caption, 3, 8)))) 'Выделение значения частоты в Герцах.
Else 'Если трансивер не включен в журнал выводятся следующие значения частот.
If Frequency.Caption = "160M" Then Freq = "1800000"
If Frequency.Caption = "80M" Then Freq = "3500000"
If Frequency.Caption = "40M" Then Freq = "7000000"
If Frequency.Caption = "20M" Then Freq = "14000000"
If Frequency.Caption = "15M" Then Freq = "21000000"
If Frequency.Caption = "10M" Then Freq = "28000000"
End If
Print #2, Form2.Text101.Text + ";" + NewCallsign.Text + ";" + YYYY + MM + DD + HH + Min + Sec + ";1;;;" + _
Freq + ";0;;" + Label10.Caption + ";" + NewRSTSent.Text + ";" + NewRstReceived.Text + _
";" + NewNumS.Text + ";" + NewNumR.Text + ";;;;;;;;;;;;;"