[mythtv-users] Firewire 6200ch can't set port

DryHeat122 . dryheat122 at gmail.com
Thu May 9 22:01:38 UTC 2019


On Wed, May 8, 2019 at 7:18 PM David King <dave at daveking.com> wrote:

> On 5/8/19 1:33 PM, DryHeat122 . wrote:
> > I'm thinking at this point the problem is edits I've made to 6200ch.
> > The error in (5) is thrown on line 636 of 6200ch when the device
> > variable is set to -1.  device is initialized to -1 on line 351.  It
> > is set to other than this value on line 631 after an if block with a
> > long list of conditions trying to match dir.vendor_id and dir.model_id
> > to the constants.  So maybe the condition I've added to the if block
> > is not correct.  I can't see any other reason it wouldn't set the
> > device.  Here is the condition I've added:
> >
> > ((dir.vendor_id == MOT_UNKNOWN_VENDOR_ID22) && (dir.model_id ==
> > MOT_UNKNOWN_MODEL_ID01)) ||
> >
> > I can't see any reason why this doesn't match, can anyone else?
>
> Oh crud,  my previous post was made in much too much haste, I missed
> this part of your post altogether.
>
> So, now having read *everything* you wrote, I think that there might
> indeed be a problem with the syntax.  The if statement in my copy of the
> source ORs all the vendor ids inside a set of parenetheses and ORs all
> the model ids together in another set of parentheses and then ANDs those
> two sets of parentheses together.  I think that the code that adds your
> new vendor/model ids should add the vendor and model ids separately to
> each of the ORed lists.  Here's a patch based on my copy of the source
> that shows what I'm suggesting:
>
> --- 6200ch.c.orig    2019-05-08 22:09:31.033734006 -0400
> +++ 6200ch.c    2019-05-08 22:13:07.355339961 -0400
> @@ -138,6 +138,9 @@
>  #define PACE550_MODEL_ID1  0x00010551
>  #define PACE779_MODEL_ID1  0x00010755
>
> +#define MOT_UNKNOWN_VENDOR_ID22 0x00848dc7
> +#define MOT_UNKNOWN_MODEL_ID01 0x00001286
> +
>  #define AVC1394_6200_OPERAND_SET 0x20      /* 6200 subunit command
> operand */
>
>  #define CTL_CMD0 AVC1394_CTYPE_CONTROL | AVC1394_SUBUNIT_TYPE_PANEL | \
> @@ -594,7 +597,8 @@
>              (dir.vendor_id == MOT_UNKNOWN_VENDOR_ID20) ||
>              (dir.vendor_id == MOT_UNKNOWN_VENDOR_ID21) ||
>              (dir.vendor_id == PACE_VENDOR_ID1) ||
> -            (dir.vendor_id == PACE_VENDOR_ID2)) &&
> +            (dir.vendor_id == PACE_VENDOR_ID2) ||
> +            (dir.vendor_id == MOT_UNKNOWN_VENDOR_ID22)) &&
>             ((dir.model_id == DCH3200_MODEL_ID1) ||
>              (dir.model_id == DCX3200_MODEL_ID1) ||
>              (dir.model_id == DCX3200_MODEL_ID2) ||
> @@ -619,7 +623,8 @@
>              (dir.model_id == QIP7100_MODEL_ID4) ||
>              (dir.model_id == QIP6200_MODEL_ID1) ||
>              (dir.model_id == PACE550_MODEL_ID1) ||
> -            (dir.model_id == PACE779_MODEL_ID1)) )
> +            (dir.model_id == PACE779_MODEL_ID1) ||
> +            (dir.model_id == MOT_UNKNOWN_MODEL_ID01)) )
>        {
>              if (dir.unit_spec_id != DCT6200_SPEC_ID ) {
>                 fprintf(stderr, "Warning: Unit Spec ID different.\n");
>
> dave at daveking dot com
>
> Dave, good eye!  Thank you.  Putting the model id where it belongs fixed
the problem.  It now runs and produces output with the -q parameter (saying
whether the unit is on or off).  However, it won't change channels.  When I
issue the channel change command, I get:

Warning: Unit Spec ID different.
unit_spec_id = 0x00000989
Warning: Unit software Version different.

Bob, who I mentioned earlier in the thread had the same problem and had to
do channel change with a IR blaster.

Anyone know what this is about, how to fix it, or whether this could be
causing the channel change fail, or what else might be?  It looks like the
code is trying to check if these values match a DCT 6200, which they
shouldn't because the box isn't a DCT 6200.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mythtv.org/pipermail/mythtv-users/attachments/20190509/8a3fe18b/attachment.html>


More information about the mythtv-users mailing list