Bug #4239

Settings Page Blank for FT-857 - Error in Download from Radio

Added by Eugene Tyler almost 5 years ago. Updated over 1 year ago.

Status:Closed Start date:11/19/2016
Priority:Normal Due date:
Assignee:- % Done:

0%

Category:-
Target version:-
Chirp Version:daily Platform:Linux
Model affected:Yaesu FT-857

Description

When attempting a download from a FT-857 using the generic - not US profile, the channel information is downloaded from the radio, but the settings are not. I have attached the img file received from the radio. Running the daily-20161117 build on Fedora 19.

Thanks for all of your hard work.

When the Download occurs, the following is shown in the Gnome terminal:

ERROR: Exception running RadioJob: Value 768 not in range 300-300
ERROR: -
Exception: --
ERROR: Traceback (most recent call last):
File "/home/edt/Downloads/chirp-daily-20161117/chirp/ui/common.py", line 116, in _execute
result = func(*self.args, **self.kwargs)
File "/home/edt/Downloads/chirp-daily-20161117/chirp/drivers/ft857.py", line 729, in get_settings
_settings.dig_shift))
File "/home/edt/Downloads/chirp-daily-20161117/chirp/settings.py", line 83, in init
self.set_value(current)
File "/home/edt/Downloads/chirp-daily-20161117/chirp/settings.py", line 92, in set_value
(value, self._min, self._max))
InvalidValueError: Value 768 not in range -300-300

ERROR: ----------------
ERROR: Job Args: ()
ERROR: Job KWArgs: {}
ERROR: Job Called from:
File "./chirpw", line 146, in <module>
gtk.main()
File "/home/edt/Downloads/chirp-daily-20161117/chirp/ui/mainapp.py", line 483, in cb_clonein
self.do_open_live(radio, tempname="(" + _("Untitled") + ")")
File "/home/edt/Downloads/chirp-daily-20161117/chirp/ui/mainapp.py", line 408, in do_open_live
eset = editorset.EditorSet(radio, self, tempname=tempname)
File "/home/edt/Downloads/chirp-daily-20161117/chirp/ui/editorset.py", line 148, in init
editor = settingsedit.SettingsEditor(rthread)
File "/home/edt/Downloads/chirp-daily-20161117/chirp/ui/settingsedit.py", line 71, in init
job = common.RadioJob(self._get_settings_cb, "get_settings")

Traceback (most recent call last):
File "/home/edt/Downloads/chirp-daily-20161117/chirp/ui/settingsedit.py", line 216, in _build_ui
raise Exception("Invalid Radio Settings")
Exception: Invalid Radio Settings

Yaesu_FT-857_897_20161119-original.img (7.2 kB) Eugene Tyler, 11/19/2016 11:12 pm

Associated revisions

Revision 2872:62f7df66af52
Added by Eugene Tyler over 4 years ago

[ft857] FIx exception due to wrong data type Fixes #4239
Fixes a problem with dig_disp (Menu 036) and dig_shift (Menu 039) where the entered
value would be mutiplied by 256 and thus would likely cause an exception due to a
range error. For example, a value of 30 would be interpreted (incorrectly) as 768
which is out of the acceptable range -300 <= x <= 300.

History

Updated by Jim Unroe almost 5 years ago

  • Status changed from New to Feedback

Usually when the settings menus are not displayed, and out of range values is the cause. That is what looks to be happening here

The setting "_settings.dig_shift" has a setting of 768 and the driver only expects values from -300 to 300. You might edit this setting in the radio and then try the download again to see if the value is then in range.

Jim KC9HI

Updated by Eugene Tyler almost 5 years ago

Hi Jim,

There appears to be a mis definition of dig_offset in ft857.py.

Looking through the settings menus on the radio, there was no value 768, so I temporarily expanded the range check to allow a value of 768 to be acceptable. After an upload, the value of 768 was displayed, as expected. Experimenting with the menu 39 setting, changing it to 10 gave a value of 256. This indicated to me that dig_offset was not a little endian 16 bit value, since the readios values were shifted 8 bits left, but instead it was a signed 8 bit value.

This change fixed the issue:
il16 dig_shift;

is modified to be:
u8 unknown15a;
i8 dig_shift;

I do not know if there is a way to submit this as a proper patch, but limited testing with a range of values seems to indicate it works on my radio,

Please advise if you think this change can be incorporated into Chirp daily builds.

Thanks,
Dale

Updated by Filippi Marco almost 5 years ago

Hi Dale
the field cannot be an i8 as otherwise it would store only values between +- 127.
Its probably an i16 instead of il16.

Probably the dig_disp field has the same error, can you please check it also?

Once tested I can produce the patch for you or, if you like, you can do it yourself; see DevelopersProcess

73 de IZ3GME Marco

Updated by Eugene Tyler almost 5 years ago

Hi Filippi,

Of course you are right - i8 does not have the appropriate range. Thanks for catching my error.

Verified dig_disp has the same issue and that are no other uses of il16 in ft857.py. I changed both to i16 and check the maximum positive and negative values work properly.

Let me look into the developer process and post back here if I can't figure it out.

Thanks
Dale
W6EDT

Updated by Eugene Tyler almost 5 years ago

I submitted a patch, but it is unclear wheter it was accepted. Essentially, the change was to modify 2 lines to use i16 instead of il16 in the ft857.py driver.

Updated by Filippi Marco almost 5 years ago

  • Status changed from Feedback to In Progress

Hi Eugene
you must send the patch to chirp_devel mailing list as attach and it will be pushed to the tree by Dan in a couple of days.
I don't see any message to the list coming from you in the last week.
If you need further help with development process please also write to the same list.

73 de IZ3GME Marco

Updated by Eugene Tyler almost 5 years ago

Hi Marco,

I sent an email to <> on November 21. I received a reply saying my post required moderation because I was not a member of the list, but I had thought that it would be picked up and processed.

I just now subscribed to the list and will post the patch below when I receive notification I was accepted.

Thanks,
Dale

  1. HG changeset patch
  2. User Dale Tyler <>
  3. Date 1479751087 28800
  4. Mon Nov 21 09:58:07 2016 -0800
  5. Node ID b28f9c9fd0b611706a3028000bbc82969298f1ba
  6. Parent 9d973edb69b0ef502baa4ddb511db184eaaab3cb
    Issue Number (#4239)
    Fixes a problem with dig_disp (Menu 036) and dig_shift (Menu 039) where the entered
    value would be mutiplied by 256 and thus would likely cause an exception due to a
    range error. For example, a value of 30 would be interpreted (incorrectly) as 768
    which is out of the acceptable range -300 <= x <= 300.

diff r 9d973edb69b0 -r b28f9c9fd0b6 chirp/drivers/ft857.py
--
a/chirp/drivers/ft857.py Sat Nov 19 18:03:20 2016 0800
++ b/chirp/drivers/ft857.py Mon Nov 21 09:58:07 2016 -0800
@ -189,8 +189,8 @
pkt1200:7;
u8 unknown15:1,
pkt9600:7;
il16 dig_shift;
- il16 dig_disp;
i16 dig_shift;
+ i16 dig_disp;
i8 r_lsb_car;
i8 r_usb_car;
i8 t_lsb_car;

Updated by Eugene Tyler over 4 years ago

Fix committed - now available in latest hg pull

Updated by Bernhard Hailer over 1 year ago

  • Status changed from In Progress to Closed
  • Chirp Version changed from 0.4.0 to daily

This appears to be complete.

Also available in: Atom PDF