-
18.02.2021, 09:12 #4636
- Регистрация
- 22.01.2003
- Адрес
- пос. Керчикский, Россия
- Возраст
- 60
- Сообщений
- 13,166
- Поблагодарили
- 5564
- Поблагодарил
- 227
Попробовал. На мой взгляд получилось хуже чем в Ver. 3. И так по порядку моих действий:
Чтобы не путаться, антеннам дал название в соответствии с номером кода, т.е. 0, 1, 2 ... И не стал назначать одну антенну на два диапазона и наоборот, на один диапазон назначать две антенны. Для этого пришлось сделать три варианта таблицы, диапазон прописал лишь в соответствии с одной антенной. Т.е. диапазон прописал только в шести строках кода, в остальных оставил пустоту.
вариант 1: код 0 - 1.8, 1 - 3.5, 2 - 7, 3 - 14, 4 - 21, 5 - 28
при переключении в N1MM диапазонов получил следующее:
для кода 0 активировался выход 16, для 1 - 15, 2 - 15 и 16, 3 - 14, 4 - 14 и 16, 5 - 14, 15.
вариант 2: код 6 - 1.8, 7 - 3.5, 8 - 7, 9 - 14, 10 - 21, 11 - 28
при этом выходы включались соответственно:
6 - 14, 15 и 16, 7 - 13, 8 - 13 и 16, 9 - 13 и 15, 10 - 13, 15 и 16, 11 - 13 и 14
вариант 3: код 12 - 1.8, 13 - 3.5, 14 -7.0, 15 - 14.0
и соответственно на выходах:
для 12 - 13, 14 и 16, для 13 - 13, 14, 15, для 14 - 13, 14, 15, 16, для 15 - 12.
Т.е. как бы не происходит дешифрации из двоичного кода в шестнадцатиричный?
Далее в этом 3-м варианте ведь не прописаны диапазоны 21 и 28. При включении этих диапазонов из N1MM всегда включался выход 16.
Для меня напрашивается промежуточный вывод: нужно взаимодействие Николая NA3M и Антона RA3SMS, сейчас напишу ему письмо, вдруг он не читает эту тему.Последний раз редактировалось RN6L; 18.02.2021 в 09:18.
73! Василий, ex RZ6MX
-
18.02.2021, 09:25 #4637
- Регистрация
- 11.08.2007
- Адрес
- Иркутск
- Возраст
- 36
- Сообщений
- 212
- Поблагодарили
- 155
- Поблагодарил
- 48
На самом деле я просто посмотрел, что именно передает в COM порт DXlog при работе по MK2R протоколу. передается следующее
AM10000000000000000 - для Радио1
AM20000000000000000 - для Радио2
Шестнадцать цифр после AM1 или AM2 - это выставленные "галочки" по диапазонам в настройках DXlog. То есть если выставлен выход то вместо 0 будет 1.
При смене диапазона в DXlog он посылает соответствующую команду в COM порт, настроенный на MK2R.Антон (RA0SMS)
ra0sms.com
-
18.02.2021, 09:42 #4638
- Регистрация
- 22.01.2003
- Адрес
- пос. Керчикский, Россия
- Возраст
- 60
- Сообщений
- 13,166
- Поблагодарили
- 5564
- Поблагодарил
- 227
Кстати подобная инверсия я вроде припоминаю и для LPT-дешифратора, но это в принципе не важно, скорее это вопрос активных "0" и "1" на входе самой микросхемы...
- - - Добавлено - - -
Откатился на экспериментальную версию V.3, там тоже работает с включением нескольких выходов. А именно когда в таблице антенн прописано 0 - 1.8, 1 - 3.5, ... 5 - 28, то на выходе получается:
0 - х
1 - 16
2 - 15
3 - 15 и 16
4 - 14
5 - 14 и 1573! Василий, ex RZ6MX
-
18.02.2021, 14:11 #4639
- Регистрация
- 22.01.2003
- Адрес
- пос. Керчикский, Россия
- Возраст
- 60
- Сообщений
- 13,166
- Поблагодарили
- 5564
- Поблагодарил
- 227
Вот бы это совместить, т.е. привести к единообразию...
- - - Добавлено - - -
В N1MM нет отдельной таблицы для настройки устройства по протоколом MK2R. Там одна таблица, которая работает с LPT или(и) в последних версиях еще с UDP (что это такое я понятия не имею) и как то работает через порт с MK2R. Надеюсь что "как то" это исправимо на "как надо".73! Василий, ex RZ6MX
-
18.02.2021, 18:47 #4640
- Регистрация
- 26.03.2015
- Адрес
- Gaithersburg, Maryland, United States
- Возраст
- 68
- Сообщений
- 592
- Поблагодарили
- 781
- Поблагодарил
- 16
Василий, кажется я понял, как надо. Вот версия, где все должно работать:
https://n1mmwp.hamdocs.com/mmfiles/for-rn6l/
Проблем бы вообще не было, если-бы устройство от RA0SMS принимало команды AS1xx, AS2xx (где xx - десятичный номер антенны) и преобразовывало его в двоичный "масочный код" в коде Arduino. Именно эти команды посылает N1MM Logger с самого начала поддержки МК2Р устройств. Даже если эта моя очередная версия и заработает, я не могу обещать, что смогу добавить этот новый код, т.к. все последние годы стандартом были команды AS1xx, AS2xx и неизвестно сколько пользователей уже их использует. Можно конечно попробовать добавить опцию, переключающую формат МК2Р команд для отдельных пользователей (еще один чек бокс в Configurer/Antennas), но не уверен, что это получится. И проблема будет не в программировании всего этого. Может проще будет научить Arduino воспринимать команды AS1xx, AS2xx...
Николай NA3M
-
18.02.2021, 20:32 #4641
- Регистрация
- 22.01.2003
- Адрес
- пос. Керчикский, Россия
- Возраст
- 60
- Сообщений
- 13,166
- Поблагодарили
- 5564
- Поблагодарил
- 227
Отлично, работает как надо, то что по коду 0 в устройстве включается выход 16 это мелочи. После крайних экспериментов у меня в таблице переключения антенн у меня были прописаны только коды 0-5, по одному на каждый диапазон. Потом добавил 6-11 расписавши их так же от 1.8 до 28. Так же заработало переключение антенн внутри диапазона по Alt+F9.
Сначала тормознулся, теперь пожалуй попробую подключить второй коммутатор для R2.
- - - Добавлено - - -
Нет, два устройства на двух разных портах работать не захотели. Точнее работает только одно, которое назначено на R1. Внизу EW для R2 вижу что команды на переключение антенн индицируются в соответствии с диапазоном и AltF9, на выходе второго коммутатора реакции нет. У меня сом3 был настроен на R1, а сом4 на R2. Не отключая устройств в настройках этих портов поменял их местами, ничего не поменялось. Т.е. сом3, переназначенный на R2 продолжал переключаться из EW для R1. Потом в настройках выключил сом4 и более того,физически отключил второй коммутатор от сом4, а сом3 назначил на R2, он все равно переключался из левого окна...
Ну это возможно загадка для Антона.73! Василий, ex RZ6MX
-
18.02.2021, 22:21 #4642
- Регистрация
- 26.03.2015
- Адрес
- Gaithersburg, Maryland, United States
- Возраст
- 68
- Сообщений
- 592
- Поблагодарили
- 781
- Поблагодарил
- 16
Это странно, т.к. логгер вроде корректно передает (вот текст, который я вижу при отладке логгера):
N1MMCommPort.Output_2 0 AM10000000000000001
N1MMCommPort.Output_2 1 AM10000000000000010
N1MMCommPort.Output_2 2 AM10000000000000100
...
N1MMCommPort.Output_2 15 AM11000000000000000
Т.е. для первого радио (АМ1), для первой антенны (AntennaCode=0) код 0000000000000001, для 16-ой антенны (AntennaCode=15) код 1000000000000000.
Видимо в программе для Arduino что-то некорректно сделано.
Я сейчас проверил, при работе с SO2R логгер посылает команды (AM1, AM2) для обоих радио и по одному порту. Если добавить 2-й порт, то и туда будут посылаться команды для обоих радио. Т.е. дело в программе Arduino. Первое устройство должно считывать команды для первого радио (АМ1) и игнорировать АМ2, а второе - наоборот.
Николай NA3MПоследний раз редактировалось NA3M; 18.02.2021 в 22:25.
-
19.02.2021, 09:13 #4643
- Регистрация
- 22.01.2003
- Адрес
- пос. Керчикский, Россия
- Возраст
- 60
- Сообщений
- 13,166
- Поблагодарили
- 5564
- Поблагодарил
- 227
Ну так, повторяю, я чайник и не различаю где собственно "команда" (ее существенная часть), а где "заголовок". Я вижу что веде АМ1хххххххххх. АМ2хххххххх Вы наблюдали?
А в DXLog по словам Антона:
- - - Добавлено - - -
Возможно, но в DXLog все работает...
Я не программист и средств чтобы посмотреть что приходит на порт у меня нет.Последний раз редактировалось RN6L; 19.02.2021 в 09:18.
73! Василий, ex RZ6MX
-
19.02.2021, 09:29 #4644
- Регистрация
- 11.08.2007
- Адрес
- Иркутск
- Возраст
- 36
- Сообщений
- 212
- Поблагодарили
- 155
- Поблагодарил
- 48
Антон (RA0SMS)
ra0sms.com
-
19.02.2021, 09:44 #4645
- Регистрация
- 22.01.2003
- Адрес
- пос. Керчикский, Россия
- Возраст
- 60
- Сообщений
- 13,166
- Поблагодарили
- 5564
- Поблагодарил
- 227
Антон, это пожалуй не принципиальная мелочь, тем кто пользуется разными логгерами в зависимости от ситуации не обязательно прописывать коды для антенн одинаково в обеих программах, хотя несомненно это удобно. К Николаю пока вопрос, увидел ли он команду АМ2хххххххххххххххххххх в реалии или только предполагает что она будет передаваться
73! Василий, ex RZ6MX
-
19.02.2021, 10:30 #4646
- Регистрация
- 02.01.2016
- Адрес
- Санкт-Петербург
- Возраст
- 71
- Сообщений
- 918
- Поблагодарили
- 375
- Поблагодарил
- 2321
В прошедшую среду решил потренироваться в телеграфном мини тесте на 40 м. Сам тест разбит на 6 туров по 10 минут. Участников было мало, поэтому в последующих турах работал с одними и теми же участниками в основном на поиск. После моего вызова и ответа корреспондента я переводил курсор в поле ввода контрольного номера, а там уже "сидит" контрольный номер за предшествующий тур. Приходилось его удалять и вбивать новый....
-
19.02.2021, 10:49 #4647
- Регистрация
- 22.01.2003
- Адрес
- пос. Керчикский, Россия
- Возраст
- 60
- Сообщений
- 13,166
- Поблагодарили
- 5564
- Поблагодарил
- 227
Я уже точно не помню, но кажется есть два режима, которые настраиваются пользователем. "Правильный" режим это когда номер подсвечивается синим цветом и удалять (именно удалять, т.е. жать лишние клавиши) его не надо, просто пишите новый номер. Это касается не только этого теста с порядковыми номерами, но и других, где номера тоже другие. Если у Вас приходится именно удалять, то надо где то поставить(убрать) птичку. Где, хоть убей не помню, но в теме этот вопрос поднимался, почитайте (понимаю что много читать).
73! Василий, ex RZ6MX
-
19.02.2021, 11:32 #4648
Нашел описание протокола здесь (60-я и 86-я страницы): https://ant-depot.com/files/MK2R_English_Manual.pdf
Устройство поддерживающее протокол MK2R должно уметь понимать команды AM и AS.
AM - двоичное представление (и не просто двоичное, а Only one output may be active).
AS - десятичное
Насколько я понял, то должно работать так:
(пробелы для наглядности)
AM1 0000 0000 0000 0001 == AS1 1
AM1 1000 0000 0000 0000 == AS1 15
Соответственно (для радио 1) на выходах 6,7,8,9 будут 0001 или 1111.
Комбинация типа AM1 0001 0001 0001 0001 - недопустима.73! Али
-
19.02.2021, 13:26 #4649
-
19.02.2021, 15:14 #4650
- Регистрация
- 10.09.2015
- Адрес
- Makeevka
- Сообщений
- 268
- Поблагодарили
- 176
- Поблагодарил
- 45
После обновления вылезло вот такое.
Как победить?Код:N1MMLogger.net - Version 1.0.8954.0 Built: 2/2/2021 8:25:10 PM Microsoft Windows NT 10.0.19041.0,64:1,ru-RU,ru-RU Error occurred at: 2/19/2021 2:06:05 PM in Thread: Name: 'Main UI Thread', Id: '1', Prio: 'Normal' --------------------------------------------------------------------------------------- System.ArgumentException: Àäðåñ IPv4 0.0.0.0 è àäðåñ IPv6 ::0 - ýòî íåîïðåäåëåííûå àäðåñà, êîòîðûå íåëüçÿ èñïîëüçîâàòü â àäðåñå íàçíà÷åíèÿ. Parameter name: hostNameOrAddress at System.Net.Dns.HostResolutionBeginHelper(String hostName, Boolean justReturnParsedIp, Boolean flowContext, Boolean includeIPv6, Boolean throwOnIPAny, AsyncCallback requestCallback, Object state) at System.Net.Dns.UnsafeBeginGetHostAddresses(String hostName, AsyncCallback requestCallback, Object state) at System.Net.Sockets.Socket.InternalBeginConnectHostName(String host, Int32 port, AsyncCallback requestCallback, Object state) at System.Net.Sockets.Socket.BeginConnect(String host, Int32 port, AsyncCallback requestCallback, Object state) at System.Net.Sockets.TcpClient.BeginConnect(String host, Int32 port, AsyncCallback requestCallback, Object state) at N1MMLogger.Net.MultiStation.OpenWriterConnection() in C:\Users\micro\source\Workspaces\N1MM Logger on .NET\main\N1MM Logger.Net\Classes\MultiStation.vb:line 359 --------------------------------------------------------------------------------------- Call Stack before the runtime error: at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at N1MMLibrary.SharedLib.CallStackString() in C:\Users\micro\source\Workspaces\N1MM Logger on .NET\main\N1MM Library\Classes\SharedCode.vb:line 91 at N1MMLogger.Net.SharedCode.HandleError(Exception e, String PortName, String Info, String additionalInfoForLogFile) in C:\Users\micro\source\Workspaces\N1MM Logger on .NET\main\N1MM Logger.Net\Modules\SharedCode.vb:line 213 at N1MMLogger.Net.MultiStation.OpenWriterConnection() in C:\Users\micro\source\Workspaces\N1MM Logger on .NET\main\N1MM Logger.Net\Classes\MultiStation.vb:line 379 at N1MMLogger.Net.MultiOpManager.ReConnect() in C:\Users\micro\source\Workspaces\N1MM Logger on .NET\main\N1MM Logger.Net\Classes\MultiOpManager.vb:line 893 at N1MMLogger.Net.EntryWindow.StatsTimer_Tick(Object eventSender, EventArgs eventArgs) in C:\Users\micro\source\Workspaces\N1MM Logger on .NET\main\N1MM Logger.Net\Forms\EntryWindow.vb:line 12447 at System.Windows.Forms.Timer.OnTick(EventArgs e) at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun() at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel() at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine) at N1MMLogger.Net.My.MyApplication.Main(String[] Args) in :line 82
Начинающий радиолюбитель первой категории.
Социальные закладки