2016-06-01 6 views
1

私はLogitech's own LED SDKを私のG502で使用しようとしていますが、できません。 SDKバージョン8.82.7を使用しています。これは、現在のところ、最新のバージョンです。私はSOやその他のインターネット上で何も見つけられなかったので、私はここで尋ねています。LogitechのLEDイルミネーションSDKが私のG502と連携していません

は、ここに私のLogitechGSDK.csです:

using System; 
using System.Collections; 
using System.Runtime.InteropServices; 

namespace LogiRGB { 

    public enum KeyboardNames { 
     ESC = 0x01, 
     F1 = 0x3b, 
     F2 = 0x3c, 
     F3 = 0x3d, 
     F4 = 0x3e, 
     F5 = 0x3f, 
     F6 = 0x40, 
     F7 = 0x41, 
     F8 = 0x42, 
     F9 = 0x43, 
     F10 = 0x44, 
     F11 = 0x57, 
     F12 = 0x58, 
     PRINT_SCREEN = 0x137, 
     SCROLL_LOCK = 0x46, 
     PAUSE_BREAK = 0x45, 
     TILDE = 0x29, 
     ONE = 0x02, 
     TWO = 0x03, 
     THREE = 0x04, 
     FOUR = 0x05, 
     FIVE = 0x06, 
     SIX = 0x07, 
     SEVEN = 0x08, 
     EIGHT = 0x09, 
     NINE = 0x0A, 
     ZERO = 0x0B, 
     MINUS = 0x0C, 
     EQUALS = 0x0D, 
     BACKSPACE = 0x0E, 
     INSERT = 0x152, 
     HOME = 0x147, 
     PAGE_UP = 0x149, 
     NUM_LOCK = 0x145, 
     NUM_SLASH = 0x135, 
     NUM_ASTERISK = 0x37, 
     NUM_MINUS = 0x4A, 
     TAB = 0x0F, 
     Q = 0x10, 
     W = 0x11, 
     E = 0x12, 
     R = 0x13, 
     T = 0x14, 
     Y = 0x15, 
     U = 0x16, 
     I = 0x17, 
     O = 0x18, 
     P = 0x19, 
     OPEN_BRACKET = 0x1A, 
     CLOSE_BRACKET = 0x1B, 
     BACKSLASH = 0x2B, 
     KEYBOARD_DELETE = 0x153, 
     END = 0x14F, 
     PAGE_DOWN = 0x151, 
     NUM_SEVEN = 0x47, 
     NUM_EIGHT = 0x48, 
     NUM_NINE = 0x49, 
     NUM_PLUS = 0x4E, 
     CAPS_LOCK = 0x3A, 
     A = 0x1E, 
     S = 0x1F, 
     D = 0x20, 
     F = 0x21, 
     G = 0x22, 
     H = 0x23, 
     J = 0x24, 
     K = 0x25, 
     L = 0x26, 
     SEMICOLON = 0x27, 
     APOSTROPHE = 0x28, 
     ENTER = 0x1C, 
     NUM_FOUR = 0x4B, 
     NUM_FIVE = 0x4C, 
     NUM_SIX = 0x4D, 
     LEFT_SHIFT = 0x2A, 
     Z = 0x2C, 
     X = 0x2D, 
     C = 0x2E, 
     V = 0x2F, 
     B = 0x30, 
     N = 0x31, 
     M = 0x32, 
     COMMA = 0x33, 
     PERIOD = 0x34, 
     FORWARD_SLASH = 0x35, 
     RIGHT_SHIFT = 0x36, 
     ARROW_UP = 0x148, 
     NUM_ONE = 0x4F, 
     NUM_TWO = 0x50, 
     NUM_THREE = 0x51, 
     NUM_ENTER = 0x11C, 
     LEFT_CONTROL = 0x1D, 
     LEFT_WINDOWS = 0x15B, 
     LEFT_ALT = 0x38, 
     SPACE = 0x39, 
     RIGHT_ALT = 0x138, 
     RIGHT_WINDOWS = 0x15C, 
     APPLICATION_SELECT = 0x15D, 
     RIGHT_CONTROL = 0x11D, 
     ARROW_LEFT = 0x14B, 
     ARROW_DOWN = 0x150, 
     ARROW_RIGHT = 0x14D, 
     NUM_ZERO = 0x52, 
     NUM_PERIOD = 0x53, 
    }; 

    public static class LogitechGSDK { 
     //LED SDK 
     private const int LOGI_DEVICETYPE_MONOCHROME_ORD = 0; 
     private const int LOGI_DEVICETYPE_RGB_ORD = 1; 
     private const int LOGI_DEVICETYPE_PERKEY_RGB_ORD = 2; 

     public const int LOGI_DEVICETYPE_MONOCHROME = (1 << LOGI_DEVICETYPE_MONOCHROME_ORD); 
     public const int LOGI_DEVICETYPE_RGB = (1 << LOGI_DEVICETYPE_RGB_ORD); 
     public const int LOGI_DEVICETYPE_PERKEY_RGB = (1 << LOGI_DEVICETYPE_PERKEY_RGB_ORD); 
     public const int LOGI_DEVICETYPE_ALL = (LOGI_DEVICETYPE_MONOCHROME | LOGI_DEVICETYPE_RGB | LOGI_DEVICETYPE_PERKEY_RGB); 

     public const int LOGI_LED_BITMAP_WIDTH = 21; 
     public const int LOGI_LED_BITMAP_HEIGHT = 6; 
     public const int LOGI_LED_BITMAP_BYTES_PER_KEY = 4; 

     public const int LOGI_LED_BITMAP_SIZE = LOGI_LED_BITMAP_WIDTH * LOGI_LED_BITMAP_HEIGHT * LOGI_LED_BITMAP_BYTES_PER_KEY; 
     public const int LOGI_LED_DURATION_INFINITE = 0; 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool LogiLedInit(); 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool LogiLedSetTargetDevice(int targetDevice); 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool LogiLedGetSdkVersion(ref int majorNum, ref int minorNum, ref int buildNum); 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool LogiLedSaveCurrentLighting(); 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool LogiLedSetLighting(int redPercentage, int greenPercentage, int bluePercentage); 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool LogiLedRestoreLighting(); 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool LogiLedFlashLighting(int redPercentage, int greenPercentage, int bluePercentage, int milliSecondsDuration, int milliSecondsInterval); 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool LogiLedPulseLighting(int redPercentage, int greenPercentage, int bluePercentage, int milliSecondsDuration, int milliSecondsInterval); 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool LogiLedStopEffects(); 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool LogiLedSetLightingFromBitmap(byte[] bitmap); 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool LogiLedSetLightingForKeyWithScanCode(int keyCode, int redPercentage, int greenPercentage, int bluePercentage); 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool LogiLedSetLightingForKeyWithHidCode(int keyCode, int redPercentage, int greenPercentage, int bluePercentage); 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool LogiLedSetLightingForKeyWithQuartzCode(int keyCode, int redPercentage, int greenPercentage, int bluePercentage); 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool LogiLedSetLightingForKeyWithKeyName(KeyboardNames keyCode, int redPercentage, int greenPercentage, int bluePercentage); 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool LogiLedSaveLightingForKey(KeyboardNames keyName); 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool LogiLedRestoreLightingForKey(KeyboardNames keyName); 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool LogiLedFlashSingleKey(KeyboardNames keyName, int redPercentage, int greenPercentage, int bluePercentage, int msDuration, int msInterval); 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool LogiLedPulseSingleKey(KeyboardNames keyName, int startRedPercentage, int startGreenPercentage, int startBluePercentage, int finishRedPercentage, int finishGreenPercentage, int finishBluePercentage, int msDuration, bool isInfinite); 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool LogiLedStopEffectsOnKey(KeyboardNames keyName); 

     [DllImport("LogitechLedEnginesWrapper ", CallingConvention = CallingConvention.Cdecl)] 
     public static extern void LogiLedShutdown(); 
    } 
} 

マイカラー変更コードは、基本的に素敵なオレンジ色に私のマウスのLEDを設定する必要があり

LogitechGSDK.LogiLedInit(); 
LogitechGSDK.LogiLedSetTargetDevice(LogitechGSDK.LOGI_DEVICETYPE_ALL); 
LogitechGSDK.LogiLedSetLighting(255, 127, 0); 

になるが、実際には何もしません。 SDK .zipに含まれているLogitech独自のサンプルは動作しません。私はLogitechのゲームソフトウェアでLEDの色を設定できますが、それは私が望むものではありません。

LogitechのSDKは壊れていますか?そうでない場合、私はそれを働かせるために何ができますか?

編集:私はおそらくG502のRGBバージョンを所有していると言えます。

+0

すべての呼び出しがtrueを返すかどうかを確認しましたか? – Gusman

+0

あります。また、initメソッドは、複数回呼び出すと正しくfalseを返します。 –

答えて

2

LogitechGSDK.LogiLedSetLighting(255, 127, 0);の引数は、値の制限を超えているため、間違っています。

これらは、RGB値ではないパーセンテージであると考えられます。

有効にするには、0〜100の数値を入力します。で

LogitechGSDK.LogiLedSetTargetDevice(LogitechGSDK.LOGI_DEVICETYPE_ALL); 

LogitechGSDK.LogiLedSetTargetDevice(LogitechGSDK.LOGI_DEVICETYPE_RGB); 

または一緒にそれをすべてを削除

また、あなたのコードを置き換えます。ここで

は、オレンジ色の例である:

LogitechGSDK.LogiLedSetLighting(100, 30, 0); 

は、コードを初期化するのに十分な時間を与えることを忘れないでください。

関連する問題