From: <an...@us...> - 2008-04-26 04:51:57
|
Revision: 1715 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1715&view=rev Author: and-81 Date: 2008-04-25 21:51:55 -0700 (Fri, 25 Apr 2008) Log Message: ----------- Added support for Pinnacle Serial IR Receiver and Remote Modified Paths: -------------- trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Configure.Designer.cs trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Configure.cs trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Configure.resx trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Pinnacle Serial Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Pinnacle Serial Receiver.csproj Added Paths: ----------- trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Pinnacle Serial/Pinnacle 41 Button.xml Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Configure.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Configure.Designer.cs 2008-04-26 00:18:16 UTC (rev 1714) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Configure.Designer.cs 2008-04-26 04:51:55 UTC (rev 1715) @@ -118,6 +118,7 @@ this.comboBoxPort.Name = "comboBoxPort"; this.comboBoxPort.Size = new System.Drawing.Size(88, 21); this.comboBoxPort.TabIndex = 3; + this.toolTips.SetToolTip(this.comboBoxPort, "Select the serial port the device is attached to"); // // Configure // @@ -125,7 +126,7 @@ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.buttonCancel; - this.ClientSize = new System.Drawing.Size(224, 104); + this.ClientSize = new System.Drawing.Size(226, 106); this.Controls.Add(this.labelButtonRepeatDelay); this.Controls.Add(this.comboBoxPort); this.Controls.Add(this.numericUpDownButtonRepeatDelay); @@ -140,7 +141,7 @@ this.ShowIcon = false; this.ShowInTaskbar = false; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "IRMan Receiver Configuration"; + this.Text = "Pinnacle Configuration"; ((System.ComponentModel.ISupportInitialize)(this.numericUpDownButtonRepeatDelay)).EndInit(); this.ResumeLayout(false); Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Configure.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Configure.cs 2008-04-26 00:18:16 UTC (rev 1714) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Configure.cs 2008-04-26 04:51:55 UTC (rev 1715) @@ -44,7 +44,7 @@ _ports = SerialPort.GetPortNames(); if (_ports == null || _ports.Length == 0) { - MessageBox.Show(this, "No available serial ports found!", "IRMan Receiver", MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show(this, "No available serial ports found!", "Pinnacle Serial Receiver", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Configure.resx =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Configure.resx 2008-04-26 00:18:16 UTC (rev 1714) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Configure.resx 2008-04-26 04:51:55 UTC (rev 1715) @@ -120,4 +120,7 @@ <metadata name="toolTips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>17, 17</value> </metadata> + <metadata name="toolTips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> </root> \ No newline at end of file Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Pinnacle Serial Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Pinnacle Serial Receiver.cs 2008-04-26 00:18:16 UTC (rev 1714) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Pinnacle Serial Receiver.cs 2008-04-26 04:51:55 UTC (rev 1715) @@ -1,3 +1,5 @@ +//#define TEST_APPLICATION + using System; using System.Collections.Generic; #if TRACE @@ -20,11 +22,87 @@ public class PinnacleSerialReceiver : PluginBase, IConfigure, IRemoteReceiver { + // #define TEST_APPLICATION in the project properties when creating the console test app ... +#if TEST_APPLICATION + + static PinnacleSerialReceiver device; + + static void xRemote(string deviceName, string code) + { + Console.WriteLine("Remote: {0}", code); + } + + static void Dump(int[] timingData) + { + foreach (int time in timingData) + Console.Write("{0}, ", time); + Console.WriteLine(); + } + + [STAThread] + static void Main() + { + Console.WriteLine("PinnacleSerialReceiver Test App"); + Console.WriteLine("===================================="); + Console.WriteLine(); + + try + { + device = new PinnacleSerialReceiver(); + + //Keyboard.LoadLayout(Keyboard.German_DE); + + Console.Write("Configure device? (y/n) "); + + if (Console.ReadKey().Key == ConsoleKey.Y) + { + Console.WriteLine(); + + Console.WriteLine("Configuring ..."); + device.Configure(null); + } + else + { + Console.WriteLine(); + } + + device.RemoteCallback += new RemoteHandler(xRemote); + //device.KeyboardCallback += new KeyboardHandler(xKeyboard); + //device.MouseCallback += new MouseHandler(xMouse); + + Console.WriteLine("Starting device access ..."); + + device.Start(); + + Console.WriteLine("Press a button on your remote ..."); + + Application.Run(); + + device.Stop(); + } + catch (Exception ex) + { + Console.WriteLine("Error:"); + Console.WriteLine(ex.ToString()); + Console.WriteLine(); + Console.WriteLine(""); + + Console.ReadKey(); + } + finally + { + device = null; + } + } + +#endif + + #region Constants static readonly string ConfigurationFile = Path.Combine(ConfigurationPath, "Pinnacle Serial Receiver.xml"); - const int DeviceBufferSize = 3; + const int DeviceBufferSize = 255; // 3; #endregion Constants @@ -86,14 +164,14 @@ _serialPort.Handshake = Handshake.None; _serialPort.DtrEnable = false; _serialPort.RtsEnable = true; - _serialPort.ReadBufferSize = DeviceBufferSize; - _serialPort.ReadTimeout = 1000; + //_serialPort.ReadBufferSize = DeviceBufferSize; + //_serialPort.ReadTimeout = 1000; _serialPort.Open(); Thread.Sleep(100); _serialPort.DiscardInBuffer(); - _serialPort.ReceivedBytesThreshold = DeviceBufferSize; + //_serialPort.ReceivedBytesThreshold = DeviceBufferSize; _serialPort.DataReceived += new SerialDataReceivedEventHandler(SerialPort_DataReceived); } /// <summary> @@ -178,16 +256,33 @@ { try { - _serialPort.Read(_deviceBuffer, 0, DeviceBufferSize); + int bytes = _serialPort.BytesToRead; + if (bytes == 0) + return; + _serialPort.Read(_deviceBuffer, 0, bytes); + TimeSpan timeSpan = DateTime.Now - _lastCodeTime; - StringBuilder keyCode = new StringBuilder(2 * DeviceBufferSize); - for (int index = 0; index < DeviceBufferSize; index++) - keyCode.Append(_deviceBuffer[index].ToString("X2")); + string thisCode = String.Empty; - string thisCode = keyCode.ToString(); + if (bytes == 3) + { + int code = _deviceBuffer[2] & 0x3F; + thisCode = code.ToString(); + } + else + { + StringBuilder keyCode = new StringBuilder(2 * bytes); + for (int index = 0; index < bytes; index++) + keyCode.Append(_deviceBuffer[index].ToString("X2")); + + thisCode = keyCode.ToString(); + } + if (String.IsNullOrEmpty(thisCode)) + return; + if (thisCode.Equals(_lastCode, StringComparison.Ordinal)) // Repeated button { if (timeSpan.Milliseconds > _repeatDelay) @@ -259,7 +354,7 @@ { #endif - _repeatDelay = 500; + _repeatDelay = 400; _serialPortName = "COM1"; } } Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Pinnacle Serial Receiver.csproj =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Pinnacle Serial Receiver.csproj 2008-04-26 00:18:16 UTC (rev 1714) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Pinnacle Serial Receiver/Pinnacle Serial Receiver.csproj 2008-04-26 04:51:55 UTC (rev 1715) @@ -11,6 +11,8 @@ <AssemblyName>Pinnacle Serial Receiver</AssemblyName> <RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent> <ApplicationIcon>Icon.ico</ApplicationIcon> + <StartupObject> + </StartupObject> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <DebugSymbols>false</DebugSymbols> @@ -72,7 +74,7 @@ <ProjectReference Include="..\IR Server Plugin Interface\IR Server Plugin Interface.csproj"> <Project>{D8B3D28F-62CE-4CA7-86CE-B7EAD614A94C}</Project> <Name>IR Server Plugin Interface</Name> - <Private>False</Private> + <Private>True</Private> </ProjectReference> </ItemGroup> <ItemGroup> Added: trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Pinnacle Serial/Pinnacle 41 Button.xml =================================================================== --- trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Pinnacle Serial/Pinnacle 41 Button.xml (rev 0) +++ trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Pinnacle Serial/Pinnacle 41 Button.xml 2008-04-26 04:51:55 UTC (rev 1715) @@ -0,0 +1,43 @@ +<?xml version="1.0" standalone="yes"?> +<DocumentElement> + <RemoteTable RawCode="63" AbstractButton="Up" /> + <RemoteTable RawCode="62" AbstractButton="Down" /> + <RemoteTable RawCode="61" AbstractButton="Left" /> + <RemoteTable RawCode="59" AbstractButton="Right" /> + <RemoteTable RawCode="26" AbstractButton="OK" /> + <RemoteTable RawCode="27" AbstractButton="VolumeUp" /> + <RemoteTable RawCode="15" AbstractButton="VolumeDown" /> + <RemoteTable RawCode="23" AbstractButton="ChannelUp" /> + <RemoteTable RawCode="28" AbstractButton="ChannelDown" /> + <RemoteTable RawCode="37" AbstractButton="PreviousChannel" /> + <RemoteTable RawCode="22" AbstractButton="Back" /> + <RemoteTable RawCode="43" AbstractButton="Info" /> + <RemoteTable RawCode="60" AbstractButton="Mute" /> + <RemoteTable RawCode="58" AbstractButton="Number0" /> + <RemoteTable RawCode="49" AbstractButton="Number1" /> + <RemoteTable RawCode="50" AbstractButton="Number2" /> + <RemoteTable RawCode="51" AbstractButton="Number3" /> + <RemoteTable RawCode="52" AbstractButton="Number4" /> + <RemoteTable RawCode="53" AbstractButton="Number5" /> + <RemoteTable RawCode="54" AbstractButton="Number6" /> + <RemoteTable RawCode="55" AbstractButton="Number7" /> + <RemoteTable RawCode="56" AbstractButton="Number8" /> + <RemoteTable RawCode="57" AbstractButton="Number9" /> + <RemoteTable RawCode="13" AbstractButton="Play" /> + <RemoteTable RawCode="21" AbstractButton="Pause" /> + <RemoteTable RawCode="11" AbstractButton="Stop" /> + <RemoteTable RawCode="7" AbstractButton="FastForward" /> + <RemoteTable RawCode="14" AbstractButton="Rewind" /> + <RemoteTable RawCode="39" AbstractButton="Record" /> + <RemoteTable RawCode="25" AbstractButton="NextChapter" /> + <RemoteTable RawCode="47" AbstractButton="Power" /> + <RemoteTable RawCode="41" AbstractButton="Teletext" /> + <RemoteTable RawCode="29" AbstractButton="Menu" /> + <RemoteTable RawCode="45" AbstractButton="Fullscreen" /> + <RemoteTable RawCode="30" AbstractButton="AspectRatio" /> + <RemoteTable RawCode="46" AbstractButton="Pictures" /> + <RemoteTable RawCode="38" AbstractButton="TV" /> + <RemoteTable RawCode="24" AbstractButton="Guide" /> + <RemoteTable RawCode="31" AbstractButton="LiveTV" /> + <RemoteTable RawCode="42" AbstractButton="Radio" /> +</DocumentElement> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |