И так отчитываюсь за проделанную работу.
Ардуиной могу делать с пультом все что угодно :)
Текущий скетч с демонстрацией возможностей.
#include <SoftwareSerial.h>
SoftwareSerial MMI(4, 2); //TX, RX пульта
int MMIreceiveByte = 0; // byte reading from MMI
byte MMIbyte[8] = {0,0,0,0,0,0,0,0}; // key byte sequence
int Delay = 10; //delay in millisec
int MMIcom = 0; //boolean value set 1 if comand detected
int ComID = 0; // comand ID (for easy select case routine)
int otvet = 0; // id otveta
int incomingByte = 0; // byte reading from serial port
//************************************************** *** Системные коды ************************************************** *****************
byte START_12V[8] = {0, 0x67, 0xFF, 0x1A, 0x04, 0xFA, 0x27, 0xC5}; // Ответ пульта после подачи +12 67 FF 1A 4 FA 27 C5
byte Pult_ON[8] = {0, 0x10, 0x02, 0x70, 0x12, 0x10, 0x03, 0xA7}; // Команда включение пульта 10 02 70 12 10 03 A7
byte Pult_ON_Otvet[8] = {0, 0x67, 0xFF, 0x2A, 0xDF, 0xF2, 0x4B, 0x00 }; // Ответ пульта после программного включения 67 FF 2A DF F2 4B 0
byte Knopki_ON[8] = {0x10, 0x02, 0x64, 0x99, 0x01, 0x10, 0x03, 0x23}; // Разрешить подсветку 10 02 64 99 01 10 03 23
byte Podsvetka_ON[8] = {0x10, 0x02, 0x60, 0x9A, 0x01, 0x10, 0x03, 0x20}; // Включение общей подсветки кнопок 10 02 60 9A 01 10 03 20
//************************************************** *** Коды кнопок ************************************************** *****************
byte NAVI_DOWN[8] = {0, 0x67, 0xFF, 0x3E,0xF5, 0xDF, 0xF2, 0x4B}; // Нажатие кнопки 67 FF 3E F5 DF F2 4B *Проверено
byte NAVI_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xEA, 0xDF, 0xF2, 0x49}; // Отпустили кнопку 67 FF 3A EA DF F2 49 *Проверено
byte INFO_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xF3, 0xDF, 0xF2, 0x49}; //Нажатие кнопки 67 FF 3E F3 DF F2 49 *Проверено
byte INFO_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xE6, 0xDF, 0xF2, 0x47}; // Отпустили кнопку 67 FF 3A E6 DF F2 47 *Проверено
byte CAR_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xF1, 0xBE, 0xF2, 0x47}; //Нажатие кнопки 67 FF 3E F1 BE F2 47 *Проверено
byte CAR_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xE2, 0xBE, 0xF2, 0x45}; // Отпустили кнопку 67 FF 3A E2 BE F2 45 *Проверено
byte SETUP_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xEF, 0xBE, 0xF2, 0x45}; //Нажатие кнопки 67 FF 3E EF BE F2 45 *Проверено
byte SETUP_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xDE, 0xBE, 0xF2, 0x43}; // Отпустили кнопку 67 FF 3A DE BE F2 43 *Проверено
byte RADIO_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xCF, 0xDF, 0xF2, 0x25}; //Нажатие кнопки 67 FF 3E CF DF F2 25 *Проверено
byte RADIO_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0x9E, 0xDF, 0xF2, 0x23}; // Отпустили кнопку 67 FF 3A 9E DF F2 23 *Проверено
byte MEDIA_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xFB, 0xBE, 0xF2, 0x51}; //Нажатие кнопки 67 FF 3E FB BE F2 51 *Проверено
byte MEDIA_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xF6, 0xBE, 0xF2, 0x4F}; // Отпустили кнопку 67 FF 3A F6 BE F2 4F *Проверено
byte NAME_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xF9, 0xDF, 0xF2, 0x4F}; // Нажатие кнопки 67 FF 3E F9 DF F2 4F *Проверено
byte NAME_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xF2, 0xDF, 0xF2, 0x4D}; // Отпустили кнопку 67 FF 3A F2 DF F2 4D *Проверено
byte TEL_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xF7, 0xBE, 0xF2, 0x4D}; // Нажатие кнопки 67 FF 3E F7 BE F2 4D *Проверено
byte TEL_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xEE, 0xBE, 0xF2, 0x4B}; // Отпустили кнопку 67 FF 3A EE BE F2 4B *Проверено
byte LeftReturn_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xE7, 0xDF, 0xF2, 0x3D}; // Нажатие кнопки 67 FF 3E E7 DF F2 3D *Проверено
byte LeftReturn_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xCE, 0xDF, 0xF2, 0x3B}; //Отпустили кнопку 67 FF 3A CE DF F2 3B *Проверено
byte Return_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xE1, 0xDF, 0xF2, 0x37}; // Нажатие кнопки 67 FF 3E E1 DF F2 37 *Проверено
byte Return_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xC2, 0xDF, 0xF2, 0x35}; // Отпустили кнопку 67 FF 3A C2 DF F2 35 *Проверено
byte RightReturn_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xDF, 0xBE, 0xBE, 0xF2}; // Нажатие кнопки 67 FF 3E DF BE BE F2 *Проверено
byte RightReturn_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xBE, 0xBE, 0xBE, 0xF2}; // Отпустили кнопку 67 FF 3A BE BE BE F2 *Проверено
byte Big_Left[8] = {0, 0x67, 0xFF, 0xBA, 0xF4, 0xBE, 0xF2, 0x11}; // Повернули против часовой 67 FF BA F4 BE F2 11 *Проверено
byte Big_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xFD, 0xBE, 0xF2, 0x53}; // Нажатие кнопки 67 FF 3E FD BE F2 53 *Проверено
byte Big_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xFA, 0xBE, 0xF2, 0x51}; // Отпустили кнопку 67 FF 3A FA BE F2 51 *Проверено
byte Big_Right[8] = {0, 0x67, 0xFF, 0xBE, 0xF5, 0xBE, 0xF2, 0x13}; // Повернули по часовой 67 FF BE F5 BE F2 13 *Проверено
byte Small_Left[8] = {0, 0x67, 0xFF, 0xFA, 0xF5, 0xBE, 0xF2, 0x31}; // овернули против часовой 67 FF FA F5 BE F2 31 *Проверено
byte Small_Right[8] = {0, 0x67, 0xFF, 0xFE, 0xF4, 0xBE, 0xF2, 0x33}; // Повернули по часовой 67 FF FE F4 BE F2 33 *Проверено
byte Small_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0x8F, 0xBE, 0xF2, 0xE5}; // Нажатие кнопки 67 FF 3E 8F BE F2 E5 *Проверено
byte Small_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0x1E, 0xBE, 0xF2, 0xE3}; // Отпустили кнопку 67 FF 3A 1E BE F2 E3 *Проверено
byte LeftUP_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xEB, 0xDF, 0xF2, 0x41}; // Нажатие кнопки 67 FF 3E EB DF F2 41 *Проверено
byte LeftUP_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xD6, 0xDF, 0xF2, 0x3F}; // Отпустили кнопку 67 FF 3A D6 DF F2 3F *Проверено
byte LeftDown_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xE9, 0xBE, 0xF2, 0x3F}; // Нажатие кнопки 67 FF 3E E9 BE F2 3F *Проверено
byte LeftDown_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xD2, 0xBE, 0xF2, 0x3D}; // Отпустили кнопку 67 FF 3A D2 BE F2 3D *Проверено
byte RightUP_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xE5, 0xBE, 0xF2, 0x3B}; // Нажатие кнопки 67 FF 3E E5 BE F2 3B *Проверено
byte RightUP_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xCA, 0xBE, 0xF2, 0x39}; // Отпустили кнопку 67 FF 3A CA BE F2 39 *Проверено
byte RightDown_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xE3, 0xBE, 0xF2, 0x39}; // Нажатие кнопки 67 FF 3E E3 BE F2 39 *Проверено
byte RightDown_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xC6, 0xBE, 0xF2, 0x37}; // Отпустили кнопку 67 FF 3A C6 BE F2 37 *Проверено
//************************************************** *** Коды лампочек ************************************************** *****************
byte NAVI_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x05, 0x10, 0x03, 0x93}; // 10 02 68 01 05 10 03 93 *Проверено
byte NAVI_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x05, 0x10, 0x03, 0x92}; // 10 02 68 00 05 10 03 92 *Проверено
byte INFO_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x06, 0x10, 0x03, 0x94}; // 10 02 68 01 06 10 03 94 *Проверено
byte INFO_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x06, 0x10, 0x03 , 0x93}; // 10 02 68 00 06 10 03 93 *Проверено
byte CAR_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x07, 0x10, 0x03, 0x95}; // 10 02 68 01 07 10 03 95 *Проверено
byte CAR_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x07, 0x10, 0x03, 0x94}; // 10 02 68 00 07 10 03 94 *Проверено
byte SETUP_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x08, 0x10, 0x03, 0x96}; // 10 02 68 01 08 10 03 96 *Проверено
byte SETUP_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x08, 0x10, 0x03, 0x95}; // 10 02 68 00 08 10 03 95 *Проверено
byte RADIO_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x18, 0x10, 0x03, 0xA6}; // > 10 02 68 01 18 10 03 A6 *Проверено
byte RADIO_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x18, 0x10, 0x03, 0xA5}; // > 10 02 68 00 18 10 03 A5 *Проверено
byte MEDIA_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x02, 0x10, 0x03, 0x90}; // 10 02 68 01 02 10 03 90 *Проверено
byte MEDIA_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x02, 0x10, 0x03, 0x8F}; // 10 02 68 00 02 10 03 8F *Проверено
byte NAME_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x03, 0x10, 0x03, 0x91}; // 10 02 68 01 03 10 03 91 *Проверено
byte NAME_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x03, 0x10, 0x03, 0x90}; // 10 02 68 00 03 10 03 90 *Проверено
byte TEL_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x04, 0x10, 0x03, 0x92}; // 10 02 68 01 04 10 03 92 *Проверено
byte TEL_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x04, 0x10, 0x03, 0x91}; // 10 02 68 00 04 10 03 91 *Проверено
byte LeftUP_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x0A, 0x10, 0x03, 0x98}; // 10 02 68 01 0A 10 03 98 *Проверено
byte LeftUP_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x0A, 0x10, 0x03, 0x97}; // 10 02 68 00 0A 10 03 97 *Проверено
byte LeftDown_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x0B, 0x10, 0x03, 0x99}; // 10 02 68 01 0B 10 03 99 *Проверено
byte LeftDown_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x0B, 0x10, 0x03, 0x98}; // 10 02 68 00 0B 10 03 98 *Проверено
byte RightUP_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x0D, 0x10, 0x03, 0x9B}; // 10 02 68 01 0D 10 03 9B *Проверено
byte RightUP_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x0D, 0x10, 0x03, 0x9A}; // 10 02 68 00 0D 10 03 9A *Проверено
byte RightDown_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x0E, 0x10, 0x03, 0x9C}; // 10 02 68 01 0E 10 03 9C *Проверено
byte RightDown_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x0E, 0x10, 0x03, 0x9B}; // 10 02 68 00 0E 10 03 9B *Проверено
void setup()
{
Serial.begin(9600); // открываем порт на скорости 9600 для передачи в ПК
MMI.begin(9600); // открываем порт на скорости 9600 для передачи в MMI
}
void loop()
{
if (Serial.available())
{
MMI.write(Serial.read());
}
if (MMI.available() && MMIcom==0 )
{
ReadMMI();
}
else
{
switch (otvet)
{
case 1:
delay (5);
WriteMMI(Pult_ON, 8);
break;
case 2:
delay (5);
WriteMMI(Podsvetka_ON,8);
delay (5);
WriteMMI(Knopki_ON, 8);
break;
case 3:
delay (5);
WriteMMI(NAVI_ON, 8);
break;
case 4:
delay (5);
WriteMMI(INFO_ON, 8);
break;
case 5:
delay (5);
WriteMMI(CAR_ON, 8);
break;
case 6:
delay (5);
WriteMMI(SETUP_ON, 8);
break;
case 7:
delay (5);
WriteMMI(RADIO_ON, 8);
break;
case 8:
delay (5);
WriteMMI(MEDIA_ON, 8);
break;
case 9:
delay (5);
WriteMMI(NAME_ON, 8);
break;
case 10:
delay (5);
WriteMMI(TEL_ON, 8);
break;
case 11:
delay (5);
WriteMMI(LeftUP_ON, 8);
break;
case 12:
delay (5);
WriteMMI(LeftDown_ON, 8);
break;
case 13:
delay (5);
WriteMMI(RightUP_ON, 8);
break;
case 14:
delay (5);
WriteMMI(RightDown_ON, 8);
break;
case 15:
delay (5);
WriteMMI(SETUP_OFF, 8);
break;
case 16:
delay (5);
WriteMMI(CAR_OFF, 8);
break;
case 17:
delay (5);
WriteMMI(TEL_OFF, 8);
break;
case 18:
delay (5);
WriteMMI(LeftUP_OFF, 8);
break;
case 19:
delay (5);
WriteMMI(LeftDown_OFF, 8);
break;
case 20:
delay (5);
WriteMMI(RightUP_OFF, 8);
break;
case 21:
delay (5);
WriteMMI(RightDown_OFF, 8);
break;
case 22:
delay (5);
WriteMMI(RADIO_OFF, 8);
break;
case 23:
delay (5);
WriteMMI(NAVI_OFF, 8);
break;
}
otvet = 0;
}
if (MMIcom==1)
{
switch (ComID) // обрабатываем команды, Основные Case это 1 и 2 , остальные связаны с кнопками. Сейчас я их использую что бы зажигать лампочки возле кнопок.
// ************************************************** ************ впринципе их можно не использовать, либо использовать если нужна обработка длинных нажатий.
{
case 100:
SerialPrintKey();
MMI.write(06);
break;
case 1:
MMI.write(06);
otvet = 1;
break;
case 2:
MMI.write(06);
otvet = 2;
break;
case 3:
SerialPrintKey();
MMI.write(06);
break;
case 4:
SerialPrintKey();
MMI.write(06);
otvet = 3;
break;
case 5:
SerialPrintKey();
MMI.write(06);
break;
case 6:
SerialPrintKey();
MMI.write(06);
otvet = 4;
break;
case 7:
SerialPrintKey();
MMI.write(06);
break;
case 8:
SerialPrintKey();
MMI.write(06);
otvet = 5;
break;
case 9:
SerialPrintKey();
MMI.write(06);
break;
case 10:
SerialPrintKey();
MMI.write(06);
otvet = 6;
break;
case 11:
SerialPrintKey();
MMI.write(06);
break;
case 12:
SerialPrintKey();
MMI.write(06);
otvet = 7;
break;
case 13:
SerialPrintKey();
MMI.write(06);
break;
case 14:
SerialPrintKey();
MMI.write(06);
otvet = 8;
break;
case 15:
SerialPrintKey();
MMI.write(06);
break;
case 16:
SerialPrintKey();
MMI.write(06);
otvet = 9;
break;
case 17:
SerialPrintKey();
MMI.write(06);
break;
case 18:
SerialPrintKey();
MMI.write(06);
otvet = 10;
break;
case 19:
SerialPrintKey();
MMI.write(06);
break;
case 20:
SerialPrintKey();
MMI.write(06);
otvet = 15;
break;
case 21:
SerialPrintKey();
MMI.write(06);
break;
case 22:
SerialPrintKey();
MMI.write(06);
otvet = 16;
break;
case 23:
SerialPrintKey();
MMI.write(06);
break;
case 24:
SerialPrintKey();
MMI.write(06);
otvet = 17;
break;
case 25:
SerialPrintKey();
MMI.write(06);
otvet = 18;
break;
case 26:
SerialPrintKey();
MMI.write(06);
break;
case 27:
SerialPrintKey();
MMI.write(06);
otvet = 19;
break;
case 28:
SerialPrintKey();
MMI.write(06);
otvet = 20;
break;
case 29:
SerialPrintKey();
MMI.write(06);
otvet = 21;
break;
case 30:
SerialPrintKey();
MMI.write(06);
otvet = 22;
break;
case 31:
SerialPrintKey();
MMI.write(06);
break;
case 32:
SerialPrintKey();
MMI.write(06);
otvet = 23;
break;
case 33:
SerialPrintKey();
MMI.write(06);
break;
case 34:
SerialPrintKey();
MMI.write(06);
otvet = 11;
break;
case 35:
SerialPrintKey();
MMI.write(06);
break;
case 36:
SerialPrintKey();
MMI.write(06);
otvet = 12;
break;
case 37:
SerialPrintKey();
MMI.write(06);
break;
case 38:
SerialPrintKey();
MMI.write(06);
otvet = 13;
break;
case 39:
SerialPrintKey();
MMI.write(06);
break;
case 40:
SerialPrintKey();
MMI.write(06);
otvet = 14;
break;
}
MMIcom = 0;
MMI.flush();
}
}
void ReadMMI()
{
MMIreceiveByte = MMI.read(); //read 1-st byte Если 67 то это пульт
if (MMIreceiveByte==0x67)
{
MMIbyte[1]=0x67;
for (int i=2; i <= 7; i++)
{
MMIbyte[i] = MMI.read(); //read 2,3,4,5,6,7 bytes of data - читаем следующие байты
delay(Delay);
}
ComID=100; // по умолчанию не опознаный код
if(memcmp(MMIbyte, START_12V, 8) == 0 ){ComID=1;}
if(memcmp(MMIbyte, Pult_ON_Otvet, 8) == 0 ){ComID=2;}
if(memcmp(MMIbyte, NAVI_DOWN, 8) == 0 ){ComID=3;}
if(memcmp(MMIbyte, NAVI_1_DOWN, 8) == 0 ){ComID=4;}
if(memcmp(MMIbyte, INFO_DOWN, 8) == 0 ){ComID=5;}
if(memcmp(MMIbyte, INFO_1_DOWN, 8) == 0 ){ComID=6;}
if(memcmp(MMIbyte, CAR_DOWN, 8) == 0 ){ComID=7;}
if(memcmp(MMIbyte, CAR_1_DOWN, 8) == 0 ){ComID=8;}
if(memcmp(MMIbyte, SETUP_DOWN, 8) == 0 ){ComID=9;}
if(memcmp(MMIbyte, SETUP_1_DOWN, 8) == 0 ){ComID=10;}
if(memcmp(MMIbyte, RADIO_DOWN, 8) == 0 ){ComID=11;}
if(memcmp(MMIbyte, RADIO_1_DOWN, 8) == 0 ){ComID=12;}
if(memcmp(MMIbyte, MEDIA_DOWN, 8) == 0 ){ComID=13;}
if(memcmp(MMIbyte, MEDIA_1_DOWN, 8) == 0 ){ComID=14;}
if(memcmp(MMIbyte, NAME_DOWN, 8) == 0 ){ComID=15;}
if(memcmp(MMIbyte, NAME_1_DOWN, 8) == 0 ){ComID=16;}
if(memcmp(MMIbyte, TEL_DOWN, 8) == 0 ){ComID=17;}
if(memcmp(MMIbyte, TEL_1_DOWN, 8) == 0 ){ComID=18;}
if(memcmp(MMIbyte, LeftReturn_DOWN, 8) == 0 ){ComID=19;}
if(memcmp(MMIbyte, LeftReturn_1_DOWN, 8) == 0 ){ComID=20;}
if(memcmp(MMIbyte, Return_DOWN, 8) == 0 ){ComID=21;}
if(memcmp(MMIbyte, Return_1_DOWN, 8) == 0 ){ComID=22;}
if(memcmp(MMIbyte, RightReturn_DOWN, 8) == 0 ){ComID=23;}
if(memcmp(MMIbyte, RightReturn_1_DOWN, 8) == 0 ){ComID=24;}
if(memcmp(MMIbyte, Big_Left, 8) == 0 ){ComID=25;}
if(memcmp(MMIbyte, Big_DOWN, 8) == 0 ){ComID=26;}
if(memcmp(MMIbyte, Big_1_DOWN, 8) == 0 ){ComID=27;}
if(memcmp(MMIbyte, Big_Right, 8) == 0 ){ComID=28;}
if(memcmp(MMIbyte, Small_Left, 8) == 0 ){ComID=29;}
if(memcmp(MMIbyte, Small_Right, 8) == 0 ){ComID=30;}
if(memcmp(MMIbyte, Small_DOWN, 8) == 0 ){ComID=31;}
if(memcmp(MMIbyte, Small_1_DOWN, 8) == 0 ){ComID=32;}
if(memcmp(MMIbyte, LeftUP_DOWN, 8) == 0 ){ComID=33;}
if(memcmp(MMIbyte, LeftUP_1_DOWN, 8) == 0 ){ComID=34;}
if(memcmp(MMIbyte, LeftDown_DOWN, 8) == 0 ){ComID=35;}
if(memcmp(MMIbyte, LeftDown_1_DOWN, 8) == 0 ){ComID=36;}
if(memcmp(MMIbyte, RightUP_DOWN, 8) == 0 ){ComID=37;}
if(memcmp(MMIbyte, RightUP_1_DOWN, 8) == 0 ){ComID=38;}
if(memcmp(MMIbyte, RightDown_DOWN, 8) == 0 ){ComID=39;}
if(memcmp(MMIbyte, RightDown_1_DOWN, 8) == 0 ){ComID=40;}
MMIcom=1;
}
else
{
MMIcom=0;
}
MMI.flush();
}
void SerialPrintKey() //Вывод команды в сериал порт , тут можно привести ее к привычному для iCar виду
{
for (int x=1; x <= 7; x++){
Serial.print(MMIbyte[x], HEX);
Serial.print(" ");
}
Serial.println();
}
void WriteMMI(byte Mas[], int Byte) // Процедуры отправки команд на пульт
{
for (int i=0; i<Byte; i++) {
MMI.write(Mas[i]);
delay(2);
}
}
и видео того что получилось http://youtu.be/TGI83w3t2F8
http://youtu.be/TGI83w3t2F8
Работает на vBulletin® версия 3.8.4. Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot