Project

General

Profile

Actions

Bug #4239

closed

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

Added by Eugene Tyler over 7 years ago. Updated almost 4 years ago.

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

0%

Estimated time:
Chirp Version:
daily
Model affected:
Yaesu FT-857
Platform:
Linux
Debug Log:
I read the instructions above:

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
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


Files

Actions #1

Updated by Jim Unroe over 7 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

Actions #2

Updated by Eugene Tyler over 7 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

Actions #3

Updated by Filippi Marco over 7 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

Actions #4

Updated by Eugene Tyler over 7 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

Actions #5

Updated by Eugene Tyler over 7 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.

Actions #6

Updated by Filippi Marco over 7 years ago

  • Status changed from Feedback to In Progress

Hi Eugene
you must send the patch to "chirp_devel mailing list":http://intrepid.danplanet.com/mailman/listinfo/chirp_devel 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

Actions #7

Updated by Eugene Tyler over 7 years ago

Hi Marco,

I sent an email to chirp_devel@intrepid.danplanet.com 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

HG changeset patch

User Dale Tyler chirp16@tylerent.com

Date 1479751087 28800

Mon Nov 21 09:58:07 2016 -0800

Node ID b28f9c9fd0b611706a3028000bbc82969298f1ba

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;
Actions #8

Updated by Eugene Tyler about 7 years ago

Fix committed - now available in latest hg pull

Actions #9

Updated by Bernhard Hailer almost 4 years ago

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

This appears to be complete.

Actions

Also available in: Atom PDF