Пример #1
0
        public unsafe static void Hmi_ScanHexCode()
        {
            PosLaction posLaction = default(PosLaction);
            strxinxi   strxinxi   = default(strxinxi);

            Readdata.Readdata_ReadStr(ref strxinxi, (int)Hmi.myapp.Hexstrindex);
            myappinf expr_28 = Hmi.myapp;

            expr_28.Hexstrindex += 1;
            if (strxinxi.size == 0 || strxinxi.size > 2048)
            {
                Hmi.Hmi_CodeEnd();
            }
            else
            {
                Readdata.SPI_Flash_Read(Hmi.Hexstrbuf, Hmi.myapp.app.strdataadd + strxinxi.addbeg, (uint)strxinxi.size);
                if (strxinxi.size == 1 && *Hmi.Hexstrbuf == 69)
                {
                    Hmi.Hmi_CodeEnd();
                }
                else
                {
                    posLaction.star = 0;
                    posLaction.end  = (ushort)(strxinxi.size - 1);
                    if (Hmi.myapp.upapp.runapptype == runapptype.run)
                    {
                        if (CodeRun.Coderun_Run(Hmi.Hexstrbuf, &posLaction) == 0 && Hmi.myapp.errcode < 255)
                        {
                            Commake.Commake_SendBackerr(Hmi.myapp.errcode);
                        }
                    }
                }
            }
        }
Пример #2
0
 public unsafe static void SPI_Flash_Read(ref byte[] buf, uint add, uint qyt)
 {
     fixed(byte *ptr = buf)
     {
         Readdata.SPI_Flash_Read(ptr, add, qyt);
     }
 }
Пример #3
0
        //public unsafe static uint Datafind_FindU32_Flash(uint* val, uint datastar, ushort datarows, ushort datalenth)
        //{
        //    int i = 0;
        //    int num = (int)(datarows - 1);
        //    uint[] array = new uint[2];
        //    uint result;
        //    while (i < num)
        //    {
        //        uint num2 = (uint)(i + (num - i >> 1));
        //        fixed (void* ptr = array)
        //        {
        //            Readdata.SPI_Flash_Read((byte*)ptr, datastar + num2 * (uint)datalenth, 8u);
        //        }
        //        if (array[0] > *val)
        //        {
        //            num = (int)(num2 - 1u);
        //        }
        //        else
        //        {
        //            if (array[0] >= *val)
        //            {
        //                result = array[1];
        //                return result;
        //            }
        //            i = (int)(num2 + 1u);
        //        }
        //    }
        //    fixed (void* ptr2 = (void*)(&array[0]))
        //    {
        //        Readdata.SPI_Flash_Read((byte*)ptr2, (uint)((ulong)datastar + (ulong)((long)(i * (int)datalenth))), 8u);
        //    }
        //    if (array[0] == *val)
        //    {
        //        result = array[1];
        //        return result;
        //    }
        //    result = 4294967295u;
        //    return result;
        //}

        public static unsafe uint Datafind_FindU32_Flash(uint *val, uint datastar, ushort datarows, ushort datalenth)
        {
            int i   = 0;
            int num = (int)(datarows - 1);

            uint[] array = new uint[2];
            uint   result;

            while (i < num)
            {
                uint num2 = (uint)(i + (num - i >> 1));
                fixed(void *ptr = array)
                {
                    Readdata.SPI_Flash_Read((byte *)ptr, datastar + num2 * (uint)datalenth, 8u);
                }

                if (array[0] > *val)
                {
                    num = (int)(num2 - 1u);
                }
                else
                {
                    if (array[0] >= *val)
                    {
                        result = array[1];
                        return(result);
                    }
                    i = (int)(num2 + 1u);
                }
            }

            fixed(void *ptr2 = array)
            {
                Readdata.SPI_Flash_Read((byte *)ptr2, (uint)((ulong)datastar + (ulong)((long)(i * (int)datalenth))), 8u);
            }

            if (array[0] == *val)
            {
                result = array[1];
                return(result);
            }
            result = 4294967295u;
            return(result);
        }
Пример #4
0
        public unsafe static byte Hmi_RefPage(ushort index)
        {
            strxinxi strxinxi = default(strxinxi);
            byte     result;

            if (index >= Hmi.myapp.app.pageqyt)
            {
                Hmi.myapp.errcode = 3;
                result            = 0;
            }
            else
            {
                Hmi.myapp.dpage         = index;
                Hmi.myapp.downobjid     = 255;
                Hmi.myapp.moveobjstate  = 0;
                Hmi.myapp.dpagemerrypos = 0;
                Hmi.Hmi_ClearTimer();
                Hmi.Hmi_Clearredian(0);
                Hmi.Hmi_ClearHexstr();
                Hmi.Hmi_GuiPageInit();
                if (Hmi.myapp.upapp.runapptype != runapptype.run || Hmi.myapp.binsuc != 1)
                {
                    result = 1;
                }
                else
                {
                    Hmi.myapp.upapp.pageidchange((int)index);
                    Readdata.Readdata_ReadPage(ref Hmi.myapp.dpagexinxi, (int)index);
                    Readdata.Readdata_ReadStr(ref strxinxi, (int)Hmi.myapp.dpagexinxi.zhilingstar);
                    Hmi.myapp.dobjnameseradd = strxinxi.addbeg + Hmi.myapp.app.strdataadd;
                    Hmi.myapp.pageobjs       = (pageobjs_ *)(Hmi.myapp.mymerry + Hmi.myapp.ovemerrys);
                    if (Hmi.myapp.dpagexinxi.zhilingqyt > 0)
                    {
                        Readdata.Readdata_ReadStr(ref strxinxi, (int)(Hmi.myapp.dpagexinxi.zhilingstar + 1));
                        Readdata.SPI_Flash_Read(Hmi.myapp.mymerry + Hmi.myapp.ovemerrys, Hmi.myapp.app.strdataadd + strxinxi.addbeg, (uint)strxinxi.size);
                        Hmi.myapp.dpagemerrypos = (ushort)(Hmi.myapp.ovemerrys + strxinxi.size);
                        Hmi.myapp.Hexstrindex   = (ushort)(Hmi.myapp.dpagexinxi.zhilingstar + 2);
                        Hmi.myapp.pagestate     = 0;
                    }
                    result = 1;
                }
            }
            return(result);
        }
Пример #5
0
        private unsafe static uint Findziadd(byte h, byte l, zimoxinxi *mzimo)
        {
            byte[] array = new byte[2];
            ushort num   = (ushort)((int)h * 256 + (int)l);
            uint   num2  = 0u;
            uint   num3  = (uint)((ushort)(mzimo->qyt - 1u));
            uint   num4  = mzimo->addbeg + Showfont.myapp.app.zimodataadd + (uint)mzimo->ascstar;
            uint   result;

            while (num3 >= num2)
            {
                uint num5 = (num3 + num2) / 2u;
                uint add  = num4 + num5 * 2u;
                Readdata.SPI_Flash_Read(ref array, add, 2u);
                if (array[0] == h && array[1] == l)
                {
                    result = mzimo->addbeg + Showfont.myapp.app.zimodataadd + (uint)mzimo->datastar + num5 * (uint)mzimo->w * (uint)mzimo->h / 8u;
                }
                else
                {
                    if (num3 != num2)
                    {
                        if ((ushort)array[0] * 256 + (ushort)array[1] > num)
                        {
                            num3 = num5 - 1u;
                        }
                        else
                        {
                            num2 = num5 + 1u;
                        }
                        continue;
                    }
                    result = 0u;
                }
                return(result);
            }
            result = mzimo->addbeg + Showfont.myapp.app.zimodataadd + (uint)mzimo->datastar;
            return(result);
        }
Пример #6
0
        public static unsafe void Hmi_Init()
        {
            strxinxi strxinxi = default(strxinxi);
            appinf0  appinf   = default(appinf0);

            Hmi.myapp.delay            = 0;
            Hmi.myapp.brush.sta        = 0;
            Hmi.myapp.brush.pointcolor = 0;
            Hmi.myapp.brush.backcolor  = 0;
            Hmi.myapp.brush.hangjux    = 0;
            Hmi.myapp.brush.hangjuy    = 0;
            Hmi.myapp.brush.xjuzhong   = 0;
            Hmi.myapp.brush.yjuzhong   = 0;
            Hmi.myapp.upapp.lcddev.wup = 255;
            Hmi.myapp.brush.pw         = 0;
            Hmi.myapp.paus             = 0;
            Hmi.myapp.sys.thsp         = 0;
            Hmi.myapp.sys.thsleepup    = 0;
            Hmi.myapp.sys.ussp         = 0;
            Hmi.myapp.touchsendxy      = 0;
            Hmi.myapp.errcode          = 255;
            Hmi.myapp.dpage            = 0;
            Hmi.myapp.Hexstrindex      = 65535;
            Hmi.myapp.downobjid        = 255;
            Hmi.myapp.moveobjstate     = 0;
            Hmi.Hmi_ClearTimer();
            Hmi.Hmi_Clearredian(0);
            Hmi.Hmi_ClearHexstr();
            Hmi.myapp.dpagemerrypos = 0;
            if (Hmi.myapp.binsuc != 1)
            {
                MessageOpen.Show("Data Error!");
            }
            else
            {
                Touch.TP_REST();
                Readdata.Readdata_ReadApp0(ref appinf);
                if (Hmi.myapp.app.strqyt > 0u)
                {
                    Readdata.Readdata_ReadStr(ref strxinxi, 0);
                    if (strxinxi.size < 8192)
                    {
                        Readdata.SPI_Flash_Read(Hmi.myapp.mymerry, Hmi.myapp.app.strdataadd + strxinxi.addbeg, (uint)strxinxi.size);
                        Hmi.myapp.ovemerrys = strxinxi.size;
                    }
                }
                Readdata.Readdata_ReadStr(ref strxinxi, 1);
                Hmi.myapp.pagenameseradd = strxinxi.addbeg + Hmi.myapp.app.strdataadd;
                Hmi.myapp.upapp.Lcd_Set(appinf.guidire);
                uint[] array = new uint[2];
                Hmi.lastpagenamecrc = array;
                Hmi.lastpageid      = new ushort[]
                {
                    65535,
                    65535
                };
                Hmi.lastobjaddr = new uint[]
                {
                    65535u,
                    65535u
                };
                array = new uint[2];
                Hmi.lastobjnamecrc = array;
                Hmi.lastobjid      = new ushort[]
                {
                    65535,
                    65535
                };
            }
        }
Пример #7
0
        private static void SendZiku(int x, int y, byte h, byte l)
        {
            byte[] array = new byte[2];
            int    num   = x;
            int    num2  = y;
            byte   b     = 0;

            if (Showfont.myapp.brush.pw != 0)
            {
                h = 0;
                l = Showfont.myapp.brush.pw;
            }
            uint num3 = Showfont.myapp.brush.mzimo.addbeg + Showfont.myapp.app.zimodataadd + (uint)Showfont.myapp.brush.mzimo.datastar;

            if (Showfont.myapp.brush.mzimo.state == 1)
            {
                if (h != 0)
                {
                    if (l > Showfont.myapp.brush.mzimo.codelT0)
                    {
                        l -= Showfont.myapp.brush.mzimo.codelV0;
                    }
                    b     = Showfont.myapp.brush.mzimo.w;
                    num3 += (uint)(((h - Showfont.myapp.brush.mzimo.codeh_star) * (Showfont.myapp.brush.mzimo.codel_end - Showfont.myapp.brush.mzimo.codel_star - Showfont.myapp.brush.mzimo.codelV0 + 1) + (l - Showfont.myapp.brush.mzimo.codel_star)) * (Showfont.myapp.brush.mzimo.w / 8) * Showfont.myapp.brush.mzimo.h);
                }
                else
                {
                    b     = Convert.ToByte(Showfont.myapp.brush.mzimo.w / 2);
                    num3 += (uint)((ulong)(Showfont.myapp.brush.mzimo.qyt - 95u + (uint)l - 32u) * (ulong)((long)(Showfont.myapp.brush.mzimo.w / 8)) * (ulong)Showfont.myapp.brush.mzimo.h);
                }
            }
            else if (Showfont.myapp.brush.mzimo.state == 0)
            {
                b     = Showfont.myapp.brush.mzimo.w;
                num3 += (uint)((l - 32) * (Showfont.myapp.brush.mzimo.h / 8 * Showfont.myapp.brush.mzimo.w));
            }
            else if (Showfont.myapp.brush.mzimo.state == 2)
            {
                if (h > 0)
                {
                    b = Showfont.myapp.brush.mzimo.w;
                }
                else
                {
                    b = Convert.ToByte(Showfont.myapp.brush.mzimo.w / 2);
                }
                num3 = Showfont.Findziadd(h, l, ref Showfont.myapp.brush.mzimo);
            }
            ushort num4 = (ushort)(Showfont.myapp.brush.mzimo.h / 8 * b);

            switch (Showfont.myapp.upapp.lcddev.guidire)
            {
            case 1:
                y = (int)((ushort)(num2 + (int)Showfont.myapp.brush.mzimo.h - 1));
                break;

            case 2:
                x = (int)((ushort)(num + (int)b - 1));
                y = (int)((ushort)(num2 + (int)Showfont.myapp.brush.mzimo.h - 1));
                break;

            case 3:
                x = (int)((ushort)(num + (int)b - 1));
                break;
            }
            for (uint num5 = 0u; num5 < (uint)num4; num5 += 1u)
            {
                Readdata.SPI_Flash_Read(ref array, num3 + num5, 1u);
                for (byte b2 = 0; b2 < 8; b2 += 1)
                {
                    if (((int)array[0] & 1 << (int)(7 - b2)) > 0)
                    {
                        if (x >= (int)Showfont.myapp.brush.x && x <= (int)Showfont.myapp.brush.endx && y >= (int)Showfont.myapp.brush.y && y <= (int)Showfont.myapp.brush.endy)
                        {
                            Lcd.Lcd_DrawPoint(x, y, Showfont.myapp.brush.pointcolor);
                        }
                    }
                    switch (Showfont.myapp.upapp.lcddev.guidire)
                    {
                    case 0:
                        x++;
                        if (x - num == (int)b)
                        {
                            x = num;
                            y++;
                        }
                        break;

                    case 1:
                        y--;
                        if (y < num2)
                        {
                            y = (int)((ushort)(num2 + (int)Showfont.myapp.brush.mzimo.h - 1));
                            x++;
                        }
                        break;

                    case 2:
                        x--;
                        if (x < num)
                        {
                            x = (int)((ushort)(num + (int)b - 1));
                            y--;
                        }
                        break;

                    case 3:
                        y++;
                        if (y >= num2 + (int)Showfont.myapp.brush.mzimo.h)
                        {
                            y = num2;
                            x--;
                        }
                        break;
                    }
                }
            }
        }