/// <summary> /// 初始化第二键盘 /// </summary> private void InitSecondKeyBoard() { UInt32 LastErrCode; byte[] sdk_version = new byte[POC_API.HIT_MAX_LIB_VER_STR_LENGTH]; LastErrCode = POC_API.poc_get_version(POC_API.POC_KEYBOARD_PID_SECOND, sdk_version); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("SecondKeyBoard Fails to get SDK version " + TranslateErrorCode(LastErrCode)); return; } Console.WriteLine("SecondKeyBoard Version" + System.Text.Encoding.ASCII.GetString(sdk_version)); LastErrCode = POC_API.poc_init(POC_API.POC_KEYBOARD_PID_SECOND); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("SecondKeyBoard Fails to init library " + TranslateErrorCode(LastErrCode)); return; } else { sdk_init_second_once = true; } byte[] fw_version = new byte[POC_API.HIT_MAX_FW_VER_STR_LENGTH]; LastErrCode = POC_API.poc_get_firmware_version(POC_API.POC_KEYBOARD_PID_SECOND, fw_version); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { Console.WriteLine("SecondKeyBoard Firmware Version:Unknown"); } else { Console.WriteLine("SecondKeyBoard Firmware Version:" + System.Text.Encoding.ASCII.GetString(fw_version)); } byte[] board_name = new byte[POC_API.HIT_MAX_BOARD_NAME_STR_LENGTH]; LastErrCode = POC_API.poc_get_board_name(POC_API.POC_KEYBOARD_PID_SECOND, board_name); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { Console.WriteLine("SecondKeyBoard Board Name:Unknown"); } else { Console.WriteLine("SecondKeyBoard Board Name:" + System.Text.Encoding.ASCII.GetString(board_name)); } unsafe { OnKeycodeDelegateCallbackSecond = new POC_API.keycode_event_callback(keycode_event); } LastErrCode = POC_API.poc_set_keycode_callback(POC_API.POC_KEYBOARD_PID_SECOND, OnKeycodeDelegateCallbackSecond); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails poc set keycode callback: " + LastErrCode.ToString("X8")); } }
/// <summary> /// 卸载键盘 /// </summary> public void UnLoadKeyBoard() { CloseSecondKeyBoardAllLed(); CloseMainKeyBoardAllLed(); if (sdk_init_main_once && sdk_init_second_once) { UInt32 LastErrCode = POC_API.poc_deinit(POC_API.POC_KEYBOARD_PID); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to deinit library " + TranslateErrorCode(LastErrCode)); } } }
/// <summary> /// 获取主键盘LED灯状态 /// </summary> /// <param name="ledNumber">键盘灯编号 0 1 2</param> /// <returns></returns> public byte GetMainKeyboardLedStatus(int ledNumber) { if (!sdk_init_main_once) { return(0); } UInt32 LastErrCode; byte ledStatus; switch (ledNumber) { case 0: //LED 1 LastErrCode = POC_API.poc_get_led_status(POC_API.POC_KEYBOARD_PID, POC_API.led_enum.POC_LED_PIN1, out ledStatus); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to get HIT_LED_PIN 1, " + LastErrCode.ToString("X8")); } break; case 1: //LED 2 LastErrCode = POC_API.poc_get_led_status(POC_API.POC_KEYBOARD_PID, POC_API.led_enum.POC_LED_PIN2, out ledStatus); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to get HIT_LED_PIN 2, " + LastErrCode.ToString("X8")); } break; case 2: //LED 3 LastErrCode = POC_API.poc_get_led_status(POC_API.POC_KEYBOARD_PID, POC_API.led_enum.POC_LED_PIN3, out ledStatus); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to get HIT_LED_PIN 3, " + LastErrCode.ToString("X8")); } break; default: ledStatus = 0; break; } return(ledStatus); }
/// <summary> /// 同时关闭第二键盘LED /// </summary> public void CloseSecondKeyBoardAllLed() { if (!sdk_init_second_once) { return; } UInt32 LastErrCode; bool[] LedID = new bool[6] { false, false, false, false, false, false }; LastErrCode = POC_API.poc_set_all_led_status(POC_API.POC_KEYBOARD_PID_SECOND, POC_SECONDBOARD_LED_NUM, LedID); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { MessageBox.Show("Fails to set all led " + LastErrCode.ToString("X8")); } }
/// <summary> /// 同时打开第二键盘LED /// </summary> /// <param name="ledCount">1 2 3 4 5 6 </param> public void OpenSecondKeyBoardAllLed(int ledCount) { if (!sdk_init_second_once) { return; } UInt32 LastErrCode; bool[] LedID = new bool[6]; for (int i = 0; i < ledCount; i++) { LedID[i] = true; } LastErrCode = POC_API.poc_set_all_led_status(POC_API.POC_KEYBOARD_PID_SECOND, POC_SECONDBOARD_LED_NUM, LedID); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { MessageBox.Show("Fails to set all led " + LastErrCode.ToString("X8")); } return; }
/// <summary> /// 设置第二键盘LED灯 /// </summary> /// <param name="ledNumber">0 1 2 3 4 5</param> public bool SetSecondKeyboardLedStatus(int ledNumber, bool isOpen) { if (!sdk_init_second_once) { return(false); } UInt32 LastErrCode; bool result = false; switch (ledNumber) { case 0: if (isOpen) { LastErrCode = POC_API.poc_led_on(POC_API.POC_KEYBOARD_PID_SECOND, POC_API.led_enum.POC_LED_PIN1); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to set HIT_LED_PIN " + LastErrCode.ToString("X8")); } else { result = true; } } else { LastErrCode = POC_API.poc_led_off(POC_API.POC_KEYBOARD_PID_SECOND, POC_API.led_enum.POC_LED_PIN1); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to set HIT_LED_PIN " + LastErrCode.ToString("X8")); } else { result = true; } } break; case 1: if (isOpen) { LastErrCode = POC_API.poc_led_on(POC_API.POC_KEYBOARD_PID_SECOND, POC_API.led_enum.POC_LED_PIN2); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to set HIT_LED_PIN " + LastErrCode.ToString("X8")); } else { result = true; } } else { LastErrCode = POC_API.poc_led_off(POC_API.POC_KEYBOARD_PID_SECOND, POC_API.led_enum.POC_LED_PIN2); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to set HIT_LED_PIN " + LastErrCode.ToString("X8")); } else { result = true; } } break; case 2: if (isOpen) { LastErrCode = POC_API.poc_led_on(POC_API.POC_KEYBOARD_PID_SECOND, POC_API.led_enum.POC_LED_PIN3); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to set HIT_LED_PIN " + LastErrCode.ToString("X8")); } else { result = true; } } else { LastErrCode = POC_API.poc_led_off(POC_API.POC_KEYBOARD_PID_SECOND, POC_API.led_enum.POC_LED_PIN3); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to set HIT_LED_PIN " + LastErrCode.ToString("X8")); } else { result = true; } } break; case 3: if (isOpen) { LastErrCode = POC_API.poc_led_on(POC_API.POC_KEYBOARD_PID_SECOND, POC_API.led_enum.POC_LED_PIN4); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to set HIT_LED_PIN " + LastErrCode.ToString("X8")); } else { result = true; } } else { LastErrCode = POC_API.poc_led_off(POC_API.POC_KEYBOARD_PID_SECOND, POC_API.led_enum.POC_LED_PIN4); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to set HIT_LED_PIN " + LastErrCode.ToString("X8")); } else { result = true; } } break; case 4: if (isOpen) { LastErrCode = POC_API.poc_led_on(POC_API.POC_KEYBOARD_PID_SECOND, POC_API.led_enum.POC_LED_PIN5); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to set HIT_LED_PIN " + LastErrCode.ToString("X8")); } else { result = true; } } else { LastErrCode = POC_API.poc_led_off(POC_API.POC_KEYBOARD_PID_SECOND, POC_API.led_enum.POC_LED_PIN5); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to set HIT_LED_PIN " + LastErrCode.ToString("X8")); } else { result = true; } } break; case 5: if (isOpen) { LastErrCode = POC_API.poc_led_on(POC_API.POC_KEYBOARD_PID_SECOND, POC_API.led_enum.POC_LED_PIN6); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to set HIT_LED_PIN " + LastErrCode.ToString("X8")); } else { result = true; } } else { LastErrCode = POC_API.poc_led_off(POC_API.POC_KEYBOARD_PID_SECOND, POC_API.led_enum.POC_LED_PIN6); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to set HIT_LED_PIN " + LastErrCode.ToString("X8")); } else { result = true; } } break; } return(result); }
/// <summary> /// 获取第二键盘LED灯状态 /// </summary> /// <param name="ledNumber">0 1 2 3 4 5</param> /// <returns></returns> public byte GetSecondKeyboardLedStatus(int ledNumber) { if (!sdk_init_second_once) { return(0); } UInt32 LastErrCode; byte ledStatus; switch (ledNumber) { case 0: //LED 1 LastErrCode = POC_API.poc_get_led_status(POC_API.POC_KEYBOARD_PID_SECOND, POC_API.led_enum.POC_LED_PIN1, out ledStatus); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to get HIT_LED_PIN 1, " + LastErrCode.ToString("X8")); } break; case 1: //LED 2 LastErrCode = POC_API.poc_get_led_status(POC_API.POC_KEYBOARD_PID_SECOND, POC_API.led_enum.POC_LED_PIN2, out ledStatus); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to get HIT_LED_PIN 2, " + LastErrCode.ToString("X8")); } break; case 2: //LED 3 LastErrCode = POC_API.poc_get_led_status(POC_API.POC_KEYBOARD_PID_SECOND, POC_API.led_enum.POC_LED_PIN3, out ledStatus); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to get HIT_LED_PIN 3, " + LastErrCode.ToString("X8")); } break; case 3: //LED 4 LastErrCode = POC_API.poc_get_led_status(POC_API.POC_KEYBOARD_PID_SECOND, POC_API.led_enum.POC_LED_PIN4, out ledStatus); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to get HIT_LED_PIN 4, " + LastErrCode.ToString("X8")); } break; case 4: //LED 5 LastErrCode = POC_API.poc_get_led_status(POC_API.POC_KEYBOARD_PID_SECOND, POC_API.led_enum.POC_LED_PIN5, out ledStatus); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to get HIT_LED_PIN 5, " + LastErrCode.ToString("X8")); } break; case 5: //LED 6 LastErrCode = POC_API.poc_get_led_status(POC_API.POC_KEYBOARD_PID_SECOND, POC_API.led_enum.POC_LED_PIN6, out ledStatus); if (LastErrCode != POC_API.POC_ERR_NO_ERROR) { //弹框 Console.WriteLine("Fails to get HIT_LED_PIN 6, " + LastErrCode.ToString("X8")); } break; default: ledStatus = 0; break; } //if (ledStatus == 1) //{ // SecondKeyBoardArr[ledNumber] = true; //} return(ledStatus); }