¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io

Re: #flrig flrig not working with my FT-890 FTDI Programming Cable #flrig


 

I tried your changes.
It seems to revert to the incorrect operation before the changes I submitted.
I don't see how your case statement can work for the modes. The only valid numbers in byte 6 are 0, 1, 2, 3, 4.
You use case numbers based on byte 6 ranging from 0 to 7 which correspond to the menu, but doesn't correspond to the data from the rig on byte 6.
For example, CW is 2 whether or not it is wide or narrow. In the menu, the numbers are 2 and 3 respectively.
?
So, I reverted to my version of FT890.cxx which worked for all of the non-narrow modes and added if statements to fix the narrow modes.
vfo-a now works correctly on all modes. Maybe you can do it in a better way or make any corrections.
I did not make the changes for vfo-b.
------------------------
? ? ? ? switch (replystr[6] & 0x07) {
? ? ? ? ? ? case 0: A.imode = ((replystr[6] & 0x40) == 0x40) ? 1 : 0; break; // LSB
? ? ? ? ? ? case 1: A.imode = ((replystr[6] & 0x40) == 0x40) ? 3 : 1; break; // USB
? ? ? ? ? ? case 2: A.imode = ((replystr[6] & 0x80) == 0x80) ? 5 : 2; break; // CW
? ? ? ? ? ? case 3: A.imode = ((replystr[6] & 0x80) == 0x80) ? 7 : 4; break; // AM
? ? ? ? ? ? case 4: A.imode = ((replystr[6] & 0x80) == 0x80) ? 9 : 6; break; // FM
? ? ? ? ? ? default: A.imode = 0;
? ? ? ? }
?
// After the base mode has been determined, we need to check for the narrow filters.
// We need to verify the base mode, as the narrow mode bits remain on until changed.
?
? ? ? ? if (((replystr[8] & 0x80) == 0x80) && (A.imode == 2)) {
? ? ? ? ? ? A.imode = 3; // CW-N
? ? ? ? }
? ? ? ? if (((replystr[8] & 0x40) == 0x40) && (A.imode == 4)) {
? ? ? ? ? ? A.imode = 5; // AM-N
? ? ? ? }
------------------------

Join [email protected] to automatically receive all group messages.