Charmed Quark Systems, Ltd. - Support Forums and Community

Full Version: Marantz DVD Driver
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8
Theoretically this driver should support the DV4001, DV6001, DV7001, and VC6001. If it doesn't go up in a puff of smoke I'll be amazed. Sending commands to the device should be pretty solid, but the parsing of status replies may not be quite up to snuff. From the protocol it is unclear which commands should return an ACK. Get it up and running and then just step through each field and see if it responds ok or you get timeouts. Make a list of the fields that timeout on field writes and post them here. For other unexplained behavior just put the verbosity into high and grab the appropriate log sections.

The driver makes the assumption that only a power command is valid when the power is off. I didn't actually look at the operator's manual so this may not be the case. You would have to confirm with hyperterminal or the likes. If the user's can sus this out and get me the details it won't be hard to get the driver up to speed in no time. I have posted both a driver pack and manifest and driver file in plain text if it needs to be built on your system. Its pretty easy to do if you need to. No html document for now.

Posted Version 0.81
0.5 Added MenuCmds,Cursor,NumericKey,Increased poll time
0.6 Added MaxTimeouts, fixed bonehead mistake in polling
0.7 Changed several fields to not wait for response after field write,Fixed PlayMode string command
0.8 Fixed missing EndCase in Poll()
0.81 Added logging
Thanks dude, i'll run a test tonight. I believe the power assumption is correct, as when I did a @PWR:? it returned power-off.
For the power stuff what I meant is in the driver code it will reject any field write except for a power command when the power is off. This isn't always necessary as some fields can be changed/queried when a device is off. It just depends on the device. When I get some time I will take a look at the operator's manual.

I just saw you had posted about this in the Driver's Request. I haven't yet implement the menu/remote type commands. The framework is in place so it is pretty easy to add stuff like this as you go. Let me know how it goes. I know for sure some of the boolean fields are going to give you value rejected errors even though they actually work on the device.
Now that I think about it if the driver won't connect when you load it and the power is off turn the power on and it should connect. That would be an indication that it doesn't allow queries when the power is off. I forgot to worry about that as it was kind of a rush job.
It's alternating between WaitForConnect (most of the time), and WaitForCommResource(occasionally). I tried putting it into standby then un-standby to no avail.

I confirmed it's alive by connecting via HyperTerminal and issuing a @PWR:? command and getting a response.

Here's the logfile
Code:
05/27 21:21:33-CORE2, CQCServer, CQCDrv_MarantzDV6001_Thread18
{
    CQCKit, CQCKit_DriverBase.cpp.2513, Status/App Status
    Driver 'MarantzDV6001' has its comm resource
}
05/27 21:21:33-CORE2, CQCServer, CQCDrv_MarantzDV6001_Thread18
{
    CQCKit, CQCKit_DriverBase.cpp.2531, Status/App Status
    Driver 'MarantzDV6001' is trying to connect to its device
}
05/27 21:21:33-CORE2, CQCServer, CQCDrv_MarantzDV6001_Thread18
{
    CQCKit, MEng.System.CQC.Runtime.CQCLogger.623, Status/App Status
    Exception_MarantzDV6001.GetMsg.1078: Communication timed out
}
05/27 21:21:33-CORE2, CQCServer, CQCDrv_MarantzDV6001_Thread18
{
    CQCKit, MEng.System.CQC.Runtime.CQCLogger.623, Status/App Status
    Exception_MarantzDV6001.Connect.1078: Communication timed out
}
05/27 21:21:33-CORE2, CQCServer, CQCDrv_MarantzDV6001_Thread18
{
    CQCKit, CQCKit_DriverBase.cpp.2586, Status/App Status
    Driver 'MarantzDV6001' has lost its communcations resource
}
05/27 21:21:33-CORE2, CQCServer, CQCDrv_MarantzDV6001_Thread18
{
    CQCKit, CQCKit_DriverBase.cpp.2474, Status/App Status
    Driver 'MarantzDV6001' is trying to get its comm resource
}
05/27 21:21:33-CORE2, CQCServer, CQCDrv_MarantzDV6001_Thread18
{
    CQCKit, CQCKit_DriverBase.cpp.2513, Status/App Status
    Driver 'MarantzDV6001' has its comm resource
}
05/27 21:21:33-CORE2, CQCServer, CQCDrv_MarantzDV6001_Thread18
{
    CQCKit, CQCKit_DriverBase.cpp.2531, Status/App Status
    Driver 'MarantzDV6001' is trying to connect to its device
}
05/27 21:21:34-CORE2, CQCServer, CQCDrv_MarantzDV6001_Thread18
{
    CQCKit, MEng.System.CQC.Runtime.CQCLogger.623, Status/App Status
    Exception_MarantzDV6001.GetMsg.1078: Communication timed out
}
Is the power on or off?
I posted a version 0.2 that has some logging added to the method that does the initial querying of the device so it should let us know which field it's choking on.
Tried both in power-on-but-standby and power-on.

Code:
05/27 22:20:51-CORE2, CQCServer, CQCDrv_MarantzDVD_Thread19
{
    CQCKit, MEng.System.CQC.Runtime.CQCLogger.624, Status/App Status
    Exception_MarantzDVD.GetMsg.1079: Communication timed out
}
05/27 22:20:51-CORE2, CQCServer, CQCDrv_MarantzDVD_Thread19
{
    CQCKit, MEng.System.CQC.Runtime.CQCLogger.624, Status/App Status
    Msg_MarantzDVD.QueryAll timed out for AEX:?.
}
05/27 22:20:51-CORE2, CQCServer, CQCDrv_MarantzDVD_Thread19
{
    CQCKit, MEng.System.CQC.Runtime.CQCLogger.624, Status/App Status
    Exception_MarantzDVD.Connect.1079: Communication timed out
}
05/27 22:20:51-CORE2, CQCServer, CQCDrv_MarantzDVD_Thread19
{
    CQCKit, CQCKit_DriverBase.cpp.2586, Status/App Status
    Driver 'MarantzDVD' has lost its communcations resource
}
05/27 22:20:51-CORE2, CQCServer, CQCDrv_MarantzDVD_Thread19
{
    CQCKit, CQCKit_DriverBase.cpp.2474, Status/App Status
    Driver 'MarantzDVD' is trying to get its comm resource
}
05/27 22:20:51-CORE2, CQCServer, CQCDrv_MarantzDVD_Thread19
{
    CQCKit, CQCKit_DriverBase.cpp.2513, Status/App Status
    Driver 'MarantzDVD' has its comm resource
}
05/27 22:20:51-CORE2, CQCServer, CQCDrv_MarantzDVD_Thread19
{
    CQCKit, CQCKit_DriverBase.cpp.2531, Status/App Status
    Driver 'MarantzDVD' is trying to connect to its device
}
05/27 22:20:51-CORE2, CQCServer, CQCDrv_MarantzDVD_Thread19
{
    CQCKit, MEng.System.CQC.Runtime.CQCLogger.624, Status/App Status
    Exception_MarantzDVD.GetMsg.1079: Communication timed out
}
05/27 22:20:51-CORE2, CQCServer, CQCDrv_MarantzDVD_Thread19
{
    CQCKit, MEng.System.CQC.Runtime.CQCLogger.624, Status/App Status
    Msg_MarantzDVD.QueryAll timed out for AEX:?.
}

Looks like the AEX command
That is the first one. Can you send an AEX:? to the unit with hyperterminal to see what reposne you get.
I send @AEX:? and I get a @AEX:1 back.

Did you send the @ sign in the beginning of each command? I missed that in the doc too, it's really written very badly.
Pages: 1 2 3 4 5 6 7 8