Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 24

Тема: Чтение частоты трансивера - Mini CAT

  1. #11
    Аватар для ut7du
    Регистрация
    04.02.2006
    Адрес
    Украина
    Сообщений
    926
    Записей в дневнике
    2
    Позывной
    UT7DU- UT7D
    Цитата Сообщение от RX4HX Посмотреть сообщение
    Вы тут пишите и тут же читаете. Это не верно. Нужно ожидать ответа от трансивера по событию.
    Ну во первых я передаю по событию кнопки - клик
    А принимаю в отдельном потоке.....
    ...............
    Так подскажите. Всем интересно думаю будет. Или не позволит .... ?

    Цитата Сообщение от RX4HX Посмотреть сообщение
    Для XP рекомендую этот
    - у меня 10-ка на обоих компах

    Добавлено через 25 минут(ы):

    Сделал до безобразия просто
    убрал поток
    2 кнопки :
    1 - передача AF;
    2 - Прием с отображением на Label2
    не хочет......
    privatevoid button1_Click(object sender, EventArgs e)
    {
    string writestring;
    writestring = "AI;";

    serialPort1.WriteLin e(String.Format("{0}", writestring));
    writestring = "AF;";
    serialPort1.WriteLin e(String.Format("{0}", writestring));
    }
    privatevoid button2_Click(object sender, EventArgs e)
    {
    string readstring;
    readstring = serialPort1.ReadLine ();
    label2.Text = readstring;
    }
    privatevoid Form1_FormClosed(object sender, FormClosedEventArgs e)
    {
    serialPort1.Close();
    }
    privatevoid serialPort1_DataRece ived(object sender, SerialDataReceivedEv entArgs e)
    {
    string readstring;
    readstring = serialPort1.ReadLine ();
    label2.Text = readstring;
    }
    privatevoid Form1_Load(object sender, EventArgs e)
    {
    serialPort1.Open();
    }


    Даже продублировал в событии serialPort1_DataRece ived
    прием

    Последний раз редактировалось ut7du; 29.06.2016 в 18:32.
    Всем хорошего настроения !


  2. #12
    ut7du, обратите внимание, поднимается ли RTS линия во время передачи данных? Кенвуд без этого не воспринимает команды. То, что это USB-кабель - ничего не меняет, в трансивере стоит обычный СОМ-USB контроллер с обычными сигналами в т.ч. RTS.
    Я не работал в сишных средах разработки с портом, но к примеру в компоненте на делфи нужно было ногу включать отдельно.

  3. #13
    Аватар для ut7du
    Регистрация
    04.02.2006
    Адрес
    Украина
    Сообщений
    926
    Записей в дневнике
    2
    Позывной
    UT7DU- UT7D
    Цитата Сообщение от Serg Посмотреть сообщение
    обратите внимание, поднимается ли RTS линия во время передачи данных?
    а как посмотреть ?
    Всем хорошего настроения !

  4. #14
    Цитата Сообщение от ut7du Посмотреть сообщение
    а как посмотреть ?
    Запустить программу на обычный СОМ порт или USB-COM переходник и глянуть на RTS ноге осциллом или светодиодом с резистором 1кОм.

  5. #15
    Аватар для R9CD
    Регистрация
    30.07.2007
    Адрес
    г. Ревда, Свердловская область
    Сообщений
    205
    Позывной
    R9CD
    В 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 + ";;;;;;;;;;;;;"
    Последний раз редактировалось R9CD; 30.06.2016 в 08:53.

  6. Спасибо от ut7du

  7. #16
    Аватар для ut7du
    Регистрация
    04.02.2006
    Адрес
    Украина
    Сообщений
    926
    Записей в дневнике
    2
    Позывной
    UT7DU- UT7D
    Саша спасибо. Но я пишу на С# - Visual Studio 2015
    Всем хорошего настроения !

  8. #17

    Регистрация
    01.08.2013
    Адрес
    г. Полтава
    Сообщений
    572
    Позывной
    UR7HFO
    Цитата Сообщение от RX4HX Посмотреть сообщение
    Вы тут пишите и тут же читаете. Это не верно. Нужно ожидать ответа от трансивера по событию.
    Вот Вам RX4HX верно подсказывает. После FA; сделайте задержку 10..50 мс , а потом читайте.
    73! Дмитрий http://www.qrz.com/db/UR7HFO

  9. #18
    Цитата Сообщение от ut7du Посмотреть сообщение
    Сделал до безобразия просто
    Еще раз (и наверное больше писать не буду, т.к. Вы не реагируете на то, что Вам пишут), напишу:
    Ваш вариант принципиально не верен. Говорю Вам как человек, который 2 года потратил на написание нормального CAT:
    вариант

    Цитата Сообщение от ut7du Посмотреть сообщение
    serialPort1.ReadLin
    с трансиверами (да и вообще с любыми устройствами) не катит. Нужно типа такого

    try
    {создание события для асинхронного чтения}
    FillChar(ReadOL, SizeOf(ReadOL), 0);
    ReadOL.hEvent := CreateEvent(nil, True, True, nil);

    {Маска событий, которые будет отслеживать читающий поток }
    {Пока это только получение символа }
    SetCommMask(CPort.Ha ndle, EV_RXCHAR);

    while CPort.Connected and (not Terminated) do
    begin
    { Ждем одного из событий }
    WaitCommEvent(CPort. Handle, Mask, @ReadOL);

    Signaled := WaitForSingleObject( ReadOL.hEvent, TimeOut);

    if (Signaled = WAIT_OBJECT_0) then
    begin
    if GetOverlappedResult( CPort.Handle, ReadOL, BytesTrans, False) then
    begin

    ... и далее работа с полученными данными. Полный исходник есть в инете.


    Да и в общем для всех, кто думает, что можно что то сделать, просто "набросав на форму компонентов": без знания Win API ничего не выйдет.
    Алексей, RX4HX (SunSDR2 + УМ ГУ-74 + UW4HW)

  10. #19
    Аватар для R9CD
    Регистрация
    30.07.2007
    Адрес
    г. Ревда, Свердловская область
    Сообщений
    205
    Позывной
    R9CD
    Цитата Сообщение от ut7du Посмотреть сообщение
    Саша спасибо. Но я пишу на С# - Visual Studio 2015
    Понял, что не на Visual Basic.
    Алгоритм тот же.
    Может кому-то будет интересно.


  11. #20
    Аватар для ut7du
    Регистрация
    04.02.2006
    Адрес
    Украина
    Сообщений
    926
    Записей в дневнике
    2
    Позывной
    UT7DU- UT7D
    Цитата Сообщение от RX4HX Посмотреть сообщение
    Полный исходник есть в инете.
    Можно ссылку ?


    Цитата Сообщение от RX4HX Посмотреть сообщение
    Говорю Вам как человек, который 2 года потратил на написание нормального CAT:
    - так выложите исходник. Думаю многим будет интересно. Или все ж низзя ! Напишут коллеги свои логгеры. И все - LogHX будет не покупаемым.


    Цитата Сообщение от RX4HX Посмотреть сообщение
    Еще раз (и наверное больше писать не буду, т.к. Вы не реагируете на то, что Вам пишут),
    Если меня спросят о том что я действительно знаю - я выложу с удовольствием и помогу любому. Таков мой принцип. А выкладывать что и где то.... Спасибо огромное ...
    Вижу сразу - неблагодарный я. Но от вас я и ничего не ждал. Так что насчет реагировать - не на что.
    От меня вам .
    А все равно найдется радиолюбитель или программист который поможет.
    Я в самом начале писал что решил попробовать.


    Цитата Сообщение от RX4HX Посмотреть сообщение
    "набросав на форму компонентов":
    А компонентов то 2 кнопки...
    RX4HX ! Спасибо еще раз огромное !
    Всем хорошего настроения !

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Синтезатор частоты на Si570 для простого КВ трансивера
    от er2of в разделе Конструкции на микроконтроллерах для радиолюбителей
    Ответов: 638
    Последнее сообщение: 24.03.2022, 16:45
  2. Чтение электронных схем
    от ANDREAN в разделе Для начинающих
    Ответов: 81
    Последнее сообщение: 16.11.2015, 01:04
  3. mini SW-2012
    от ur4mdg в разделе Трансиверы, приемники КВ/УКВ
    Ответов: 13
    Последнее сообщение: 03.12.2012, 22:02
  4. КВ синтезатор частоты с дискретным переключением частоты
    от user_199 в разделе Трансиверы, приемники КВ/УКВ
    Ответов: 8
    Последнее сообщение: 05.06.2011, 20:32
  5. CAT трансивера на две программы
    от RU6DX в разделе Software Defined Radio (SDR), Digital Radio Mondiale (DRM)
    Ответов: 16
    Последнее сообщение: 31.01.2011, 22:08

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •