[Dashboard\China\Geely\MK 24C02]


Size(280,270); 
Form
{
    Group("Пробег",5,13,120,50)
    {
        Digit(Distance," ",5,18,70);
        Label(lbkm,"KM",90,20);
    }
    Group("Информация",5,80,270,45) 
    {
        Label(msg," ",0,18);
    }    
    Group("Описание",5,130,270,90) 
    {
        Label(lb1,"Калькулятор пробега для Geely MK.",0,20);
        Label(lb2,"EEPROM  24C02.",0,35);
        Label(lb3,"Введите нужное значение в окне <Пробег>.",0,50);
        Label(lb4,"Нажмите кнопку <Применить>.",0,65);
    }
     Picture(Logo,"Geely.bmp",170,10,0,0);
}

OnShow 
{
      Var0 = 0; //СЮДА ЗАНЕСЕМ МАКСИМАЛЬНОЕ ЗНАЧЕНИЕ ПРОБЕГА В ДАМПЕ;
      Var1 = 0x01; Var2 = 0x02; Var3 = 0x03; // Вычмсляем максимальный пробег;
      While(Var1 != 0x101)
       {
        Var4 = (@Var1 << 16)|(@Var2 << 8)|@Var3;
        if(Var4 > Var0)
         {Var0 = Var4;}
        Var1 = Var1 + 8; Var2 = Var2 + 8; Var3 = Var3 + 8;
       }
      Var0 = (Var0*100)/1303;
      if(Var0 > 999999)
        {
        msg.Color = 0x0000FF;
        msg.Bold = 1;
        msg = "Неверный дамп!";
        Distance = 0;
        }
       else
        {
        msg.Color = 0xFF0000;
        msg.Bold = 1;
        msg = "Дамп ОК. Введите пробег."; 
        Distance = var0;
        }
}

OnApply
 {
    Var5 = 0;
    Var2 = Distance;
    if(Var2 > 999900) {Var5 = 1;}
    if(Var2 < 3) {Var5 = 1;}
    if(Var5 != 0)
    {
        msg.Color = 0x0000FF;
        msg.Bold = 1;
        msg = "Пробег должен быть от 10 до 999900";
    }
    else
    {
     Var2 = (Var2 * 1303)/100; //Подготавливаем данные пробега для записи в дамп;
     Var10 = 0; Var11 = 0x01; Var12 = 0x02; Var13 = 0x03; Var14 = 0x05; Var15 = 0x07;
     Var2 = Var2 - 32;
     while(Var10 != 0x100)
     {
      @Var11 = (Var2 >> 16) & 0xFF;
      @Var12 = (Var2 >> 8) & 0xFF;
      @Var13 = Var2 & 0xFF;
      @Var10 = (((@Var11 + @Var13) + @Var14) + @Var15) & 0xFF;  //Подсчет контрольки;
      Var10 = Var10 + 8; Var11 = Var11 + 8; Var12 = Var12 + 8; Var13 = Var13 + 8; Var14 = Var14 + 8; Var15 = Var15 + 8;
      Var2 = Var2 + 1;
     }      
     msg.Color = 0xFF0000;
     msg.Bold = 1;
     msg = "Новый пробег записан.";
   }
        
}
