| | #61 (permalink) |
| Portal Developer Join Date: May 2007
Posts: 498
Thanks: 1
Thanked 83 Times in 39 Posts
Country: | Here is an updated version. It should fix all the issues that have been pointed out by -Manfred- and Herr R aus B. As far as the "?" characters on the display, that would be the displays way of telling you that it has received a character that it does not support. The easiest way to fix it is to configure MediaPortal (in configuration under General/Skin/Display Language) to use English. An alternate way to "fix" the problem is to configure character translation for the ExternalDisplay plugin. To set up translation, load the ExternalDisplay.xml file in a text editor. Near the bottom of the file you will find a two sections named "TranslateFrom" and "TranslateTo": Code: Example: <TranslateFrom> <string>x</string> <string>y</string> </TranslateFrom> <TranslateTo> <string>a</string> <string>b</string> </TranslateTo> Add a string section to each section for every character that will not display on the VFD. As far as advanced features.... You are pretty much on your own... I don't have the device, and "advanced" features would be far beyond what I'd be willing to do without having the hardware on hand.... Regards, CybrMage Last edited by cybrmage; 2007-12-31 at 03:56. Reason: DRIVER REMOVED DUE TO NEW VERSION |
| | |
| | #63 (permalink) |
| Portal Member Join Date: May 2007
Posts: 116
Thanks: 4
Thanked 24 Times in 14 Posts
Country: | Hmm... I'm lost now. Every time getting this error now no matter what driver used. Any ideas except change from Vista to XP? 2007-12-30 19:17:22.447355 [ERROR][ExternalDisplay]: VLSYS_Mplay.Initialize(): CAUGHT EXCEPTION while opening port COM3 - System.UnauthorizedAccessException: Access to the port 'COM3' is denied. /m |
| | |
| | #64 (permalink) |
| Portal Developer Join Date: May 2007
Posts: 498
Thanks: 1
Thanked 83 Times in 39 Posts
Country: | Try a reboot... The Vista comm port subsystem may be locked... Check device manager... If you have rebooted lately, the port may have changed ( I have a MatrixOrbital MX2 display that like to change from COM4 to COM2 every so often when rebooted). Post logs... Although I have attempted to make sure the port is always closed during setup and configuration, I may have missed something... Regards, CybrMage |
| | |
| | #65 (permalink) |
| Portal Member | Hello, I built PC with MediaPortal to HD135 case, so big thanks for this plugin. I've only one question. Is there some way to detect presence of M.play software when MP starts, automated close/deactivation of it for plugin use, and restore it's before state when MP closes? Thx |
| | |
| | #66 (permalink) | |||
| Portal Member Join Date: Dec 2007 Location: Berlin Age: 44
Posts: 80
Thanks: 2
Thanked 2 Times in 2 Posts
Country: | Quote:
The driver DLL is still locked after closing the configuration application and the process is still running (as described above) Is this maybe an X64 issue as 64 bit windows is not officially supported? Quote:
Quote:
There still are some issues left, that might be not so hard to solve. Obviously there is a problem initializing the display. I peeked in your code and the only place where I found initializing stuff was: commPort.Write(new byte[] { 0xAA, 0xAA }, 0, 2); //Init IR & Display That's a little bit less than what the MHC software does. Obviously it leads to a different behaviour of the VFD. Using your driver will not initialize the fans - unfortunately they run on a rather high level after switching on (i wonder who designed this hardware...) und that's loud. The other point is, that sending windows to standby switches off the VFD. Thus it's not possible to get windows awake using the remote control. Using the MHC software instead of your driver lets you send windows to standby and one can wake it up with the romte. Now here is, what he MHC software sends to the VFD for initialization: A4 7D ¤} AA AA ªª AA AA ªª AA AA ªª AA AA ªª AA AA ªª AA AA ªª AA AA ªª AA AA ªª AA AA ªª AA AA ªª A0 A5 38 ¥8 Must be some "hello are you out there?" A1 00 A7 57 65 6C 63 6F 6D 65 20 74 6F 20 20 20 ¡.§Welcome to 20 20 20 20 20 20 20 00 . A2 00 A7 20 20 4D 2E 50 6C 61 79 20 48 6F 6D 65 ¢.§ M.Play Home 20 43 65 6E 74 65 72 00 Center. AF This sets the display AC ¬ 00 . 00 . as far as I tested it this sets the fans to 0% (AC <fan1> <fan2> with 00 = 0%, 47 = 40%, 58 = 50%, 6A = 60%, 7C = 70%, 8E = 80%, 9F = 90%, B1 = 100%) 00 00 00 ... AD 00 00 10 18 04 00 00 00 00 00 00 00 0C 1B 14 *............... 08 00 00 00 00 06 1B 05 02 00 00 01 03 07 09 00 ................ 00 00 00 04 18 10 00 00 00 12 10 14 13 08 04 03 ................ 00 09 01 05 19 02 04 18 00 00 09 07 03 01 00 00 ................ 00 . This seems to be important.... I attached the complete communications log and a few more for those who might be interested... Do you think you can incorporate this in your driver? Or even better give us an opportunity to configure all this hex stuff ourselves? Maybe something like an XML file with several sections like Init1, Init2, FanSetup, etc...? That might help finding the exact initialization sequences without keeping on bothering you :-) Finally there is an issue with key press repeats. The M-Play remote is somewhat strange. As you can see in the PDF with the remote codes I posted some days ago, I always added a "7E" because i thought it belonged to the key code. Now somewhere here in the forum I read, that the "7E" just means "repeat the last key". Would it be possible to evalute that behavior in the driver? Greets Axel
__________________ Jazz oder nie! Last edited by Herr R aus B; 2008-01-04 at 22:17. | |||
| | |
| | #67 (permalink) | |||||
| Portal Developer Join Date: May 2007
Posts: 498
Thanks: 1
Thanked 83 Times in 39 Posts
Country: | Quote:
Quote:
It may be an X64 issue, but I can't be certain. Does configuration still hang if you Disable the ExternalDisplay plugin? When it hangs, let it sit for a minute then copy the configuration.log and post it. (IE: make a copy of the configuration.log before you forcably shut down the process) Quote:
The { 0xAA, 0xAA } initialization was the only information provided to me... Quote:
try the new version... Quote:
Remember... I don't have the hardware... so I can't see what any of the commands actually do.... saying that the display doesn't act the way it does with MHC tells me absolutely nothing... I don't know how the display acts under MHC!! I didn't find any documentation (official or otherwise) that indicated that the 0x7E code was sent with every button press... But, your log shows that there are indeed two bytes sent for every button press. I have changed the driver to accomodate this behaviour. Here is the new version: I have redone the remote mapping file so that the order of the keys in the editor more closely matches the layout on the remote (from top left to bottom right) and changed the name of some keys to better match the button labels (thanks Herr R aus B for providing a readable picture of the remote!). I have also updated the default button mapping to fix some of the keys so they actually do what they are supposed to do. The driver will NOT update the existing mapping file (which will still work properly). If you want/need to get the new default mappings, you should delete the VLSYS_Mplay.xml in your MediaPortal's InputDeviceMappings\custom directory. Also changed is the Advance configuration... The "Advanced" button no longer brings up the remote mapping editor. Instead, it brings up an advanced driver configuration screen. On the advanced configuration screen you can set some driver specific options. Currently, you can disable the remote control, and you can enable use of the fan controller (experimental). Regards, CybrMage Last edited by cybrmage; 2008-03-14 at 08:09. | |||||
| | |
| | #68 (permalink) | |||||||||||
| Portal Member Join Date: Dec 2007 Location: Berlin Age: 44
Posts: 80
Thanks: 2
Thanked 2 Times in 2 Posts
Country: | Quote:
Quote:
Quote:
What I meant was, that I have a windows service in mind, that offers several interfaces (plain pure common and boaring sockets or more sophisticated SOAP based web services to be state of the art). These interfaces would be:
![]() Quote: Quote:
Then there is one line, I thought it was part of the "where is my COM port" search:A5 38 ¥8 According to your source code this sets the display's brightness to 100% (whith 25% = 0x3B, 50% = 0x3A, 75% = 0x39, 100% = 0x38). This then always is followd by initilizing the fans according to the AFC settings in the MHC software. Then the display is set to whatever startup message is configured. The most interesting thing is this 41 byte block at the end if the initialization. My guess is, that it sets a bunch of paramters which are - of coruse! - nit documented. I wrote to Zalman, to VL System and I also contacted that guy dero here from the german section of the forum, because he did some testing and wrote some controlling software for this VFD. But I didn't get any response so far. And I doubt, that Zalman or VL System will let private persons peek into their deep secrets I also tried to find out, whether some linux folks already analyzed this VFD - so far no results, but I am sure there will be something sooner or later.Anyway - these 41 bytes are rather interesting, as such blocks occur here and there with slightly different content. So far I would just try to emulate exactly what I sniffed and to release you from all this impossible testing I thought, it might be a good idea to have the opportunity to specify all this hex code stuff in some configuration file - that would help me to do some testing here using your driver. Quote: Now of course it would be great if the driver would be able to set fan speeds (see my above attachments). At the moment, I think, that reading the temperatures is done sending the VFD a 0xAF and get two bytes in return, where the first byte seems to be the second sensor and the second byte the first sensor. At least that is, how the MHC software treats the values. Quote:
In that earlier post I attached a file showing what MHC writes tp the COM port before sending windows to standby:00 00 00 ... AE AE ®® undocumented stuff... A1 00 A7 4D 2E 50 6C 61 79 20 48 6F 6D 65 20 43 ¡.§M.Play Home C 65 6E 74 65 72 20 20 00 enter . A2 00 A7 20 20 20 20 20 20 20 20 53 74 61 6E 64 ¢.§ Stand 62 79 20 4D 6F 64 65 00 by Mode. setting the display text... AC 47 47 ¬GG setting the fans to 40% A4 7E ¤~ A4 76 ¤v 01 . 11 . 1E . 1F . 01 . 0C . 1D . 0B . AE ® undocumented stuff... A5 3B ¥; setting the display's brightness to 25% This matches what I can watch during the process of sending the PC to standby. After this sequence is completed, windows goes to standby and can be woke up using the PwrOff button. And exactly this doesn't work with your driver. That means, pressing the PwrOff button sends the PC to standby, but then you can't wake it up using the remote - no matter what button you press. Hitting the keyboard, moving the mouse or pressing the case's PwrOn/Off button shortly wakes windows up again. My guess would be, that one of the following conditions are true:
015813: I/O Request (DOWN), 30.12.2007 17:01:29.437 +0.0 IOCTL_SERIAL_PURGE: Purge requests Purge mask=TXABORT: Read requests, RXABORT: Receive buffer 015814: I/O Request (UP), 30.12.2007 17:01:29.437 +0.0 IOCTL_SERIAL_PURGE: Purge requests 015815: I/O Request (DOWN), 30.12.2007 17:01:29.437 +0.0 IOCTL_SERIAL_SET_WAIT_MASK: Set current event mask WaitMask=None 015817: I/O Request (UP), 30.12.2007 17:01:29.437 +0.0 IOCTL_SERIAL_SET_WAIT_MASK: Set current event mask 015818: I/O Request (DOWN), 30.12.2007 17:01:29.437 +0.0 IOCTL_SERIAL_PURGE: Purge requests Purge mask=TXCLEAR: Write requests, RXCLEAR: Write buffer 015819: I/O Request (UP), 30.12.2007 17:01:29.437 +0.0 IOCTL_SERIAL_PURGE: Purge requests 015820: Close Request (DOWN), 30.12.2007 17:01:29.437 +0.0 Buffer size: 0x0 bytes 015821: Close Request (UP), 30.12.2007 17:01:29.546 +0.109 Buffer size: 0x0 bytes Status: 0x00000000 Quote:
(Kidding!) Anyway, the driver still doesn't react on permanently pressed buttons. What i wrote in that PDF file was insufficent I think, because I thought each key stroke results in two bytes. Somehow, this remote itself is a little bit crappy, because using it over the MHC software, it produces duplicated key strokes. Seem as if the buttons on the remote itself are rather cheap... Anyway - as far as I watched it und that is congruent with what I found, the remote is supposed to work like this:1D -> DOWN was pressed once 1D 7E 7E 7E 7E 7E 7E 7E -> DOWN was hold and should result in 8 DOWNs (7 repeats) But it could also be like this: 1D 7E -> DOWN was pressed once 1D 7E 7E 7E 7E 7E 7E 7E -> DOWN was hold and should result in 7 DOWNs (6 repeats) The latter version seems to be rather illogical. I dunno how you treated the information so far. The result is, that no matter how long a hold a remote button pressed, I get exactly one key stroke. That is, if I need 4 DOWNs I have to hit the Down button 4 times. Anyway - your driver treats the remote signals better than the HMC software as you obviously filter out some of these unwanted duplications produced by this (rather crappy) remote... Maybe a good solution would be to remeber the last valid remote code and ignore 2 or 3 directly following 0x7E. Then if there are additional 0x7E send the last valid remote code instead. That should result in a behaviour like having a short gap between one button stroke and repeated button strokes... Just a proposal. The problem would be to define what are valid remote codes - maybe thos, defined in the XML file... Quote:
Now with your driver I have the chance to ignore this MHC stuff and the MPlay remote and maybe succeed with using an old Terratec Cynergy USB IR receiver. Maybe that one is able to talk to my generic remote... Quote:
There still is that german umlaut issue. This definately is no problem with the VFD, as it cn display them perfectly (see attached picture). This is, what MHC sends to the display: A1 00 A7 20 20 20 20 20 41 75 74 6F 20 55 73 65 ¡.§ Auto Use 72 20 20 20 20 20 20 00 r . A2 00 A7 20 20 20 20 20 49 6E 64 69 63 61 74 6F ¢.§ Indicato 72 20 20 20 20 20 20 00 r . A1 00 A7 D6 20 F6 20 DC 20 FC 20 C4 20 E4 20 DF ¡.§Ö ö Ü ü Ä ä ß 20 20 20 20 20 20 20 00 . A2 00 A7 20 20 20 20 20 20 20 20 20 20 20 20 20 ¢.§ 20 20 20 20 20 20 20 00 . Now as you can see in screenshot of MP with german language defined for the skin, MP displays the umlauts perfectly, but then sends these question marks to the VFD. Here is a log of what your driver writes to the COM port: 00 A7 .§ 4D 65 69 6E 65 20 46 69 6C 6D 65 20 20 20 20 20 Meine Filme 20 20 20 20 00 . 00 . A2 ¢ 00 A7 .§ 3F 20 3F 20 3F 20 3F 20 3F 20 3F 20 3F 20 20 20 ? ? ? ? ? ? ? 20 20 20 20 Could that maybe be an issue with windows code pages, unicode or whatever transformation within MP? Once again: I really appreciate your work and please don't take my rather long comments as complaints or nagging or whatever. I am really trying to provide you with as much information as I can as I know that this blind coding you are doing at the moment is rather annoying. Greetings, Axel PS: Just to give you more information - this here is the device we are talking about ![]()
__________________ Jazz oder nie! Last edited by Herr R aus B; 2008-01-04 at 22:17. | |||||||||||
| | |
| | #69 (permalink) | |
| Portal Member Join Date: Dec 2007 Location: Berlin Age: 44
Posts: 80
Thanks: 2
Thanked 2 Times in 2 Posts
Country: | Quote:
![]()
__________________ Jazz oder nie! | |
| | |
| | #70 (permalink) | ||||||||||||
| Portal Developer Join Date: May 2007
Posts: 498
Thanks: 1
Thanked 83 Times in 39 Posts
Country: | Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
From what I could determine from your logs... Each remote button press generates two bytes... the key code and 0x7E. So the question is... does holding down a button result in two bytes of 0x7E, or a single byte of 0x7E after getting the initial two bytes for the button press? Quote:
But... I need to know exactly what is sent by the display... Please install the new driver (I have added increased logging to the received data routines)... Then run mediaportal... The press and hold one button on the remote... then shutdown MediaPortal and post the mediaportal.log. Thanks. Quote:
Quote:
Quote:
Quote:
Anyways... here is a new version... I've added the extra commands to the shutdown procedure and extra logging to the serial receive routine... Hopefully it will give the info needed to get the button repeat to work. Regards, CybrMage Last edited by cybrmage; 2008-03-14 at 08:07. | ||||||||||||
| | |
![]() |
| Bookmarks |
| Tags |
| hd135, mplay, vfd, vlsys, zalman |
| Thread Tools | |
| Display Modes | |
| |
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Zalman VFD in PM | Takke | General Support | 3 | 2008-01-04 13:20 |
| Zalman HD160XT Gehäuse Diskusion | Muschi | Hardware | 10 | 2007-12-29 18:18 |
| Set-up Zalman HD160XT Remote | Giorgio_ap | Support | 4 | 2007-07-05 12:44 |
| Zalman HD160 advice | aarond | Hardware Selection Help | 13 | 2007-01-12 09:06 |
| Problems with Zalman HD160 | steviweavi | HTPC Projects | 6 | 2006-06-09 15:46 |