Opened 15 years ago
Closed 15 years ago
Last modified 15 years ago
#8446 closed defect (fixed)
[PATCH] Error in DiseqC 1.2 Rotor Positioning
Reported by: | Owned by: | danielk | |
---|---|---|---|
Priority: | minor | Milestone: | 0.24 |
Component: | MythTV - DVB | Version: | Master Head |
Severity: | medium | Keywords: | diseqc rotor |
Cc: | Ticket locked: | no |
Description
Attached patch fixes the problem.
The find() instruction did not work on the QMap table, because it is searching for a double (the angle) but it is filled with floats. The patch fills the QMap with doubles.
Because of this, the position could not be found in the table and Diseqc would send the degrees (19.2 for example) instead the position (1, 2, or 3 for example)
I'm compiling this on Mythbuntu 10.04/amd64 btw.
Attachments (1)
Change History (6)
Changed 15 years ago by
Attachment: | diseq.cpp.patch added |
---|
comment:1 Changed 15 years ago by
Milestone: | 0.23-fixes → unknown |
---|
Please see ticket howto, don't set milestones. Thank you for the patch.
comment:2 Changed 15 years ago by
Owner: | changed from Janne Grunau to danielk |
---|---|
Status: | new → assigned |
Version: | 0.23rc2 → Trunk Head |
pieter, searching for a float with a single lookup in a QMap seems rather fragile, could you perhaps rewrite the search using QMap::lowerBound() & QMap::upperBound() with deltas?
comment:3 Changed 15 years ago by
Because of lack of precision of floats?
I think I can make a simple iteration with a greater/smaller than routine.
Is this what you mean?
comment:4 Changed 15 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:5 Changed 15 years ago by
Milestone: | unknown → 0.24 |
---|
Patch to fix issue