Да, у YAESU интерфейс работает по протоколу Serial(4800,8N2)
оно может ни на что и не влияет но всё же, по крайней мере
в программах на винде ставлю 8N1 и сбоев нет
Если включена ардуина и включаю трансивер, то показания начинают работать правильно, а вот если включен трансивер и включаю ардуину, то спереди лепит 20 или 200, (лепил до изменения)
В альтернативной библиотеке без разницы, пока ардуина не смогла прочитать из сериала лепит 1666ххххх, как только смогла сразу выводит правильно, очерёдность включения не играет роли, инициализируется за одно обращение, менее 100 миллисекунд не ставил, то-есть сразу
Я тебе писал как вывести, в #100. Возьми за основу.
Я стараюсь писать код так, чтоб через год башке не было мучительно больно. Получается избыточно,, канеш, но мне так удобнее, я же тоже сталевар больше игрушечный.
Я тебе писал как вывести, в #100. Возьми за основу.
Я стараюсь писать код так, чтоб через год башке не было мучительно больно. Получается избыточно,, канеш, но мне так удобнее, я же тоже сталевар больше игрушечный.
это то я взял, но этого оказалось мало, надо же еще и понять, со вторым не складывается )))
PS "Леночка, яица подействовали..." (врубился, получаем и передаём на разбор функции)
// Разбора и вывода текщего режима работы трансивера
void ModeToSerial(const TOperatingMode AMode) {
switch (AMode)
{
case TOperatingMode::LSB:
Serial.println("LSB");
break;
case TOperatingMode::USB:
Serial.println("USB");
break;
case TOperatingMode::CW:
Serial.println("CW");
break;
case TOperatingMode::CWR:
Serial.println("CWR");
break;
case TOperatingMode::AM:
Serial.println("AM");
break;
case TOperatingMode::FM:
Serial.println("FM");
break;
case TOperatingMode::DIG:
Serial.println("DIG");
break;
case TOperatingMode::PKT:
Serial.println("PKT");
break;
case TOperatingMode::CWN:
Serial.println("CWN");
break;
case TOperatingMode::FMN:
Serial.println("FMN");
break;
default:
Serial.println("Unknown mode");
break;
}
}
Так, есть баг в определении MODE, думаю, как в железе реализовать, чтобы отлаживаться
Start... резет ардуины
Freq = 18.08
Power = 0
Split = ON
HSWR = NO
PTT = OFF
S-Metr = 4
DISCRIM = OFF
DCS/CTCSS = OFF
AF/SQL = OFF
Mode = CW
Freq = 18.08
Power = 0
Split = ON
HSWR = NO
PTT = OFF
S-Metr = 4
DISCRIM = OFF
DCS/CTCSS = OFF
AF/SQL = OFF
Mode = CW
Freq = 0.00 резет трансивера
Power = 0
Split = ON
HSWR = NO
PTT = OFF
S-Metr = 4
DISCRIM = OFF
DCS/CTCSS = OFF
AF/SQL = OFF
Mode = LSB
Freq = 18.08 частоту принял нормально
Power = 0
Split = ON
HSWR = NO
PTT = OFF
S-Metr = 4
DISCRIM = OFF
DCS/CTCSS = OFF
AF/SQL = OFF
Mode = LSB - режим остался прежний
Freq = 18.08
Power = 0
Split = ON
HSWR = NO
PTT = OFF
S-Metr = 4
DISCRIM = OFF
DCS/CTCSS = OFF
AF/SQL = OFF
Mode = LSB
Start... делаю резет ардуины снова
Freq = 18.08
Power = 0
Split = ON
HSWR = NO
PTT = OFF
S-Metr = 4
DISCRIM = OFF
DCS/CTCSS = OFF
AF/SQL = OFF
Mode = CW - режим снова обновился
Freq = 18.08
Power = 0
Split = ON
HSWR = NO
PTT = OFF
S-Metr = 4
DISCRIM = OFF
DCS/CTCSS = OFF
AF/SQL = OFF
Mode = CW
Даже не знаю, што тебе пацказать, в коде явных косяков нет.
я тут посмотрел посмотрел, это не баг, всё правильно, в твоей библиотеке при включении выставляется МОДА CW, далее она принимает моду трансивера, а он при рестарте выставляет LSB )))
подумаю как переделать проверочный скетч и сохранять всё (в трансивере) в EEPROM.
Пора пускать в продакшен? )))
Просто смотрю, американцы по быстрому скидают код, плату разработают и наборами двигают на рынок, в коде масса детских ошибок но это им не мешает...другая культура однако...
Чтобы проверить с реальным девайсом надо сделать переходник с уарта на рс232, мелкосхемку надо прикупить max232 или виртуальнык порты поставить и через uart-usb соединить, вообщем буду решать, как попытать щастья далее
Просто смотрю, американцы по быстрому скидают код, плату разработают и наборами двигают на рынок, в коде масса детских ошибок но это им не мешает...другая культура однако...
С тех пор, как стало возможно перепрошить девайс в любой момент, все по моему забили на ошибки в любительских девайсах, куда страшнее дорожку не туда развести или номинал r/c неподходящий влепить куда нибудь.
Просто смотрю, американцы по быстрому скидают код, плату разработают и наборами двигают на рынок, в коде масса детских ошибок но это им не мешает...другая культура однако...
С тех пор, как стало возможно перепрошить девайс в любой момент, все по моему забили на ошибки в любительских девайсах, куда страшнее дорожку не туда развести или номинал r/c неподходящий влепить куда нибудь.
Я его ошибки какие смог поправил, на гитхабе анонсировал, смотрю - поправил )))
keywords.txt пришли мне на почту, я его запхаю в git
Докладываю!
Так как мелкосхемы max232 у меня пока нет, в переделанной твоей библиотеке под SomeSerial, завернул работу скетча в SERIAL, то-есть сейчас он по сериалу (USB порт) пытается соединится с FT-897D который у меня подключен на COM-1, быстренько запустил эмулятор: нам нужен SPLITTER (расшарить FT-897) и редиректор, соединить порт ардуины и порт YAESU. Запустил. Работает. При резете ардуины устанавливает режим CW.
Можно дописать функции валкодера для перестройки частоты трансивера для дальнейшей отладки. Что посоветуешь?
По умолчанию, Сериал выводит float с двумя цифрами после запятой. Если нада больше, используй dtostrf().
Нада, наерна, частоту сразу строкой отдавать из биб-ки, дабы избежать...
сжираются символы, сейчас конструкция такая, трансивер- компорт1 - soft_splitter_порт4-soft_редиректор_порт10 - переходник_USB_UART - ардуина порты(пин 2,3) - Serial_CH340_порт8 - монитор IDE
Могу сделать еще один редиректор, и к нему присоединить программу управления трансивером, отследить всю цепочку
(в программе управления трансивером всё ОК)
И замени в *.cpp срочна
Ну, или с git-а возьми update, шо я ночью выклалъ
яйца не подействовали )))
Да, у YAESU интерфейс работает по протоколу Serial(4800,8N2)
оно может ни на что и не влияет но всё же, по крайней мере
в программах на винде ставлю 8N1 и сбоев нет
Ты хоть напиши, матьие, сколько должно быть. Чтоб я хоть знал, куда копать
Ты хоть напиши, матьие, сколько должно быть. Чтоб я хоть знал, куда копать
вот так правильно, при переключении диапазонов, у тебя сначала показывает правильно, а потом спереди лепит 20
Если включена ардуина и включаю трансивер, то показания начинают работать правильно, а вот если включен трансивер и включаю ардуину, то спереди лепит 20 или 200, (лепил до изменения)
В альтернативной библиотеке без разницы, пока ардуина не смогла прочитать из сериала лепит 1666ххххх, как только смогла сразу выводит правильно, очерёдность включения не играет роли, инициализируется за одно обращение, менее 100 миллисекунд не ставил, то-есть сразу
в буфере команд D0 -D4 (в D3) что-то остаётся (20) выходит...
точнее в переменной в которую читаешь?
Нет, хрень какая-то получается, я же диапазоны переключаю вплоть до 430 мегагерц, двойка не затирается
439.700MHz in mode 08 (FM)
До завтра я занят, к сожалению.
Хотя, мошт, вечером время выкрою
До завтра я занят, к сожалению.
Хотя, мошт, вечером время выкрою
о, у меня есть время поковыряться в твоём коде, хоть и ничёнипанимаю, но всёж )))
Чуток поковырял, обернул в SomeSerial, на софтовом работает, на хардовом еще не попробовал, начинаю понимать как это работает )))
тебе чо, комментариев накомментировать?
тебе чо, комментариев накомментировать?
не, давай лучше про 20 разберёмсси, чего это оно спереди печатает
не, давай лучше про 20 разберёмсси, чего это оно спереди печатает
Я сёдня уже неразборчивый. Завтра со с ранья.
не, давай лучше про 20 разберёмсси, чего это оно спереди печатает
Я сёдня уже неразборчивый. Завтра со с ранья.
везёт тебе )))
я тут разбирался, вроде частоту расшифровывает правильно, чуток правил твою функцию
А вот это не понимаю, вкуда оно считывает?
PS понял, в структуру, сейчас попытаю )))
Git updated
увидел - проверяю
Может добавить и ключевые слова из структур?
Может добавить и ключевые слова из структур?
А я знаю? У мня этого убогого IDE нетю, а VS и так всё понимаеть.
Может добавить и ключевые слова из структур?
А я знаю? У мня этого убогого IDE нетю, а VS и так всё понимаеть.
Докладаю!!!
Работает как швейцарские часы (получение частоты)
Бывает...
Ну, значить, это нигде не написано, но после любой комманды устройство пхает в Сериал 1 байт ответа, и, по-видимому - 20.
Ну, значить, это нигде не написано, но после любой комманды устройство пхает в Сериал 1 байт ответа, и, по-видимому - 20.
оно работает мастер-слэйв, твоя библиотека как раз слэйв
вот теперь думаю по DCS и CTCSS частоты там строго регламентированы куда как пямятку их вынести в скетч или библиотеку?
вот теперь думаю ... куда ... их вынести в скетч или библиотеку?
Как говорил мой сын, када ему 3 года было: "Мне пасёравну".
вот теперь думаю ... куда ... их вынести в скетч или библиотеку?
Как говорил мой сын, када ему 3 года было: "Мне пасёравну".
Хорошо пишешь код, даже с моими познаниями С++ обернуть в библиотеку SomeSerial.h оказалось как два пальца об асфальт )))
Осталось с режимом разобраться от строки 57, не могу понять, как вывести...
Я тебе писал как вывести, в #100. Возьми за основу.
Я стараюсь писать код так, чтоб через год башке не было мучительно больно. Получается избыточно,, канеш, но мне так удобнее, я же тоже сталевар больше игрушечный.
Остальное работает? Установки там всякие?
Я тебе писал как вывести, в #100. Возьми за основу.
Я стараюсь писать код так, чтоб через год башке не было мучительно больно. Получается избыточно,, канеш, но мне так удобнее, я же тоже сталевар больше игрушечный.
это то я взял, но этого оказалось мало, надо же еще и понять, со вторым не складывается )))
PS "Леночка, яица подействовали..." (врубился, получаем и передаём на разбор функции)
и вызов:
Так, есть баг в определении MODE, думаю, как в железе реализовать, чтобы отлаживаться
Даже не знаю, што тебе пацказать, в коде явных косяков нет.
Даже не знаю, што тебе пацказать, в коде явных косяков нет.
я тут посмотрел посмотрел, это не баг, всё правильно, в твоей библиотеке при включении выставляется МОДА CW, далее она принимает моду трансивера, а он при рестарте выставляет LSB )))
подумаю как переделать проверочный скетч и сохранять всё (в трансивере) в EEPROM.
Пора пускать в продакшен? )))
Просто смотрю, американцы по быстрому скидают код, плату разработают и наборами двигают на рынок, в коде масса детских ошибок но это им не мешает...другая культура однако...
Чтобы проверить с реальным девайсом надо сделать переходник с уарта на рс232, мелкосхемку надо прикупить max232 или виртуальнык порты поставить и через uart-usb соединить, вообщем буду решать, как попытать щастья далее
в твоей библиотеке при включении выставляется МОДА CW, далее она принимает моду трансивера, а он при рестарте выставляет LSB )))
найди в *.h файле строку
да поменяй на
делов-то
Пора пускать в продакшен? )))
Пускай.
в твоей библиотеке при включении выставляется МОДА CW, далее она принимает моду трансивера, а он при рестарте выставляет LSB )))
найди в *.h файле строку
да поменяй на
делов-то
ничего менять не надо...
объясни мне, вот ты принял байт статуса и отправляешь его в структуру, как он там правильно разложится?
От меня еще надо чонить?
Просто смотрю, американцы по быстрому скидают код, плату разработают и наборами двигают на рынок, в коде масса детских ошибок но это им не мешает...другая культура однако...
С тех пор, как стало возможно перепрошить девайс в любой момент, все по моему забили на ошибки в любительских девайсах, куда страшнее дорожку не туда развести или номинал r/c неподходящий влепить куда нибудь.
Я его ошибки какие смог поправил, на гитхабе анонсировал, смотрю - поправил )))
От меня еще надо чонить?
пост 130 и
хочу написать скетч полной проверки
моды могу переключать в цикле от 1 до х и как setMode подсунуть правильные значения?
Да и реквесты мои посмотри, я привёл обозначения переменных и файл ключевых слов с общепринятыми
объясни мне, вот ты принял байт статуса и отправляешь его в структуру, как он там правильно разложится?
Разложится как в даташите написано
NR это 7й бит, все остальные по уменьшению
keywords.txt пришли мне на почту, я его запхаю в git
keywords.txt пришли мне на почту, я его запхаю в git
Докладываю!
Так как мелкосхемы max232 у меня пока нет, в переделанной твоей библиотеке под SomeSerial, завернул работу скетча в SERIAL, то-есть сейчас он по сериалу (USB порт) пытается соединится с FT-897D который у меня подключен на COM-1, быстренько запустил эмулятор: нам нужен SPLITTER (расшарить FT-897) и редиректор, соединить порт ардуины и порт YAESU. Запустил. Работает. При резете ардуины устанавливает режим CW.

Можно дописать функции валкодера для перестройки частоты трансивера для дальнейшей отладки. Что посоветуешь?
Можно дописать функции валкодера для перестройки частоты трансивера для дальнейшей отладки.
Можно. Благословляю.
Можно дописать функции валкодера для перестройки частоты трансивера для дальнейшей отладки.
Можно. Благословляю.
Ну раз Сам автор благословил, тогда за дело, правда много букв получится, думаю за 1000 строк скетч перепрыгнет с моими то способностями )))
Дмитрий! Глань! Глаз замылился, не пойму почему на 119.3 мегагерца код по условию не отрабатывает?
Значить, ftFreq в 4й строке получается не в этом диапаносе
Значить, ftFreq в 4й строке получается не в этом диапаносе
Сейчас проверю, отправлю её на передачу )))
Для FT-847 может добавишь?
Есть еще режим WFM только не знаю, как его поймать, в доках код не описан
поймал глюк:
частоту устанавливает правильно - 119.300, а получает 1.19299
А если так, то вообще 811.311
Да, я понял где касяк. Завтра проправлю
Получается с приёмом у него беда:
Библиотека самая свежая, твоя, не переделанная мной и пример оттуда же
я вообще не представляю как ты аппендикс по телефону удаляешь )))
По умолчанию, Сериал выводит float с двумя цифрами после запятой. Если нада больше, используй dtostrf().
Нада, наерна, частоту сразу строкой отдавать из биб-ки, дабы избежать...
По умолчанию, Сериал выводит float с двумя цифрами после запятой. Если нада больше, используй dtostrf().
Нада, наерна, частоту сразу строкой отдавать из биб-ки, дабы избежать...
сжираются символы, сейчас конструкция такая, трансивер- компорт1 - soft_splitter_порт4-soft_редиректор_порт10 - переходник_USB_UART - ардуина порты(пин 2,3) - Serial_CH340_порт8 - монитор IDE
Могу сделать еще один редиректор, и к нему присоединить программу управления трансивером, отследить всю цепочку
(в программе управления трансивером всё ОК)
Под библиотекой CustomSoftwareSerial работает и приём и передача.
Может под неё адаптируешь?
Выходит штатная SoftwareSerial весьма кривая ...
переделал на
теперь отдаёт не float, а строку, с 5 знаками после запятой. Пушить эти изменения? Или няхай float отдаёт?
Кста, у меня преобразовывается правильно и 1.23456 МГц и 123.45678 Мгц. Главное, из порта 5 правильных байт получить.
Под библиотекой CustomSoftwareSerial работает и приём и передача.
Может под неё адаптируешь?
Там адаптировать нечего. В *.h файле замени
SoftwareSerial& FPort;
на
CustomSoftwareSerial& FPort;
Да в конструкторе тип параметра поменяй в *.h и *.cpp файлах
dtsFT897D(CustomSoftwareSerial& ASerialPort);
А вот если бы у них был опщий предок....
сейчас конструкция такая, трансивер- компорт1 - soft_splitter_порт4-soft_редиректор_порт10 - переходник_USB_UART - ардуина порты(пин 2,3) - Serial_CH340_порт8 - монитор IDE
Половины из вышеперечисленного у меня нет. Тыкаюсь наощюпь.