сейчас конструкция такая, трансивер- компорт1 - soft_splitter_порт4-soft_редиректор_порт10 - переходник_USB_UART - ардуина порты(пин 2,3) - Serial_CH340_порт8 - монитор IDE
Половины из вышеперечисленного у меня нет. Тыкаюсь наощюпь.
чтобы не ломать уже существующие библиотеки я переделал поместив всё в одной папки тебе отослал.
Чего нет в библиотеки у тебя - поддержка не только скорости порта но и режим 8N2, для Yaesu именно так, можно сделать в настройках софтового порта этот параметр по умолчанию?
Большой косяк инженеров фирмы Yaesu, что отдаваемые и принимаемые команды были без синхронизирующей последовательности, в новых аппаратах система команд сменилась, сейчас это текстовая строка в угловых скобках - <14450000xx> - как-то так...
Если у тебя 64 битная ОСЬ то собрать такую конфигурацию как у меня можно только за денюжку (я о виртуальных портах) для 32 бит они безвозмездны ну или самому написать программу виртуализации портов, поэтому у меня ОСЬ 32 бита )))
Вижу два пути улучшения
1. Написать небольшой софт отсниферить всё, что прилетает в сериал, в EEPROM к примеру, посмотреть, как квитируется посылаемая команда, может прилетаемое - 20 - это косяк разработчика эмулятора трансивера.
Это я сделать смогу, связка реальная - FT-897D, а не эмулятор в виде второй ардуины
2. Доработать твою библиотеку под новую библиотеку софтового сериала указав параметры по умолчанию 8N2
Пушить пока не надо, я вообще подумывал отдавать не флоат а uint32_t и на стороне программы с этим работать
Чего нет в библиотеки у тебя - поддержка не только скорости порта но и режим 8N2, для Yaesu именно так, можно сделать в настройках софтового порта этот параметр по умолчанию?
Я смарю, ты не просто ненастоящий, а вапще не сталевар. Что мешает в функции
void dtsFT897D::Init(const uint32_t ABaudRate)
{
FPort.begin(ABaudRate); // настроить скорость Software порта. По умолчанию == 9600
delay(20);
SetOperatingMode(); // после инициализации переключить рабочий режим на ключ (по умолчанию)
FOutString = new char[OUTSTRING_LENGTH];
}
в строке FPort.begin(...) прописать все параметры, которые для софтсериала нужны?
Вопщем, до завтра я сёрно занят. У тебя есть сегодня целый день, чтобы сформулировать чотыхошь, и что работает неправильно и пожелания всякие, и отправить мне на почту. Завтра разберусь.
Вопщем, до завтра я сёрно занят. У тебя есть сегодня целый день, чтобы сформулировать чотыхошь, и что работает неправильно и пожелания всякие, и отправить мне на почту. Завтра разберусь.
Чего нет в библиотеки у тебя - поддержка не только скорости порта но и режим 8N2, для Yaesu именно так, можно сделать в настройках софтового порта этот параметр по умолчанию?
Я смарю, ты не просто ненастоящий, а вапще не сталевар. Что мешает в функции
void dtsFT897D::Init(const uint32_t ABaudRate)
{
FPort.begin(ABaudRate); // настроить скорость Software порта. По умолчанию == 9600
delay(20);
SetOperatingMode(); // после инициализации переключить рабочий режим на ключ (по умолчанию)
FOutString = new char[OUTSTRING_LENGTH];
}
в строке FPort.begin(...) прописать все параметры, которые для софтсериала нужны?
Да, поймал я этот неописанный режим WFM - код 06, его установить нельзя, включается автоматом при переводе в диапазон частот 88- 108 (FM вещание), есть еще два режима CWN -82, CWNR - 83, я так понимаю они задействуются если в аппарате установлен узкополосный кварцевый фильтр, тоже можно добавить в хидер
Мои хотелки - чтобы библиотека могла использовать как CustomSoftwareSerial библиотеку так и обычный Serial, для плат 328pb, mega - где сериалов более одного, и чтобы в библиотеку не надо было лезть шаловливыми ручками.
Рассматриваю вариант: Использовать подправленную обёртку SomeSerial, назови её хоть DtsSerial (выбор типа портов)
Да, трансивер код принятия команды не подтверждает, это видимо ошибка в эмуляторe, CustomSoftwareSerial с порта гонит FF или 00, нули пока по порту не было обмена, если обмен прошёл, то FF
Start...
Freq = 7.07400
Split = OFF
PTT = OFF
S-Metr = S8
DISCRIM = OFF
DCS/CTCSS = OFF
AF/SQL = OFF
Freq = 7.07400
Split = ON
PTT = ON
Power = 0
HSWR = NO
S-Metr = S9 + 36_Db
DISCRIM = ON
DCS/CTCSS = ON
AF/SQL = ON
Freq = 7.07400
Split = OFF
PTT = OFF
S-Metr = S4
DISCRIM = OFF
DCS/CTCSS = OFF
AF/SQL = OFF
Freq = 7.07400
Split = OFF
PTT = OFF
S-Metr = S1
DISCRIM = OFF
DCS/CTCSS = OFF
AF/SQL = OFF
Freq = 7.07400
Split = OFF
PTT = OFF
S-Metr = S9 + 30_Db
DISCRIM = OFF
DCS/CTCSS = OFF
AF/SQL = OFF
Freq = 7.07400
Split = OFF
PTT = OFF
S-Metr = S9 + 30_Db
DISCRIM = OFF
DCS/CTCSS = OFF
AF/SQL = OFF
Он бы канал, если б у него виртуальный метод begin() был бы. :)
А так, я не знаю в runtime что мне подсунут, хард или софт сериал.
вот, а в школе учили, что мы все от обезьяны пошли, кругом враньё, сплошное враньё...
PS обернул твою либу работающую под CustomSoftwareSerial - работает, сегодня попробую на 328PB обернуть под Serial1, отпишусь, дамп с порта при запросе частоты нужен? (возвращала неправильную частоту)
Код пока этот:
Надо понимать, что показания канала передачи при нахождении Трансивера в режиме приёма и наоборот НЕАКТУАЛЬНЫ и в пользовательском коде это придётся обрабатывать ручками, постараюсь на выходных все показания привести в соответствие и дополнить в коде примера.
Измерение уровня приёмного сигнала - соответствует, всё что выше 9 +6dB на единицу, передачу пока не просчитал. но 5 ватт минимальной мощности отдаёт как 2 единицы.
я пока протестировал установку частоты и установку режима MODE, перевёл показания S метра и мощности в реальные величины, определился с флагами, PTT он наоборот например, также HSWR, сегодня пойду по списку функций. Что не работает - библиотека SoftwareSerial, в топку!!! CustomSoftwareSerial решил все проблемы, завёрнутая в правленный SomeSerial (в оригинале тоже не поддерживал режимы порта) работает, как с софтваре так и с хардовыми портами...
Может правленную SomeSerial внутрь твоей библиотеки засунуть, для наружи потребуется тогда только установка CustomSoftwareSerial
ты воду не лей, не растекайся мыслью по древу, пиши конкретно по пунктам, что надо проправить. Биб-ки SomeSerial у мня нету, что там надо куда оборачивать, я не знаю, расскажешь - посмотрим.
сейчас конструкция такая, трансивер- компорт1 - soft_splitter_порт4-soft_редиректор_порт10 - переходник_USB_UART - ардуина порты(пин 2,3) - Serial_CH340_порт8 - монитор IDE
Половины из вышеперечисленного у меня нет. Тыкаюсь наощюпь.
чтобы не ломать уже существующие библиотеки я переделал поместив всё в одной папки тебе отослал.
Чего нет в библиотеки у тебя - поддержка не только скорости порта но и режим 8N2, для Yaesu именно так, можно сделать в настройках софтового порта этот параметр по умолчанию?
Большой косяк инженеров фирмы Yaesu, что отдаваемые и принимаемые команды были без синхронизирующей последовательности, в новых аппаратах система команд сменилась, сейчас это текстовая строка в угловых скобках - <14450000xx> - как-то так...
Если у тебя 64 битная ОСЬ то собрать такую конфигурацию как у меня можно только за денюжку (я о виртуальных портах) для 32 бит они безвозмездны ну или самому написать программу виртуализации портов, поэтому у меня ОСЬ 32 бита )))
Вижу два пути улучшения
1. Написать небольшой софт отсниферить всё, что прилетает в сериал, в EEPROM к примеру, посмотреть, как квитируется посылаемая команда, может прилетаемое - 20 - это косяк разработчика эмулятора трансивера.
Это я сделать смогу, связка реальная - FT-897D, а не эмулятор в виде второй ардуины
2. Доработать твою библиотеку под новую библиотеку софтового сериала указав параметры по умолчанию 8N2
Пушить пока не надо, я вообще подумывал отдавать не флоат а uint32_t и на стороне программы с этим работать
Я смарю, ты не просто ненастоящий, а вапще не сталевар. Что мешает в функции
в строке FPort.begin(...) прописать все параметры, которые для софтсериала нужны?
Вопщем, до завтра я сёрно занят. У тебя есть сегодня целый день, чтобы сформулировать чотыхошь, и что работает неправильно и пожелания всякие, и отправить мне на почту. Завтра разберусь.
Вопщем, до завтра я сёрно занят. У тебя есть сегодня целый день, чтобы сформулировать чотыхошь, и что работает неправильно и пожелания всякие, и отправить мне на почту. Завтра разберусь.
хорошо
Я смарю, ты не просто ненастоящий, а вапще не сталевар. Что мешает в функции
в строке FPort.begin(...) прописать все параметры, которые для софтсериала нужны?
нашёл, если я правильно понимаю:
нашёл, если я правильно понимаю:
Можно, наерна, и так
Да, поймал я этот неописанный режим WFM - код 06, его установить нельзя, включается автоматом при переводе в диапазон частот 88- 108 (FM вещание), есть еще два режима CWN -82, CWNR - 83, я так понимаю они задействуются если в аппарате установлен узкополосный кварцевый фильтр, тоже можно добавить в хидер
Мои хотелки - чтобы библиотека могла использовать как CustomSoftwareSerial библиотеку так и обычный Serial, для плат 328pb, mega - где сериалов более одного, и чтобы в библиотеку не надо было лезть шаловливыми ручками.
Рассматриваю вариант: Использовать подправленную обёртку SomeSerial, назови её хоть DtsSerial (выбор типа портов)
Да, трансивер код принятия команды не подтверждает, это видимо ошибка в эмуляторe, CustomSoftwareSerial с порта гонит FF или 00, нули пока по порту не было обмена, если обмен прошёл, то FF
Надо же... Такое длинное сапщение, и ни одного знакомого слова...
Надо же... Такое длинное сапщение, и ни одного знакомого слова...
Ладно, вставлю. Через часа два, прмерно
Ладно, вставлю. Через часа два, прмерно
да и в ответе на запрос 0x00,0x00,0x00,0x00,0x01 - сжирается первый байт частоты, могу присылать дампы в хекс формате - ответы на команды
в ответе на запрос 0x00,0x00,0x00,0x00,0x01 - сжирается первый байт частоты
Да, вполне возможно. Посмотрю.
Хвалюсь )))
Поправил, внёс все исследованые на сёдня Моды:
А вот если бы у них был опщий предок....
Stream не канает?
Он бы канал, если б у него виртуальный метод begin() был бы. :)
А так, я не знаю в runtime что мне подсунут, хард или софт сериал.
Он бы канал, если б у него виртуальный метод begin() был бы. :)
А так, я не знаю в runtime что мне подсунут, хард или софт сериал.
вот, а в школе учили, что мы все от обезьяны пошли, кругом враньё, сплошное враньё...
PS обернул твою либу работающую под CustomSoftwareSerial - работает, сегодня попробую на 328PB обернуть под Serial1, отпишусь, дамп с порта при запросе частоты нужен? (возвращала неправильную частоту)
Код пока этот:
Надо понимать, что показания канала передачи при нахождении Трансивера в режиме приёма и наоборот НЕАКТУАЛЬНЫ и в пользовательском коде это придётся обрабатывать ручками, постараюсь на выходных все показания привести в соответствие и дополнить в коде примера.
Измерение уровня приёмного сигнала - соответствует, всё что выше 9 +6dB на единицу, передачу пока не просчитал. но 5 ватт минимальной мощности отдаёт как 2 единицы.
Правки библиотеки будут? Или надо огласить весь список?
весь
весь
я пока протестировал установку частоты и установку режима MODE, перевёл показания S метра и мощности в реальные величины, определился с флагами, PTT он наоборот например, также HSWR, сегодня пойду по списку функций. Что не работает - библиотека SoftwareSerial, в топку!!! CustomSoftwareSerial решил все проблемы, завёрнутая в правленный SomeSerial (в оригинале тоже не поддерживал режимы порта) работает, как с софтваре так и с хардовыми портами...
Может правленную SomeSerial внутрь твоей библиотеки засунуть, для наружи потребуется тогда только установка CustomSoftwareSerial
ты воду не лей, не растекайся мыслью по древу, пиши конкретно по пунктам, что надо проправить. Биб-ки SomeSerial у мня нету, что там надо куда оборачивать, я не знаю, расскажешь - посмотрим.
ты воду не лей, не растекайся мыслью по древу, п
первую часть - "будь текуч, как вода" - выполнил )))
Отписался.
круто у вас тут...
круто у вас тут...
а то )))