private static void TimerCallBack(object inf) { if (IsMonitorInit) { //-- только если задан обработчик событий нажатия клавиш if (KeyProcessorMetod != null) { if (LogitechSDK.LogiLcdIsButtonPressed(LogitechSDK.LOGI_LCD_MONO_BUTTON_0)) { KeyProcessorMetod(0); } if (LogitechSDK.LogiLcdIsButtonPressed(LogitechSDK.LOGI_LCD_MONO_BUTTON_1)) { KeyProcessorMetod(1); } if (LogitechSDK.LogiLcdIsButtonPressed(LogitechSDK.LOGI_LCD_MONO_BUTTON_2)) { KeyProcessorMetod(2); } if (LogitechSDK.LogiLcdIsButtonPressed(LogitechSDK.LOGI_LCD_MONO_BUTTON_3)) { KeyProcessorMetod(3); } } } }
/// <summary> /// Инициализация физического монитора. Автоматически создается логический монитор с именем MAIN (последнее не реализовано) /// </summary> /// <param name="Spl">Splash-изображение, выводимое при инициализации монитора. Если не задано, то монитор просто очищается.</param> /// <param name="KeyProcessor">Ссылка на метод - процессор, обрабатывающий нажатия клавиш на мониторе клавиатуры</param> /// <returns>"Истина" в случае успешной инициализации.</returns> public static bool InitLogitechMonitor(Bitmap Spl = null, LogitechLCDKeyProcessor KeyProcessor = null) { var res = false; //-- если растр не задан - используем очистку if (Spl == null) { SplashBmp = Properties.Resources.cls; } else { SplashBmp = Spl; } //-- установка процессора, если он не задан, (по умолчанию), то и эффекта не будет KeyProcessorMetod = KeyProcessor; IsMonitorInit = TryInitLogitechMonitor(); //-- если монитор вообще подсоединен, то .. if (IsMonitorInit) { //-- пытаемся его инициализировать if (LogitechSDK.LogiLcdIsConnected(LogitechSDK.LOGI_LCD_TYPE_MONO)) { //-- запуск таймера опроса состояния нажатий кнопок на экране клавиатуры lcdButtonsTimer.Change(1000, 250); // LogitechSDK.LogiLcdMonoSetBackground(BitmapToByteRgbNaive(SplashBmp)); LogitechSDK.LogiLcdMonoSetBackground(BitmapToByteRgb(SplashBmp)); LogitechSDK.LogiLcdUpdate(LogitechSDK.LOGI_LCD_TYPE_MONO); //--создание основного логического монитора. //MMS.Add("MAIN", new MonitorMONO(Spl) { Active=true }); } res = true; } return(res); }
public static void DeInitLogitechMonitor() { //-- удаление таймера lcdButtonsTimer.Dispose(); if (LogitechSDK.LogiLcdIsConnected(LogitechSDK.LOGI_LCD_TYPE_MONO)) { IsMonitorInit = false; LogitechSDK.LogiLcdShutdown(); } }
/// <summary> /// Отображение битовой матрицы на экране монитора /// </summary> /// <param name="View"></param> public static void Paint(byte[] View) { if (IsMonitorInit) { try { LogitechSDK.LogiLcdMonoSetBackground(View); LogitechSDK.LogiLcdUpdate(LogitechSDK.LOGI_LCD_TYPE_MONO); } catch (Exception e) { //throw; } } }
/// <summary> /// Очистка физического монитора /// </summary> public static void ClearMonitor() { SplashBmp = Properties.Resources.cls; //-- если монитор вообще подсоединен, то .. if (IsMonitorInit) { { try { LogitechSDK.LogiLcdMonoSetBackground(BitmapToByteRgb(SplashBmp)); LogitechSDK.LogiLcdUpdate(LogitechSDK.LOGI_LCD_TYPE_MONO); } catch (Exception e) { } } } }
public static bool TryInitLogitechMonitor() { // Поскольку у меня нет никакого другого варианта клавиатуры - я отлаживаю только для монохромного, уж извините ))) return(LogitechSDK.LogiLcdInit("KBD_LCD", LogitechSDK.LOGI_LCD_TYPE_MONO));//|LogitechSDK.LOGI_LCD_TYPE_COLOR); }