示例#1
0
文件: Attmake.cs 项目: skyclub66/HMI
 private static unsafe byte AttConvert_gui(runattinf *b1, runattinf *b2, byte lenth1, byte lenth2)
 {
     if ((b1->attlei != attshulei.Sstr.typevalue) && (b2->attlei == attshulei.Sstr.typevalue))
     {
         if (b2->datafrom != 0xfe)
         {
             myapp.errcode = 0x1b;
             return(0);
         }
         if (lenth1 == 0)
         {
             lenth1 = Strmake.Strmake_GetS32strlen(b1->val);
         }
         if (b2->att.merrylenth <= lenth1)
         {
             lenth1 = (byte)(b2->att.merrylenth - 1);
         }
         Strmake.Strmake_S32ToStr(b1->val, b2->Pz, lenth1, 1);
     }
     else
     {
         if ((b1->attlei == attshulei.Sstr.typevalue) && (b2->attlei != attshulei.Sstr.typevalue))
         {
             b2->val = Strmake.Strmake_StrToS32(b1->Pz, lenth1);
             return(Attmake_SetAtt(b2, b2, 0));
         }
         myapp.errcode = 0x1b;
         return(0);
     }
     return(1);
 }
示例#2
0
        public unsafe static void Sysatt_GetSysname(byte *name, byte lenth, runattinf *att)
        {
            if (lenth < 5)
            {
                uint num = 0u;
                Kuozhan.memcpy((byte *)(&num), name, (int)lenth);
                fixed(void *ptr = (&Sysatt.xitong32[0]))
                {
                    num = Datafind.Datafind_FindU32_Memory(&num, (uint *)ptr, Sysatt.xitong32qyt, (uint)(Marshal.SizeOf(default(xitongtype_32)) / 4));
                }

                if (num != 65535u)
                {
                    Sysatt.Sysatt_GetXitongval(4, (byte)num, att);
                }
            }
            else if (lenth < 9)
            {
                ulong num2 = 0uL;
                Kuozhan.memcpy((byte *)(&num2), name, (int)lenth);
                uint num;
                fixed(void *ptr = (&Sysatt.xitong64[0]))
                {
                    num = Datafind.Datafind_FindU64_Memory(&num2, (uint *)ptr, Sysatt.xitong64qyt, (uint)(Marshal.SizeOf(default(xitongtype_64)) / 4));
                }

                if (num != 65535u)
                {
                    Sysatt.Sysatt_GetXitongval(8, (byte)num, att);
                }
            }
        }
示例#3
0
文件: Attmake.cs 项目: skyclub66/HMI
    public static unsafe byte Attmake_AttConvert(runattinf *b1, runattinf *b2, byte lenth1, byte lenth2)
    {
        byte num = AttConvert_gui(b1, b2, lenth1, lenth2);

        if (((num == 1) && (b2->isref == 1)) && (b2->att.pageid == myapp.dpage))
        {
            myapp.pageobjs[b2->att.objid].refFlag = 1;
        }
        return(num);
    }
示例#4
0
文件: Attmake.cs 项目: skyclub66/HMI
    public static unsafe byte Attmake_AttAdd(byte *buf, runattinf *b1, runattinf *b2, runattinf *b3, byte yunsuan)
    {
        byte num = AttAdd_gui(buf, b1, b2, b3, yunsuan);

        if (((num == 1) && (b3->isref == 1)) && (b3->att.pageid == myapp.dpage))
        {
            myapp.pageobjs[b3->att.objid].refFlag = 1;
        }
        return(num);
    }
示例#5
0
文件: Attmake.cs 项目: skyclub66/HMI
    public static unsafe byte Attmake_SetAtt(runattinf *b1, runattinf *b2, byte yunsuan)
    {
        byte num = SetAtt_gui(b1, b2, yunsuan);

        if (((num == 1) && (b2->isref == 1)) && (b2->att.pageid == myapp.dpage))
        {
            myapp.pageobjs[b2->att.objid].refFlag = 1;
        }
        return(num);
    }
示例#6
0
文件: Commake.cs 项目: skyclub66/HMI
 public static unsafe void Commake_SendAtt(runattinf *att1, byte state)
 {
     if (att1->attlei == attshulei.Sstr.typevalue)
     {
         if (state == 1)
         {
             Usart.Usart_SendByte(0x70);
         }
         Commake_Prints(att1->Pz, 0);
     }
     else
     {
         if (state == 1)
         {
             Usart.Usart_SendByte(0x71);
         }
         Commake_PrintBytes((byte *)&att1->val, 4);
     }
     if (state == 1)
     {
         Commake_SendEnd();
     }
 }
示例#7
0
        public unsafe static byte Sysatt_GetXitongval(byte lei, byte id, runattinf *att)
        {
            int   val = 0;
            byte  mark;
            byte *ptr2;

            if (lei == 4)
            {
                fixed(byte *ptr = &Sysatt.xitong32[(int)id].res0)
                {
                    mark          = Sysatt.xitong32[(int)id].mark;
                    ptr2          = ptr;
                    att->datafrom = Sysatt.xitong32[(int)id].mark;
                }
            }
            else
            {
                fixed(byte *ptr = &Sysatt.xitong64[(int)id].res0)
                {
                    mark          = Sysatt.xitong64[(int)id].mark;
                    ptr2          = ptr;
                    att->datafrom = Sysatt.xitong64[(int)id].mark;
                }
            }
            att->attlei         = attshulei.SS32.typevalue;
            att->att.merrylenth = 4;
            att->att.maxval     = 2147483647;
            att->att.minval     = -2147483647;
            att->isxiugai       = 1;
            byte result;

            if (mark <= 4)
            {
                val = Sysatt.myapp.myxitong[(int)mark];
            }
            else if (mark >= 210 && mark <= 216)
            {
                if (Rtc.Rtc_GetTime((int)(mark - 210), &val) == 255)
                {
                    result = 0;
                    return(result);
                }
            }
            else if (mark < 220 || mark > 227)
            {
                if (mark < 240 || mark > 243)
                {
                    if (mark == 200)
                    {
                        val = (int)(*(ushort *)(ptr2 + 1));
                    }
                    else
                    {
                        byte b = mark;
                        switch (b)
                        {
                        case 5:
                            val = (int)Sysatt.myapp.USART.UsartBo;
                            break;

                        case 6:
                            val = 9600;
                            break;

                        case 7:
                            val = 100;
                            break;

                        case 8:
                            val = 100;
                            break;

                        case 9:
                            val = (int)Sysatt.myapp.sendfanhui;
                            break;

                        case 10:
                            val = (int)Sysatt.myapp.brush.hangjux;
                            break;

                        case 11:
                            val = (int)Sysatt.myapp.brush.hangjuy;
                            break;

                        case 12:
                            val = Sysatt.myapp.sys.ussp / 1000;
                            break;

                        case 13:
                            val = Sysatt.myapp.sys.thsp / 1000;
                            break;

                        case 14:
                            val = (int)Sysatt.myapp.sys.thsleepup;
                            break;

                        case 15:
                            val = (int)Sysatt.myapp.touchsendxy;
                            break;

                        case 16:
                            val = (int)Sysatt.myapp.dracolor;
                            break;

                        case 17:
                            val = (int)Sysatt.myapp.dra;
                            break;

                        case 18:
                            break;

                        case 19:
                            val = Sys.rand(Sysatt.myapp.SysRandMin, Sysatt.myapp.SysRandMax);
                            break;

                        case 20:
                            if (Sysatt.myapp.comcrc > 0)
                            {
                                val = 1;
                            }
                            else
                            {
                                val = 0;
                            }
                            break;

                        case 21:
                            val = (int)Sysatt.myapp.runmod;
                            break;

                        case 22:
                            val = (int)Sysatt.myapp.dpage;
                            break;

                        case 23:
                            val = (int)Sysatt.myapp.upapp.lcddev.wup;
                            break;

                        default:
                            if (b != 120)
                            {
                                if (b != 244)
                                {
                                    att->datafrom = 255;
                                    result        = 0;
                                    return(result);
                                }
                            }
                            else
                            {
                                val = 0;
                            }
                            break;
                        }
                    }
                }
            }
            att->val = val;
            result   = 1;
            return(result);
        }
示例#8
0
文件: Attmake.cs 项目: skyclub66/HMI
    public static unsafe void Attmake_GetAtt(byte *buf, PosLaction *bufpos, runattinf *att)
    {
        PosLaction laction = new PosLaction();
        pagexinxi  page    = new pagexinxi();
        strxinxi   str     = new strxinxi();
        uint       add     = 0;
        ushort     index   = 0;
        ushort     num5    = 0;
        ushort     num6    = 0;
        ushort     num7    = 0;

        att->datafrom = 0xff;
        att->isref    = 0;
        if (buf[bufpos->star] != 0x2e)
        {
            uint attdatapos;
            if (buf[bufpos->star] == 1)
            {
                Kuozhan.memcpy((byte *)&attdatapos, buf + (bufpos->star + 1), 4);
                attdatapos  = (uint)(attdatapos * datasize.attxinxisize);
                attdatapos += myapp.app.attdatapos;
            }
            else
            {
                for (uint i = bufpos->star; i <= bufpos->end; i++)
                {
                    if (buf[i] < 9)
                    {
                        i += 5;
                    }
                    if ((buf[i] == 0x2e) && (add != 1))
                    {
                        if (num6 == 0)
                        {
                            num6 = (ushort)i;
                            continue;
                        }
                        if (num7 == 0)
                        {
                            num7 = (ushort)i;
                            continue;
                        }
                        return;
                    }
                    if (buf[i] == 0x5b)
                    {
                        add = 1;
                    }
                    else if (buf[i] == 0x5d)
                    {
                        add = 2;
                    }
                }
                if (num6 == 0)
                {
                    Sysatt.Sysatt_GetSysname(buf + bufpos->star, (byte)((bufpos->end - bufpos->star) + 1), att);
                    return;
                }
                laction.star = bufpos->star;
                laction.end  = (ushort)(num6 - 1);
                if (num7 > 0)
                {
                    index = Hmi.Hmi_GetPageid(buf, &laction);
                    if (index == 0xffff)
                    {
                        return;
                    }
                    laction.star = (ushort)(num6 + 1);
                    laction.end  = (ushort)(num7 - 1);
                    if (index == myapp.dpage)
                    {
                        num5       = Hmi.Hmi_GetObjid(buf, &laction, myapp.dobjnameseradd, myapp.dpagexinxi.objqyt);
                        attdatapos = myapp.dpagexinxi.attdatapos;
                    }
                    else
                    {
                        Readdata.Readdata_ReadPage(ref page, index);
                        Readdata.Readdata_ReadStr(ref str, page.zhilingstar);
                        num5       = Hmi.Hmi_GetObjid(buf, &laction, str.addbeg + myapp.app.strdataadd, page.objqyt);
                        attdatapos = page.attdatapos;
                    }
                    laction.star = (ushort)(num7 + 1);
                }
                else
                {
                    index        = myapp.dpage;
                    num5         = Hmi.Hmi_GetObjid(buf, &laction, myapp.dobjnameseradd, myapp.dpagexinxi.objqyt);
                    laction.star = (ushort)(num6 + 1);
                    attdatapos   = myapp.dpagexinxi.attdatapos;
                }
                laction.end = bufpos->end;
                if ((num5 == 0xffff) || (laction.star > laction.end))
                {
                    return;
                }
                num6 = Attmake_GetAttindex(buf + laction.star, (byte)((laction.end - laction.star) + 1));
                if (num6 == 0xff)
                {
                    return;
                }
                if (index != myapp.dpage)
                {
                    add  = myapp.app.objadd + ((uint)(((ushort)(num5 + page.objstar)) * (datasize.objxinxisize + 180)));
                    num7 = 0;
                    Readdata.SPI_Flash_Read((byte *)&num7, add + 15, 1);
                    if (num7 != 1)
                    {
                        return;
                    }
                }
                else
                {
                    add = myapp.app.objadd + ((uint)(((ushort)(num5 + myapp.dpagexinxi.objstar)) * (datasize.objxinxisize + 180)));
                }
                Readdata.SPI_Flash_Read((byte *)&num6, (uint)((add + datasize.objxinxisize) + (num6 * 2)), 2);
                if (num6 == 0xffff)
                {
                    return;
                }
                attdatapos += (uint)(datasize.attxinxisize * num6);
            }
            add = myapp.app.strdataadd + attdatapos;
            Readdata.SPI_Flash_Read((byte *)&att->att, add, (uint)datasize.attxinxisize);
            att->attlei = (byte)(att->att.state & 15);
            if ((att->att.state & 0x10) > 0)
            {
                att->isxiugai = 1;
                att->datafrom = 0xfe;
                att->Pz       = myapp.mymerry + att->att.pos;
            }
            else
            {
                att->isxiugai = 0;
                if (att->attlei != attshulei.Sstr.typevalue)
                {
                    att->datafrom = 0xfd;
                }
                else
                {
                    att->datafrom = 0xfc;
                }
            }
            if ((att->att.state & 0x20) > 0)
            {
                att->isref = 1;
            }
            if (att->attlei != attshulei.Sstr.typevalue)
            {
                att->val = 0;
                if (att->datafrom == 0xfe)
                {
                    if (att->attlei == attshulei.SS16.typevalue)
                    {
                        short num8 = 0;
                        Kuozhan.memcpy((byte *)&num8, myapp.mymerry + att->att.pos, att->att.merrylenth);
                        att->val = num8;
                    }
                    else
                    {
                        Kuozhan.memcpy((byte *)&att->val, myapp.mymerry + att->att.pos, att->att.merrylenth);
                    }
                }
                else
                {
                    Kuozhan.memcpy((byte *)&att->val, (byte *)&att->att.pos, 4);
                }
            }
        }
    }
示例#9
0
文件: Attmake.cs 项目: skyclub66/HMI
    // Methods
    private static unsafe byte AttAdd_gui(byte *buf, runattinf *b1, runattinf *b2, runattinf *b3, byte yunsuan)
    {
        ushort index = 0;

        if ((((b1->attlei == attshulei.Sstr.typevalue) && (b2->attlei == attshulei.Sstr.typevalue)) && (b3->attlei == attshulei.Sstr.typevalue)) && (yunsuan == 0x2b))
        {
            if ((b1->datafrom == 0xfe) && (b1->Pz == b3->Pz))
            {
                if (Attmake_SetAtt(b2, b3, yunsuan) > 0)
                {
                    return(1);
                }
            }
            else if ((b2->datafrom == 0xfe) && (b2->Pz == b3->Pz))
            {
                if (Attmake_SetAtt(b1, b3, yunsuan) > 0)
                {
                    return(1);
                }
            }
            else
            {
                if (Attmake_SetAtt(b1, b3, 0) == 0)
                {
                    return(0);
                }
                if (Attmake_SetAtt(b2, b3, yunsuan) > 0)
                {
                    return(1);
                }
            }
        }
        else
        {
            if (((b2->attlei != attshulei.Sstr.typevalue) && (b3->attlei == attshulei.Sstr.typevalue)) && ((yunsuan == 0x2d) || ((yunsuan == 0x2b) && (b2->val < 0))))
            {
                index = Strmake.Strmake_GetStrlen_Encode(b3->Pz, b3->att.encodeh_star);
                if (b2->val >= index)
                {
                    b3->Pz[0] = 0;
                    return(1);
                }
                index         = Strmake.Strmake_GetStrlen_Encode_Lenth(b3->Pz, b3->att.encodeh_star, (byte)(index - b2->val));
                b3->Pz[index] = 0;
                return(1);
            }
            if (((b1->attlei != attshulei.Sstr.typevalue) && (b2->attlei != attshulei.Sstr.typevalue)) && (b3->attlei != attshulei.Sstr.typevalue))
            {
                if (yunsuan == 0x2b)
                {
                    b3->val = b1->val + b2->val;
                    return(Attmake_SetAtt(b3, b3, 0));
                }
                if (yunsuan == 0x2d)
                {
                    b3->val = b1->val - b2->val;
                    return(Attmake_SetAtt(b3, b3, 0));
                }
                if (yunsuan == 0x2a)
                {
                    b3->val = b1->val * b2->val;
                    return(Attmake_SetAtt(b3, b3, 0));
                }
                if (yunsuan == 0x2f)
                {
                    b3->val = (b2->val == 0) ? 0 : (b1->val / b2->val);
                    return(Attmake_SetAtt(b3, b3, 0));
                }
                if (yunsuan == 0x25)
                {
                    b3->val = b1->val % b2->val;
                    return(Attmake_SetAtt(b3, b3, 0));
                }
                if (yunsuan == 0x7c)
                {
                    b3->val = b1->val | b2->val;
                    return(Attmake_SetAtt(b3, b3, 0));
                }
                if (yunsuan == 0x26)
                {
                    b3->val = b1->val & b2->val;
                    return(Attmake_SetAtt(b3, b3, 0));
                }
                if (yunsuan == 60)
                {
                    b3->val = b1->val << b2->val;
                    return(Attmake_SetAtt(b3, b3, 0));
                }
                if (yunsuan == 0x3e)
                {
                    b3->val = b1->val >> b2->val;
                    return(Attmake_SetAtt(b3, b3, 0));
                }
            }
        }
        myapp.errcode = 0x1b;
        return(0);
    }
示例#10
0
文件: Attmake.cs 项目: skyclub66/HMI
    private static unsafe byte SetAtt_gui(runattinf *b1, runattinf *b2, byte yunsuan)
    {
        if (b2->isxiugai == 1)
        {
            if (((b2->attlei != attshulei.Sstr.typevalue) && (b1->attlei != attshulei.Sstr.typevalue)) && (yunsuan == 0))
            {
                if (b2->datafrom == 0xfd)
                {
                    b2->val = b2->val;
                    return(1);
                }
                if ((b1->val > b2->att.maxval) || (b1->val < b2->att.minval))
                {
                    myapp.errcode = 0x1c;
                    return(0);
                }
                if (b2->datafrom == 0xfe)
                {
                    if (b2->att.merrylenth == 2)
                    {
                        if (b1->attlei == attshulei.UU16.typevalue)
                        {
                            ushort val = (ushort)b1->val;
                            Kuozhan.memcpy(b2->Pz, (byte *)&val, b2->att.merrylenth);
                        }
                        else
                        {
                            short num4 = (short)b1->val;
                            Kuozhan.memcpy(b2->Pz, (byte *)&num4, b2->att.merrylenth);
                        }
                    }
                    else
                    {
                        Kuozhan.memcpy(b2->Pz, (byte *)&b1->val, b2->att.merrylenth);
                    }
                    return(1);
                }
                switch (Sysatt.Sysatt_SetXitongval(b2->datafrom, b1->val))
                {
                case 1:
                    return(1);

                case 2:
                    myapp.errcode = 0xff;
                    return(0);
                }
            }
            else if (((b2->attlei == attshulei.Sstr.typevalue) && (b1->attlei == attshulei.Sstr.typevalue)) && (b2->datafrom == 0xfe))
            {
                ushort num3;
                ushort num  = Strmake.Strmake_GetStrlen(b1->Pz);
                ushort num2 = Strmake.Strmake_GetStrlen(b2->Pz);
                byte * pz   = b2->Pz;
                if (yunsuan == 0x2b)
                {
                    pz  += num2;
                    num3 = (ushort)((b2->att.merrylenth - num2) - 1);
                }
                else
                {
                    num3 = (ushort)(b2->att.merrylenth - 1);
                }
                if (num3 > num)
                {
                    num3 = num;
                }
                Kuozhan.memcpy(pz, b1->Pz, num3);
                pz[num3] = 0;
                return(1);
            }
        }
        myapp.errcode = 0x1c;
        return(0);
    }
示例#11
0
文件: Attmake.cs 项目: skyclub66/HMI
 public static unsafe byte Attmake_Makeatt(byte *buf, runattinf *b1, runattinf *b2, byte yunsuan)
 {
     if ((b2->attlei != attshulei.Sstr.typevalue) && (b2->attlei != attshulei.Sstr.typevalue))
     {
         if (yunsuan == 1)
         {
             if (b1->val == b2->val)
             {
                 return(1);
             }
             return(0);
         }
         if (yunsuan == 2)
         {
             if (b1->val < b2->val)
             {
                 return(1);
             }
             return(0);
         }
         if (yunsuan == 3)
         {
             if (b1->val > b2->val)
             {
                 return(1);
             }
             return(0);
         }
         if (yunsuan == 4)
         {
             if (b1->val <= b2->val)
             {
                 return(1);
             }
             return(0);
         }
         if (yunsuan == 5)
         {
             if (b1->val >= b2->val)
             {
                 return(1);
             }
             return(0);
         }
         if (yunsuan == 6)
         {
             if (b1->val != b2->val)
             {
                 return(1);
             }
             return(0);
         }
     }
     else if (((b2->attlei == attshulei.Sstr.typevalue) && (b1->attlei == attshulei.Sstr.typevalue)) && ((yunsuan == 1) || (yunsuan == 6)))
     {
         if (Strmake.Strmake_Makestr(b1->Pz, b2->Pz, 0) == 1)
         {
             if (yunsuan == 1)
             {
                 return(1);
             }
             return(0);
         }
         if (yunsuan == 1)
         {
             return(0);
         }
         return(1);
     }
     return(0);
 }
示例#12
0
文件: Attmake.cs 项目: skyclub66/HMI
    public static unsafe ushort Attmake_GetstrAtt(byte *buf, PosLaction *bufpos, runattinf *att)
    {
        ushort     star    = bufpos->star;
        ushort     num3    = 0;
        ushort     index   = 0;
        PosLaction laction = new PosLaction();

        att->datafrom = 0xff;
        att->isref    = 0;
        if (bufpos->end < bufpos->star)
        {
            myapp.errcode = 0x1a;
            return(0xffff);
        }
        if (buf[star] != 0x22)
        {
            if ((((buf[star] >= 9) || (buf[star] <= 1)) && (buf[star] != 0x2d)) && ((buf[star] <= 0x2f) || (buf[star] >= 0x3a)))
            {
                laction.star = bufpos->star;
                if (Strmake.Strmake_IsAttendbyte(buf[star]) == 1)
                {
                    myapp.errcode = 0x1a;
                    return(0xffff);
                }
                int num = 0;
                while (star <= bufpos->end)
                {
                    num3 = 0;
                    while (star <= bufpos->end)
                    {
                        if (buf[star] < 9)
                        {
                            num3 = (ushort)(num3 + 5);
                            star = (ushort)(star + 5);
                        }
                        if ((num == 0) && (Strmake.Strmake_IsAttendbyte(buf[star]) == 1))
                        {
                            star = (ushort)(star - 1);
                            break;
                        }
                        if (buf[star] == 0x5b)
                        {
                            num++;
                        }
                        else if (buf[star] == 0x5d)
                        {
                            num--;
                        }
                        if (num3 == 0x31)
                        {
                            myapp.errcode = 0x23;
                            return(0xffff);
                        }
                        num3 = (ushort)(num3 + 1);
                        star = (ushort)(star + 1);
                    }
                    if (star > bufpos->end)
                    {
                        star = bufpos->end;
                    }
                    laction.end = star;
                    Attmake_GetAtt(buf, &laction, att);
                    if (att->datafrom == 0xff)
                    {
                        myapp.errcode = 0x1a;
                        return(0xffff);
                    }
                    return(star);
                }
                myapp.errcode = 0x1a;
                return(0xffff);
            }
            if (buf[star] < 9)
            {
                if (buf[star] == 3)
                {
                    Kuozhan.memcpy((byte *)&att->val, buf + (star + 1), 4);
                    att->datafrom       = 0xfd;
                    att->att.merrylenth = 4;
                    att->attlei         = attshulei.SS32.typevalue;
                    att->isxiugai       = 0;
                }
                else if (buf[bufpos->star] == 2)
                {
                    att->datafrom = 0xfc;
                    Kuozhan.memcpy((byte *)&att->att.pos, buf + (bufpos->star + 1), 4);
                    att->att.state = attshulei.Sstr.typevalue;
                    att->isxiugai  = 0;
                }
                else if (buf[bufpos->star] == 4)
                {
                    Sysatt.Sysatt_GetXitongval(buf[bufpos->star + 1], buf[bufpos->star + 2], att);
                }
                return((ushort)(star + 4));
            }
            if (buf[star] == 0x2d)
            {
                star = (ushort)(star + 1);
            }
            while (star <= bufpos->end)
            {
                if ((buf[star] < 0x30) || (buf[star] > 0x39))
                {
                    star = (ushort)(star - 1);
                    break;
                }
                if (star == bufpos->end)
                {
                    break;
                }
                star = (ushort)(star + 1);
            }
        }
        else
        {
            buf[star] = 0;
            star      = (ushort)(star + 1);
            num3      = 0xffff;
            index     = star;
            while (star <= bufpos->end)
            {
                if (buf[star] == 0x5c)
                {
                    if (star == bufpos->end)
                    {
                        myapp.errcode = 0x20;
                        return(0xffff);
                    }
                    star = (ushort)(star + 1);
                    if ((buf[star] == 0x5c) || (buf[star] == 0x22))
                    {
                        buf[index] = buf[star];
                    }
                    else if (buf[star] == 0x72)
                    {
                        buf[index] = 13;
                        index      = (ushort)(index + 1);
                        buf[index] = 10;
                    }
                    else
                    {
                        myapp.errcode = 0x20;
                        return(0xffff);
                    }
                    if (star == bufpos->end)
                    {
                        myapp.errcode = 0x20;
                        return(0xffff);
                    }
                    star  = (ushort)(star + 1);
                    index = (ushort)(index + 1);
                }
                else
                {
                    buf[index] = buf[star];
                    if (buf[star] == 0x22)
                    {
                        buf[index] = 0;
                        num3       = star;
                        break;
                    }
                    star  = (ushort)(star + 1);
                    index = (ushort)(index + 1);
                }
            }
            if (num3 != 0xffff)
            {
                att->att.pos          = (ushort)(bufpos->star + 1);
                att->attlei           = attshulei.Sstr.typevalue;
                att->att.merrylenth   = (ushort)(index - bufpos->star);
                att->datafrom         = 0xfd;
                att->isxiugai         = 0;
                att->Pz               = buf + att->att.pos;
                att->att.encodeh_star = myapp.encodeh_star;
                return(num3);
            }
            myapp.errcode = 0x1a;
            return(0xffff);
        }
        att->val            = Strmake.Strmake_StrToS32(buf + bufpos->star, (byte)((star - bufpos->star) + 1));
        att->datafrom       = 0xfd;
        att->att.merrylenth = 4;
        att->attlei         = attshulei.SS32.typevalue;
        att->isxiugai       = 0;
        return(star);
    }