рдЪреАрдиреА рдпреВрдПрд╕рдмреА рдЖрдИрдЖрд░ рдЯреНрд░рд╛рдВрд╕реАрд╡рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ


рдореИрдВ рдПрдХ рдЪреАрдиреА рдорд╛рдЗрдХреНрд░реЛрдпреВрдПрд╕рдмреА рдЖрдИрдЖрд░ рдЯреНрд░рд╛рдВрд╕реАрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛ рдерд╛, рдФрд░ рдЗрд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд╕рд╛рде рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдереАред рдЯреНрд░рд╛рдВрд╕реАрд╡рд░ рдорд╛рдЗрдХреНрд░реЛ USB рдХрдиреЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╣реБрдд рд╣реА рдХреЙрдореНрдкреИрдХреНрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ "рдЖрдзрд┐рдХрд╛рд░рд┐рдХ" рд╡рд┐рдХрд▓реНрдк рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИ рдЬрд┐рд╕реЗ рдЬрд╝реЗрдЬрд╝рд░рдореЛрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрдм рдПрдХ рдПрдбрд╛рдкреНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ HID- рд╕рдВрдЧрдд USB рдбрд┐рд╡рд╛рдЗрд╕ \ VID_10C4 & PID_8468 рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рдЖрдИрдбреА рд╕реЗ Googling рдиреЗ рдХреЛрдИ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджрд┐рдпрд╛, рдФрд░ рдореБрдЭреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЙрд▓рдЯ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред

рдЕрдорд╛рдиреНрдп рдЫреБрдкрд╛рдпрд╛ рдЧрдпрд╛


рдбрд┐рд╡рд╛рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ USB \ Class_03 рдФрд░ SubClass_FF & Prot_FF рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред Class_03 - рдЫрд┐рдкрд╛рдИ рдбрд┐рд╡рд╛рдЗрд╕, SubClass_FF - рд╡рд┐рдХреНрд░реЗрддрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯред Hidusb.sys рдбреНрд░рд╛рдЗрд╡рд░ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдк HID API рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реНрдХреЗрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛:

HidD_GetManufacturerString: "Tiqiaa"
HidD_GetProductString: "Tview"

HidP_GetCaps:
  Usage 1
  UsagePage ff00
  InputReportByteLength 61
  OutputReportByteLength 61
  FeatureReportByteLength 0
  NumberLinkCollectionNodes 1
  NumberInputButtonCaps 0
  NumberInputValueCaps 2
  NumberInputDataIndices 2
  NumberOutputButtonCaps 0
  NumberOutputValueCaps 2
  NumberOutputDataIndices 2
  NumberFeatureButtonCaps 0
  NumberFeatureValueCaps 0
  NumberFeatureDataIndices 0

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреЛ рдЕрдзрд┐рдХрддрдо 61 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдмреНрд▓реЙрдХ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, 2 рдЗрдирдкреБрдЯрд╡реИрд▓реНрдпреВ рдФрд░ 2 рдЖрдЙрдЯрдкреБрдЯрд╡реИрд▓реНрдпреВ рдЗрдВрдЯрд░рдлреЗрд╕ рд╣реИрдВред HidP_GetValueCaps рдлрд╝рдВрдХреНрд╢рди рдЙрди рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИ:

HidP_GetValueCaps(HidP_Input):
    UsagePage ff00
    ReportID fe
    LinkUsage 1
    LinkUsagePage ff00
    BitSize 8
    ReportCount 8

    UsagePage ff00
    ReportID 1
    LinkUsage 1
    LinkUsagePage ff00
    BitSize 8
    ReportCount 60

HidP_GetValueCaps(HidP_Output):
    UsagePage ff00
    ReportID fd
    LinkUsage 1
    LinkUsagePage ff00
    BitSize 8
    ReportCount 8

    UsagePage ff00
    ReportID 2
    LinkUsage 1
    LinkUsagePage ff00
    BitSize 8
    ReportCount 60

рдЗрд╕ рдбреЗрдЯрд╛ рдореЗрдВ рд╕реЗ, рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИрдВ ReportID - рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЖрдИрдбреА (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдбреЗрдЯрд╛ рдкреИрдХреЗрдЯ) рдФрд░ ReportCount - рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ред рдХреНрд░рдорд╢рдГ HidD_SetOutputReport рдФрд░ HidD_GetInputReport рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рднреЗрдЬрд╛ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд┐рднрд┐рдиреНрди ReportID рдФрд░ рдбреЗрдЯрд╛ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде, рдореИрдВ рдПрдХ рд╕рдлрд▓ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛ред USBPcap рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ USB рдкрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рдмрд╛рдж , рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред рдЗрд╕ рдмрд╛рдд рдкрд░ рд╕рдВрджреЗрд╣ рдерд╛ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЧрд▓рдд HID рд╣реИред


SET_REPORT рдЕрдиреБрд░реЛрдз рдЕрдиреБрддреНрддрд░рд┐рдд рд╣реЛ рдЧрдпрд╛

ZaZaRemote рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛ рдЙрд▓рдЯ рджреЗрдирд╛


рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдПрдкреАрдХреЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдореБрдЭреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп libtiqiaa_dev_usb.so рдорд┐рд▓рд╛ред рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ:

Java_com_icontrol_dev_TiqiaaUsbController_usbOpen
Java_com_icontrol_dev_TiqiaaUsbController_usbClose
Java_com_icontrol_dev_TiqiaaUsbController_usbSendCmd
Java_com_icontrol_dev_TiqiaaUsbController_usbSendIR
Java_com_icontrol_dev_TiqiaaUsbController_d

рдирд╛рдо рд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рд╡реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рд╡рд┐рдирд┐рдордп рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЖрднрд╛рд╕реА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рдЯреБрдХрдбрд╝реЗ рдЕрдХреНрд╕рд░ рдЙрдирдХреЗ рдХреЛрдб рдореЗрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ:

LDR     R3, [R0]
LDR     R3, [R3,#0x18]
BLX     R3

рд░рдЬрд┐рд╕реНрдЯрд░ R0 рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд╣рд▓рд╛ рддрд░реНрдХ рд╣реИред рдпреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ Java classes.dex рдХреЛрдб рд╕реЗ рдХрд╣реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рдХреЗ, рд╣рдо рдЙрдирдХрд╛ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:

private native boolean usbOpen(Context context);
private native void usbClose();
private native boolean usbSendCmd(UsbDeviceConnection usbdeviceconnection, UsbEndpoint usbendpoint, int j, int k);
private native boolean usbSendIR(Context context, UsbDeviceConnection usbdeviceconnection, UsbEndpoint usbendpoint, int j, byte abyte0[], int k);
private native IControlIRData d(byte abyte0[]);

рдЬрд╛рд╡рд╛ рдХреЛрдб рдХреЛ рдмрд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рдирд╛рдо рдЕрднреА рднреА рдЬреАрд╡рд┐рдд рд╣реИрдВред рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдУрдлрд╝реНрдлрд╝реНрдпреВрд╕рдХрд░ рдиреЗ рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рдЦрд░рд╛рдм рдХрд░ рджрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЦреНрдп рдЬрд╛рд╡рд╛ рдХреЛрдб рдореЗрдВ рд▓рдЧрднрдЧ рд╕рднреА рдирд╛рдо рджреВрд╖рд┐рдд рдереЗред

рдЬрд╛рд╡рд╛ рдХреЗ рдХреЛрдб рдХрд╛ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╡рд┐рдШрдЯрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдорд┐рд▓реАрдВ:

com.tiqiaa.icontrol.e.i.a("DeviceHolder", (new StringBuilder("send......cmdType=")).append(i1).append(",cmdId=").append(j1).toString());
boolean flag1 = a.b(i1, j1);

com.tiqiaa.icontrol.e.i.d("DeviceHolder", (new StringBuilder("send....................freq=")).append(i1).append(",cmdId=").append(j1).append(",buffer.length=").append(abyte0.length).append(" , device = ").append(a).toString());
boolean flag1 = a.a(i1, abyte0, j1);

рдбрд┐рдмрдЧ рд▓реЙрдЧ рдПрдХ рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рджреЛрд╕реНрдд рд╣реИред

рдЬрд╛рд╡рд╛ рдХреЛрдб рд╕реЗ рджреЗрд╢реА рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛ рдиреЗрдЯрд┐рд╡ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:

extern "C" JNIEXPORT void JNICALL Java_ClassName_MethodName(JNIEnv *env, jobject obj, <java arguments>)

рдЕрдм рдЖрдк рдЖрдИрдбреАрдП рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

bool __cdecl Java_com_icontrol_dev_TiqiaaUsbController_usbOpen(JNIEnv *env, jobject obj, struct Context *context);
void __cdecl Java_com_icontrol_dev_TiqiaaUsbController_usbClose(JNIEnv *env, jobject obj);
bool __cdecl Java_com_icontrol_dev_TiqiaaUsbController_usbSendCmd(JNIEnv *env, jobject obj, struct UsbDeviceConnection *usbdeviceconnection, struct UsbEndpoint *usbendpoint, int cmdType, int cmdId);
bool __cdecl Java_com_icontrol_dev_TiqiaaUsbController_usbSendIR(JNIEnv *env, jobject obj, struct Context *context, struct UsbDeviceConnection *usbdeviceconnection, struct UsbEndpoint *usbendpoint, int freq, jbyte buffer, int cmdId);
struct IControlIRData *__cdecl Java_com_icontrol_dev_TiqiaaUsbController_d(JNIEnv *env, jobject obj, jbyteArray buffer);

рдЕрдм HexRays decompiler JNI рдХреЙрд▓ рдХреЛ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ рдФрд░ рдХреЛрдб рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрд░реЛрдХреНрдд рдХреЙрд▓ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╡рд┐рдШрдЯрд┐рдд рд╣реИ:

v5 = ((int (*)(void))(*env)->FindClass)();

UsbSendCmd рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡рд┐рдШрдЯрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ
bool __cdecl Java_com_icontrol_dev_TiqiaaUsbController_usbSendCmd(JNIEnv *env, jobject obj, struct UsbDeviceConnection *usbdeviceconnection, struct UsbEndpoint *usbendpoint, int cmdType, int cmdId)
{
  char v6; // r5@5
  bool result; // r0@12
  char data[24]; // [sp+8h] [bp-18h]@12

  dword_B57C = 0;
  if ( UsbEndpoint_bulkTransfer )
  {
    if ( usbdeviceconnection )
    {
      if ( usbendpoint )
      {
        switch ( cmdType )
        {
          case 0:
            v6 = 'L';
            goto LABEL_12;
          case 2:
            v6 = 'R';
            goto LABEL_12;
          case 3:
            v6 = 'H';
            goto LABEL_12;
          case 4:
            v6 = 'O';
            goto LABEL_12;
          case 6:
            v6 = 'C';
            goto LABEL_12;
          case 7:
            v6 = 'V';
            goto LABEL_12;
          case 1:
            v6 = 'S';
LABEL_12:
            data[0] = 'S';
            data[1] = 'T';
            data[3] = v6;
            data[2] = cmdId;
            data[4] = 'E';
            data[5] = 'N';
            result = sub_3528(env, usbdeviceconnection, usbendpoint, data, 6);
            break;
          default:
            result = 0;
            break;
        }
      }
      else
      {
        result = 0;
      }
    }
    else
    {
      result = 0;
    }
  }
  else
  {
    result = UsbEndpoint_bulkTransfer;
  }
  return result;
}

рдХреЛрдб рдкреНрд░рд╛рдердорд┐рдХ рд╣реИ, рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рд░реВрдк рд╕реНрдкрд╖реНрдЯ рд╣реИ: рдпрд╣ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ "рдПрд╕рдЯреА" рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдлрд┐рд░ рдХрдорд╛рдВрдб рдкреНрд░рдХрд╛рд░ рдХрд╛ рдмрд╛рдЗрдЯ рдЖрддрд╛ рд╣реИ - рд╡рд░реНрдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ {'L', 'R', 'H', 'O', 'C', 'V', 'S' '}, рдлрд┐рд░ рдмрд╛рдЗрдЯ cmdId (рдХрдорд╛рдВрдб рдФрд░ рдореИрдЪ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛) рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ "EN" рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдЙрддреНрдкрдиреНрди рд╕рдВрджреЗрд╢ рдЙрдк_3528 рджреНрд╡рд╛рд░рд╛ рднреЗрдЬрд╛ рдЧрдпрд╛ рд╣реИред

рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб sub_3528
int __cdecl sub_3528(JNIEnv *env, struct UsbDeviceConnection *usbdeviceconnection, struct UsbEndpoint *usbendpoint, void *data, int size)
{
  JNIEnv v5; // r1@1
  JNIEnv *v6; // r4@1
  int result; // r0@2
  int v8; // r2@3
  int tsize; // r7@5
  size_t fragmSize; // r5@9
  int v11; // r0@11
  JNIEnv v12; // r3@11
  int v13; // r6@11
  int rdOffs; // [sp+10h] [bp-80h]@7
  int v15; // [sp+14h] [bp-7Ch]@15
  int jbyteArray; // [sp+18h] [bp-78h]@1
  int fragmCnt; // [sp+1Ch] [bp-74h]@7
  char *_data; // [sp+28h] [bp-68h]@1
  char buf[64]; // [sp+34h] [bp-5Ch]@7
  int _stack_chk_guard; // [sp+74h] [bp-1Ch]@1

  _data = (char *)data;
  v5 = *env;
  v6 = env;
  _stack_chk_guard = ::_stack_chk_guard;
  jbyteArray = ((int (*)(void))v5->NewByteArray)();
  if ( jbyteArray )
  {
    v8 = UsbPackCounter + 1;
    if ( UsbPackCounter + 1 > 15 )
      v8 = 1;
    tsize = size;
    UsbPackCounter = v8;
    if ( size > 1024 )
      tsize = 1024;
    j_j_memset(buf, 0, 0x40u);
    buf[0] = 2;
    buf[3] = (tsize / 56 & 0x7F)
           + ((((tsize + -56 * (tsize / 56 & 0x7F)) >> 31) - (tsize + -56 * (tsize / 56 & 0x7Fu))) >> 31);
    rdOffs = 0;
    fragmCnt = 0;
    buf[2] = UsbPackCounter;
    while ( 1 )
    {
      if ( rdOffs >= tsize )
        goto LABEL_25;
      fragmCnt = (fragmCnt + 1) & 0xFF;
      fragmSize = tsize - rdOffs;
      if ( tsize - rdOffs > 56 )
        fragmSize = 56;
      buf[1] = fragmSize + 3;
      buf[4] = fragmCnt;
      j_j_memcpy(&buf[5], &_data[rdOffs], fragmSize);
      ((void (__fastcall *)(JNIEnv *, int, _DWORD, signed int))(*v6)->SetByteArrayRegion)(v6, jbyteArray, 0, 61);
      v11 = ((int (__fastcall *)(JNIEnv *))(*v6)->ExceptionCheck)(v6);
      v12 = *v6;
      v13 = v11;
      if ( v11 )
      {
        ((void (__fastcall *)(JNIEnv *))v12->ExceptionClear)(v6);
        v13 = 0;
        goto return_r6_del;
      }
      if ( !dword_B2A4 )
      {
LABEL_25:
        v13 = 1;
        goto return_r6_del;
      }
      v15 = ((int (__fastcall *)(JNIEnv *))v12->CallIntMethod)(v6);
      if ( ((int (__fastcall *)(JNIEnv *))(*v6)->ExceptionCheck)(v6) )
      {
        ((void (__fastcall *)(JNIEnv *))(*v6)->ExceptionClear)(v6);
        goto return_r6_del;
      }
      if ( v15 < 0 )
        break;
      rdOffs += fragmSize;
    }
    v13 = 0;
return_r6_del:
    ((void (__fastcall *)(JNIEnv *, int))(*v6)->DeleteLocalRef)(v6, jbyteArray);
    result = v13;
  }
  else
  {
    ((void (__fastcall *)(JNIEnv *))(*v6)->ExceptionClear)(v6);
    result = 0;
  }
  if ( _stack_chk_guard != ::_stack_chk_guard )
    j_j___stack_chk_fail(result);
  return result;
}


рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рднреЗрдЬреЗ рдЧрдП рд╕рдВрджреЗрд╢ рдХреА рдЕрдзрд┐рдХрддрдо рд▓рдВрдмрд╛рдИ 1024 рдмрд╛рдЗрдЯреНрд╕ рддрдХ рд╕реАрдорд┐рдд рд╣реИред рд╕рдВрджреЗрд╢ рдХреЛ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдВрд╢ рдореЗрдВ рд╣реЗрдбрд░ рдХреЗ 5 рдмрд╛рдЗрдЯреНрд╕ рдФрд░ рдбреЗрдЯрд╛ рдХреА рдЕрдзрд┐рдХрддрдо 56 рдмрд╛рдЗрдЯреНрд╕ рд╣реЛрддреА рд╣реИрдВ - рдХреБрд▓ 61 рдмрд╛рдЗрдЯреНрд╕ред рд╢реАрд░реНрд╖рд▓реЗрдЦ рд╕рдВрд░рдЪрдирд╛:

  • buf [0] = 2 рдПрдХ рд╕реНрдерд┐рд░ рд╣реИред рд░рд┐рдкреЛрд░реНрдЯ 2 рдпрд╛рдж рд╣реИ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣ рд╣реИред рдФрд░ ReportCount 60 - рд╢реЗрд╖ рдбреЗрдЯрд╛ рдХрд╛ рдЖрдХрд╛рд░ - рднреА рд╕рдорд╛рди рд╣реИред
  • buf [1] = arommize + 3 - рдЯреБрдХрдбрд╝рд╛ рдбреЗрдЯрд╛ рдЖрдХрд╛рд░ + 3, рдЕрд░реНрдерд╛рдд рдЗрд╕ рдЪрд░ рдХреЗ рдмрд╛рдж рдмрд╛рдЗрдЯ рд╕реЗ рдЖрдХрд╛рд░ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред
  • buf [2] = UsbPackCounter рд╕рд┐рд░реНрдл рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рд╣реИ, 1..15ред
  • рдлреИрдВрд╕реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдЧрдгрдирд╛ рдХреА рдЧрдИ buf [3] рдХрд╛ рдореВрд▓реНрдп рд╕рд┐рд░реНрдл рдЯреБрдХрдбрд╝реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдЖрдк рдЗрд╕реЗ рдЗрд╕ рд░реВрдк рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

    buf[3] = tsize / 56;
    if (tsize % 56) buf[3]++;
  • buf [рек] = arommCnt - рдЯреБрдХрдбрд╝рд╛ рд╕рдВрдЦреНрдпрд╛, рез.buf [рей]ред

рдлреЙрд░реНрдо рдХреЗ рдЯреБрдХрдбрд╝реЗ CallIntMethod рдкрд░ рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:

jint (JNICALL *CallIntMethod)(JNIEnv *env, jobject obj, jmethodID methodID, ...);

рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ HexRays рдиреЗ рдЗрд╕ рдмрд╛рд░ рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд┐рдпрд╛ - рддрд░реНрдХреЛрдВ рдореЗрдВ рдХреЗрд╡рд▓ v6 = JNIEnv * envред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреЛрдбрд╛рдВрддрд░рдХ рдХреЛрдб рдореЗрдВ рд╕рдм рдХреБрдЫ рд╣реИ:

LDR     R2, [R2,#(dword_B2A4 - 0xB284)] ; jmethodID methodID

MethodID рдХреЛ dword_B2A4 рдЪрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рд╕реЗ рдЖрдпрд╛ рд╣реИ:



рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ usbOpen рдФрд░ usbClose рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╣рдореЗрдВ usbOpen рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред

рд╡рд╛рдВрдЫрд┐рдд рдЯреБрдХрдбрд╝рд╛:

v27 = ((int (__fastcall *)(JNIEnv *, int, const char *, const char *))(*v4)->GetMethodID)(
        v4,
        v26,
        "bulkTransfer",
        "(Landroid/hardware/usb/UsbEndpoint;[BII)I");
dword_B2A4 = v27;

рддреЛ рдпрд╣ UsbEndpoint :: рдмрд▓реНрдХ рдЯреНрд░рд╛рдиреНрд╕рдлрд╝рд░ рд╡рд┐рдзрд┐ рд╣реИред рдФрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ - рдЫрд┐рдкрд╛рдИ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд!

рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ IR рдХреЛрдб рдХреИрд╕реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ - usbSendIR рдлрд╝рдВрдХреНрд╢рдиред

рдпрд╣ рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЯреАрдо рдХреЗ рд╕рд╛рде рд╕рдВрджреЗрд╢ рдмрдирд╛рдиреЗ рд╡рд╛рд▓рд╛ рдХреНрд╖реЗрддреНрд░ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

UsbSendIR рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдлреНрд░реИрдЧрдореЗрдВрдЯ
  buf[0] = 'S';
  buf[1] = 'T';
  buf[2] = cmdId;
  buf[3] = 'D';
  if ( freq > 255 )
  {
    LOBYTE(v36) = 0;
    v37 = -1;
    v38 = 0;
    while ( 1 )
    {
      v39 = (freq - IrFreqTable[v38] + ((freq - IrFreqTable[v38]) >> 31)) ^ ((freq - IrFreqTable[v38]) >> 31);
      if ( v37 != -1 && v39 >= v37 )
      {
        v39 = v37;
      }
      else
      {
        LOBYTE(v36) = v38;
        if ( !v39 )
          break;
      }
      if ( ++v38 == 30 )
        break;
      v37 = v39;
    }
  }
  else
  {
    v36 = (unsigned int)(freq - 1) <= 0x1C ? freq : 0;
  }
  buf[4] = v36;
  v40 = &buf[v22];
  v40[5] = 'E';
  v40[6] = 'N';

рдЕрдиреНрдп рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ "рдПрд╕рдЯреА" рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рдж cmdId рдФрд░ рдХрдорд╛рдВрдб рдХреЛрдб 'рдбреА', рдлрд┐рд░ рдмрд╛рдЗрдЯ рдЬреЛ рдЖрд╡реГрддреНрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ - рдпрджрд┐ рддрд░реНрдХ рдлреНрд░реАрдХ> 255 рд╣реИ - рддреЛ рдЗрд╕реЗ рдлреНрд░реАрдХреНрд╡реЗрдВрд╕реА рдЯреЗрдмрд▓ рдЗрд░рдлреНрд░реЗрдбреЗрдмрд▓ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЗрд╕реЗ рд╕реАрдзреЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рдбреЗрдЯрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдм рдХреБрдЫ "рдПрди" рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

рдореЛрдЯреЗ рдирд╛рдо "рдбреА" рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдкрд╛рд░реНрд╕рд░ рдирд┐рдХрд▓рд╛ред

рдЪрд╛рд▓рдХ рдХреЛ рдмрджрд▓рдирд╛ рдФрд░ рдмрд▓реНрдХ рдЯреНрд░рд╛рдВрд╕рдлрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛


рдЫрд┐рдкрд╛рдИ рдПрдкреАрдЖрдИ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдмрд▓реНрдХ рдЯреНрд░рд╛рдиреНрд╕рдлрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЪрд╛рд▓рдХ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред WinUsb рдбреНрд░рд╛рдЗрд╡рд░ рдЗрд╕ рдЙрдкрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ ред
Inf рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ WinUsb рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реБрдИ - рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП (WinUsb_WritePipe рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ), рдПрдХ рд╕рдорд╛рди рдкреНрд░рд╛рд░реВрдк рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдИред

рдЬрд╝рд╛рдЬреНрд░рд╛рдореЛрдЯреЗ рдХреЗ рд╕рд╛рде рдбрдВрдк рд╡рд┐рдирд┐рдордп


рдкрд┐рдЫрд▓реА рд╕рдлрд▓рддрд╛рдУрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЕрднреА рддрдХ рдореИрдВ рдореБрдЦреНрдп рдЪреАрдЬ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реБрдЖ рд╣реВрдВ - рдЖрдИрдЖрд░ рдХрдорд╛рдВрдб рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрд╣реБрдд рдмрдбрд╝рд╛ рдФрд░ рднреНрд░рдорд┐рдд рдерд╛ рдФрд░ рдмрд╕ USB рдЯреНрд░реИрдлрд╝рд┐рдХ рдбрдВрдк рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдРрд╕рд╛ рдХреИрд╕реЗ рдХрд░реЗрдВ? рд╡рд░реНрдЪреБрдЕрд▓рдмреЙрдХреНрд╕-рдИ рдкрд░ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ Android-x86 рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛ред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ x86 рдХрднреА рдПрдЖрд░рдПрдо рдирд╣реАрдВ рд╣реИ, рдлрд┐рд░ рднреА рдпрд╣ рдЖрдкрдХреЛ рдореВрд▓ рдПрдЖрд░рдПрдо рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рдореВрд▓ рдирд┐рд╡рд╛рд╕реА рддрдВрддреНрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЖрд╡рд╢реНрдпрдХ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдХреЗ, рдореИрдВ VirtualBox рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рдЕрдиреБрд░реЛрдзрд┐рдд рдЕрдиреБрдорддрд┐рдпрд╛рдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд░рддреА рд╣реИрдВред


рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдХреЗ рдФрд░ USB рдЕрдЧреНрд░реЗрд╖рдг рд╕реЗрдЯ рдХрд░рдХреЗ, рдореИрдВ USB рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕реВрдБрдШрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЖрдИрдЖрд░ рдХрдорд╛рдВрдб рдХреЗ рд░рд┐рд╕реЗрдкреНрд╢рди рдФрд░ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЖрдИрдЖрд░ рдкреИрдХреЗрдЯ рдХреЗ рдирдореВрдирд╛ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдХрд╛ рдПрдХ рдХреНрд░рдо рдорд┐рд▓рд╛ред

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рди рдХреЗрд╡рд▓ рд╕рдВрдЪрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рдмрд▓реНрдХрд┐ рдЖрдИрдЖрд░ рдХрдорд╛рдВрдб рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд░рд┐рд╕реЗрдкреНрд╢рди рдиреЗ рдмрд╣реБрдд рдХрд╛рдо рдХрд┐рдпрд╛ - 10 рд╕реЗрдореА рдХреА рджреВрд░реА рд╕реЗ, рдФрд░ рдлрд┐рд░ рд╣рд░ рджреВрд╕рд░реЗ рд╕рдордпред

рдПрдХреНрд╕рдЪреЗрдВрдЬ рдЙрджрд╛рд╣рд░рдг
- :

OUT:
0040 02 09 01 01 01 53 54 12 56 45 4e .....ST.VEN

IN:
0040 01 30 07 01 01 53 54 12 56 30 01 30 30 30 30 30 .0...ST.V0.00000
0050 30 30 30 2d 30 30 30 30 2d 30 30 30 30 2d 30 30 000-0000-0000-00
0060 30 30 2d 30 30 30 30 30 30 30 30 30 30 30 31 09 00-000000000001.
0070 45 4e ff ff ff df ff f9 ef ff df ff bf fb ff EN.............

OUT:
0040 02 09 02 01 01 53 54 13 53 45 4e .....ST.SEN

IN:
0040 01 0a 08 01 01 53 54 13 53 09 45 4e 30 30 30 30 .....ST.S.EN0000
0050 30 30 30 2d 30 30 30 30 2d 30 30 30 30 2d 30 30 000-0000-0000-00
0060 30 30 2d 30 30 30 30 30 30 30 30 30 30 30 31 09 00-000000000001.
0070 45 4e ff ff ff df ff f9 ef ff df ff bf fb ff EN.............

OUT:
0040 02 3b 03 02 01 53 54 14 44 00 ff ff ff ff b7 7f .;...ST.D.......
0050 7f 1b a3 23 a3 23 a3 69 a3 23 a3 23 a3 23 a3 23 ...#.#.i.#.#.#.#
0060 a3 23 a3 69 a3 69 a3 23 a3 69 a3 69 a3 69 a3 69 .#.i.i.#.i.i.i.i
0070 a3 69 a3 69 a3 23 a3 23 a3 23 a3 69 a3 .i.i.#.#.#.i.

OUT:
0040 02 2f 03 02 02 23 a3 23 a3 23 a3 23 a3 69 a3 69 ./...#.#.#.#.i.i
0050 a3 69 a3 23 a3 69 a3 69 a3 69 a3 7f 7f 7f 7f 7f .i.#.i.i.i......
0060 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 57 45 ..............WE
0070 4e N

IN:
0040 01 0a 09 01 01 53 54 14 4f 09 45 4e 30 30 30 30 .....ST.O.EN0000
0050 30 30 30 2d 30 30 30 30 2d 30 30 30 30 2d 30 30 000-0000-0000-00
0060 30 30 2d 30 30 30 30 30 30 30 30 30 30 30 31 09 00-000000000001.
0070 45 4e ff ff ff df ff f9 ef ff df ff bf fb ff EN.............

- :

OUT:
0040 02 09 01 01 01 53 54 17 56 45 4e .....ST.VEN

IN:
0040 01 30 0c 01 01 53 54 17 56 30 01 30 30 30 30 30 .0...ST.V0.00000
0050 30 30 30 2d 30 30 30 30 2d 30 30 30 30 2d 30 30 000-0000-0000-00
0060 30 30 2d 30 30 30 30 30 30 30 30 30 30 30 31 09 00-000000000001.
0070 45 4e ff ff ff df ff f9 ef ff df ff bf fb ff EN.............

OUT:
0040 02 09 02 01 01 53 54 18 53 45 4e .....ST.SEN

0040 01 0a 0d 01 01 53 54 18 53 09 45 4e 30 30 30 30 .....ST.S.EN0000
0050 30 30 30 2d 30 30 30 30 2d 30 30 30 30 2d 30 30 000-0000-0000-00
0060 30 30 2d 30 30 30 30 30 30 30 30 30 30 30 31 09 00-000000000001.
0070 45 4e ff ff ff df ff f9 ef ff df ff bf fb ff EN.............

OUT:
0040 02 09 03 01 01 53 54 19 52 45 4e .....ST.REN

0040 01 0a 0e 01 01 53 54 19 52 13 45 4e 30 30 30 30 .....ST.R.EN0000
0050 30 30 30 2d 30 30 30 30 2d 30 30 30 30 2d 30 30 000-0000-0000-00
0060 30 30 2d 30 30 30 30 30 30 30 30 30 30 30 31 09 00-000000000001.
0070 45 4e ff ff ff df ff f9 ef ff df ff bf fb ff EN.............

OUT:
0040 02 09 04 01 01 53 54 1a 43 45 4e .....ST.CEN

IN:
0040 01 0a 0f 01 01 53 54 1a 43 13 45 4e 30 30 30 30 .....ST.C.EN0000
0050 30 30 30 2d 30 30 30 30 2d 30 30 30 30 2d 30 30 000-0000-0000-00
0060 30 30 2d 30 30 30 30 30 30 30 30 30 30 30 31 09 00-000000000001.
0070 45 4e ff ff ff df ff f9 ef ff df ff bf fb ff EN.............

OUT:
0040 02 09 05 01 01 53 54 1b 4f 45 4e .....ST.OEN

IN:
0040 01 3b 01 0e 01 53 54 00 44 ff ff ff ff ba 7f 7f .;...ST.D.......
0050 19 a4 21 a4 21 a4 68 a4 22 a4 21 a4 22 a4 22 a4 ..!.!.h.".!.".".
0060 22 a4 68 a4 68 a4 21 a4 68 a4 68 a4 68 a4 68 a4 ".h.h.!.h.h.h.h.
0070 68 a4 68 a4 22 a4 22 a4 22 a4 68 a4 22 fb ff h.h.".".".h."..
.....
0040 01 2f 01 0e 0e 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f ./..............
0050 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f ................
0060 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 3e 13 45 .............>.E
0070 4e 82 02 82 02 82 7f 7f 7f 7f 7f 7f 7f fb ff N..............

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ - рдЬрд╡рд╛рдм рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЛрдИ рднреА рдХрдЪрд░рд╛ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЖрдорддреМрд░ рдкрд░ рдкрд┐рдЫрд▓реЗ рдкреИрдХреЗрдЬ рд╕реЗ рдХреНрдпрд╛ рдмрдЪрд╛ рд╣реИред

рдбрдВрдк рдФрд░ рдмрд╛рдж рдХреЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рд╕реЗ рд╕рднреА рдЯреАрдореЛрдВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛:

  • 'V' - рд╕рдВрд╕реНрдХрд░рдг - рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз - рдореЗрд░рд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдПрдХ рд╢реВрдиреНрдп GUID рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ;
  • 'L' - IdleMode - рд╕реНрдЯреИрдВрдбрдмрд╛рдп рдореЛрдб - рдЗрд╕ рдореЛрдб рдореЗрдВ, рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреЗ рдмрд╛рдж рдбрд┐рд╡рд╛рдЗрд╕ рд╕реНрдерд┐рдд рд╣реИ, рдпрд╛ рдЗрд╕ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдЬрд╛рддрд╛ рд╣реИ;
  • 'S' тАФ SendMode тАФ тАФ ;
  • 'R' тАФ RecvMode тАФ тАФ ;
  • 'D' тАФ Data тАФ тАФ , тАФ ;
  • 'O' тАФ Output тАФ тАФ , тАФ / ;
  • 'C' тАФ Cancel тАФ тАФ , 'O';
  • 'H' тАФ Unknown тАФ .


рдирд┐рдпрдВрддреНрд░рдг рдХрдорд╛рдВрдб рдФрд░ IR рдкрд╛рд░реНрд╕рд▓ рдХрд╛ рдПрдХ рдбрдВрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдПрдХ рдЖрдИрдЖрд░ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╡рд┐рдХрд╕рд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдордирдорд╛рдирд╛ рдЖрдИрдЖрд░ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рд╕рдВрд╢реНрд▓реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдПрдиреНрдХреЛрдбреЗрдб рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдЖрдИрдЖрд░ рдлреЛрдЯреЛрдбреЗрдЯреЗрдХреНрдЯрд░ рдХреЛ рдПрдХ рдЖрд╕реНрдЯрд╕реАрд▓рд╕реНрдХрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдФрд░ рднреЗрдЬреЗ рдЧрдП рд╕рдВрдХреЗрддреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдкреНрд░рдпреЛрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк: рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдЗрдЯ рдХрд╛ рдЙрдЪреНрдЪ рдмрд┐рдЯ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ рдЪрд╛рд▓реВ рд╣реИ рдпрд╛ рдмрдВрдж рд╣реИ, рдФрд░ рдирд┐рдЪрд▓реЗ 7 рдмрд┐рдЯреНрд╕ рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╕рдордп рдХреА рдЗрдХрд╛рдИ 16 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдереАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: 8A - рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ 160 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдЪрд╛рд▓реВ рд╣реИ; 8 рдП 05 рдПрдлрдПрдл 83 - 160 ╬╝s рдкрд░, 80 ╬╝s, 2.08 рдПрдордПрд╕ рдкрд░ рд░реЛрдХреЗрдВред

рдЬрдм рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдПрд▓рдИрдбреА ~ 36.64 kHz рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рд╕реНрдкрдВрджрд┐рдд рд╣реЛрддрд╛ рд╣реИред рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, рдЗрд╕ рдЖрд╡реГрддреНрддрд┐ рдХреЛ usbSendIR рдХрдорд╛рдВрдб рдХреЗ рдлреНрд░реАрдХ рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдкреНрд░рдпреЛрдЧреЛрдВ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдЗрд╕ рддрд░реНрдХ рдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдлрд┐рд░ рднреА, рдореЗрд░реЗ рдШрд░реЗрд▓реВ рдЙрдкрдХрд░рдгреЛрдВ рдиреЗ рдЖрдо рддреМрд░ рдкрд░ рдЗрд╕ рдЯреНрд░рд╛рдиреНрд╕реАрд╡рд░ рдХреЗ рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ред
рдкреНрд░рд╛рдкреНрдд рдореЛрдб рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рд╕рдорд╛рди рд╣реЛ рдЧрдпрд╛ред

TiqiaaUsbIr рд╡рд░реНрдЧ рдФрд░ рдЖрдИрдЖрд░ рдирд┐рдпрдВрддреНрд░рдг


рдореИрдВрдиреЗ C ++ TiqiaaUsbIr рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЯреНрд░рд╛рдВрд╕реАрд╡рд░ рдХрдВрдЯреНрд░реЛрд▓ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рд╕рд░рд▓ рдХреИрдкреНрдЪрд░ рдХреНрдпреВрдЯреА рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрд╛ред рдЖрдИрдЖрд░ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рдПрдирдИрд╕реА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рд╕рдВрд╢реНрд▓реЗрд╖рдг рдФрд░ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдЗрд╕ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрд▓рдЬреА рдЯреАрд╡реА рдХреЗ рд░рд┐рдореЛрдЯ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдореВрд▓ рдкреНрд░рд╛рд░реВрдк рдФрд░ LIRC рдкреНрд░рд╛рд░реВрдк рдореЗрдВ IR рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рдФрд░ рд▓реЛрдб рдХрд░рдирд╛ рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред WinLirc рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЯреЗрдврд╝рд╛ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдПрдкреАрдЖрдИ рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдлрд┐рд▓рд╣рд╛рд▓ рдХреЗ рд▓рд┐рдП рдЯрд╛рд▓ рджрд┐рдпрд╛ рд╣реИред

рд╕реНрд░реЛрдд рдФрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдпрд╣рд╛рдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред

TiqiaaUsbIr рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:

std::vector<std::string> IrDev;
TiqiaaUsbIr::EnumDevices(IrDev); //  
TiqiaaUsbIr Ir;
Ir.Open(IrDev[0].c_str()); //  
Ir.SendNecSignal(0x0408); //   (LG POWER)
Ir.Close();

рдХреИрдкреНрдЪрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкрд╛рд╡рд░-рдСрди рд╕рд┐рдЧреНрдирд▓:



рдпрд╣ рд╕рдВрд╢реНрд▓реЗрд╖рд┐рдд рд╣реИ:



рдХреИрдкреНрдЪрд░ рдХреЗ рджреМрд░рд╛рди, рдХреБрдЫ рдЧрд▓рдд рд╣реБрдЖ:



рд╕рд╛рд░рд╛рдВрд╢


рд╢реЛрдз рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдЯрд╛рдХрд┐рдпрд╛рдЖ Tview IR рдЯреНрд░рд╛рдиреНрд╕реАрд╡рд░ рдХрд╛ USB рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд╣рд╛рд▓ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░ рдФрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреА рдПрдХ inf рдлрд╛рдЗрд▓ рд▓рд┐рдЦреА рдЧрдИ рдереАред

рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдИрдЖрд░ рдЯреНрд░рд╛рдиреНрд╕реАрд╡рд░ рдШрд░реЗрд▓реВ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕рдХреЗ рдЖрдИрдЖрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╕рд╕реНрддрд╛, рд╕рд╕реНрддреА рдФрд░ рдХреЙрдореНрдкреИрдХреНрдЯ ($ 5, рдЕрд▓реА, рдЖрдпрд╛рдо 15 x 10 x 5 рдорд┐рдореА) рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реЛ рдЧрдпрд╛, рдЬрд┐рд╕рд╕реЗ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд╣реАрдВ рд╣реБрдИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рд╕реВрдХреНрд╖реНрдо рд░рд┐рд╕реАрд╡рд░ рдХреЗ рд╕рд╛рде рдПрдХ рддрдХрдиреАрдХ рд╣реИред

рд░рд┐рд╕реЗрдкреНрд╢рди рдореЛрдб, рдореЗрдЬрд╝рд░ рддреНрд░рд┐рдЬреНрдпрд╛ рдФрд░ рдХрдо рдХреИрдкреНрдЪрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рдХрд╛рд░рдг, рдкреВрд░реНрдг рдЖрдИрдЖрд░ IR рд░рд┐рд╕реАрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкрдпреБрдХреНрдд рд╣реИ - ~ 30 рд╕реЗрдореА рдХреА рд╕рдлрд▓ рдХреИрдкреНрдЪрд░ рджреВрд░реА рдХрд╛ рд░рд┐рдХреЙрд░реНрдб, рдЬрдмрдХрд┐ рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдмрд┐рд▓реНрдХреБрд▓ рд░рд┐рд╕реАрд╡рд░ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рднреА рдлреЛрдХрд╕ рд╕рд┐рдЧреНрдирд▓ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХреИрдкреНрдЪрд░ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЖрдИрдЖрд░ рд░реАрдореЛрдЯ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред

рдмрдХреНрд╢реАрд╢


рдПрд▓рдЬреА рдЯреАрд╡реА рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рдЖрдИрдЖрд░ рдХреЛрдб: рдкреАрдПрд╕ рдореИрдВ рдПрд▓рдЬреА рдПрдХреНрд╕реЗрд╕рдпреВрдПрд╕рдмреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╣рд╛рдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА ред

POWER 0408
POWERON 04C4
POWEROFF 04C5
IN_STOP 04FA
IN_START 04FB
POWERONLY 04FE
EZ_ADJUST 04FF



All Articles