[Dashboard\BMW\LCM2\LCM2_11PH8.cal]



Size(280,330); // ширина и высота

Form
{
       Group("Пробег",5,10,110,50)
    {
        Digit(Distance," ",5,18,50);
        Label(lb1,"км",80,20);
     }
    Group("Идентификация",5,65,270,60)
    {
        Label(fg," ",0,20);
        Label(nr," ",0,35);
    } 
    Group("Информация",5,130,270,45)
    {
        Label(message," ",0,18);
    }
    Group("Описание",5,180,270,100) 
    {
        Label(lb4,"Калькулятор пробега для BMW LCM2.",0,20);
        Label(lb5,"MCU 68HC11PH8",0,35);
        Label(lb2,"Введите нужное значение в окне <Пробег>.",0,55);
        Label(lb3,"и нажмите кнопку <Применить>.",0,70);
    }
    Picture(Picture1,"BMW.bmp",160,6,0,0);
}

OnShow 

{
Message.Bold = 1;
    Var0 = 0;
    Var1 =(@0x11 << 8) | @0x12;
    if(Var0 != 0)
    {
        message.Color = 0x0000FF; 	
        Message = "Неверный дамп!";     
        Distance = 0;                   
    }
	else
    {
        message.Color = 0xFF0000;                    
        message = "Дамп ОК. Введите новый пробег.";  
        Distance =  Var1*100;
        Var6 = @0x10; Var6 = Var6 >> 4;
        fg.Bold = 1;
        fg="FGSTNR: "+#c.@0x0c+#c.@0x0d+#b.@0x0e+#b.@0x0f+#i.var6;
        nr.Bold=1;
		Var7=@0x02;Var8=(Var7>>4)&15;Var9=Var7&15;
		Var10=(@0x00)&15;
		nr="BMWTNR:"+#i.Var10+"."+#b.@0x01+#i.Var8+"."+#i.Var9+#b.@0x03+"   HW:"+#b.@0x04+"  SW:"+#b.@0x0b; 
    }      

}

OnApply 

{
    
	if (Distance>999999)
	{
    message.Color=0x0000FF; Message = "Пробег должен быть не более 99999км.";
    }
    else
    {
    Var0=Distance/100;
    Var3=Var0>>8; Var4=Var0&255;
    Var8=0x11;      
    while (Var8!=0x13)
    {
    @Var8=Var3; Var8=Var8+1;
    @Var8=Var4; Var8=Var8+1;
    }
    message.Color=0xFF0000; message="Новый пробег записан. Дамп ОК.";
    }
}
