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

DryHeat122 . dryheat122 at gmail.com
Fri May 10 21:52:21 UTC 2019


SOLVED (sort of).  I have not been able to get 6200ch working, but for
anyone else with this problem, you can use majoridiot's mythchanger with
the -f 4 argument and it will work with the 4742HDC.  Thanks for all the
input folks.

On Thu, May 9, 2019 at 3:01 PM DryHeat122 . <dryheat122 at gmail.com> wrote:

>
>
> 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/20190510/72c3db85/attachment-0001.html>


More information about the mythtv-users mailing list