public UInt32 Write(ref TASKMessage msg)
        {
            UInt32 ret = LibErrorCode.IDS_ERR_SUCCESSFUL;

            List <Parameter> OpReglist = new List <Parameter>();

            ParamContainer demparameterlist = msg.task_parameterlist;

            if (demparameterlist == null)
            {
                return(ret);
            }

            foreach (Parameter p in demparameterlist.parameterlist)
            {
                if (p == null)
                {
                    continue;
                }
                OpReglist.Add(p);
            }
            //Write
            ret = WriteByte(OpReglist);
            return(ret);
        }
        public static List <Parameter> GenerateParameterList(ref TASKMessage msg)
        {
            List <Parameter> OpParamList = new List <Parameter>();

            ParamContainer demparameterlist = msg.task_parameterlist;

            if (demparameterlist == null)
            {
                return(null);
            }

            foreach (Parameter p in demparameterlist.parameterlist)
            {
                if ((p.guid & ElementDefine.SectionMask) == ElementDefine.VirtualElement)    //略过虚拟参数
                {
                    continue;
                }
                if (p == null)
                {
                    break;
                }
                OpParamList.Add(p);
            }
            OpParamList = OpParamList.Distinct().ToList();
            return(OpParamList);
        }
Пример #3
0
        public static List <byte> Generate(ref TASKMessage msg)
        {
            Reg         reg       = null;
            byte        baddress  = 0;
            List <byte> OpReglist = new List <byte>();

            ParamContainer demparameterlist = msg.task_parameterlist;

            if (demparameterlist == null)
            {
                return(null);
            }

            foreach (Parameter p in demparameterlist.parameterlist)
            {
                if ((p.guid & ElementDefine.SectionMask) == ElementDefine.VirtualElement)    //略过虚拟参数
                {
                    continue;
                }
                if (p == null)
                {
                    break;
                }
                foreach (KeyValuePair <string, Reg> dic in p.reglist)
                {
                    reg      = dic.Value;
                    baddress = (byte)reg.address;
                    if (OpReglist.Contains(baddress) == false)
                    {
                        OpReglist.Add(baddress);
                    }
                }
            }
            return(OpReglist);
        }
Пример #4
0
        public virtual UInt32 Read(ref TASKMessage msg)
        {
            byte        bdata     = 0;
            UInt32      ret       = LibErrorCode.IDS_ERR_SUCCESSFUL;
            List <byte> OpReglist = new List <byte>();

            ParamContainer demparameterlist = msg.task_parameterlist;

            if (demparameterlist == null)
            {
                return(ret);
            }

            OpReglist = RegisterListGenerator.Generate(ref msg);
            if (OpReglist == null)
            {
                return(ret);
            }

            foreach (byte badd in OpReglist)
            {
                ret = ReadByte(badd, ref bdata);
                parent.m_OpRegImg[badd].err = ret;
                parent.m_OpRegImg[badd].val = bdata;
                //if (ret != LibErrorCode.IDS_ERR_SUCCESSFUL)
                //    return ret;
            }
            return(ret);
        }
        public UInt32 ConvertHexToPhysical(ref TASKMessage msg) //Scan 把这里污染了
        {
            Parameter param = null;
            UInt32    ret   = LibErrorCode.IDS_ERR_SUCCESSFUL;

            List <Parameter> OpParamList = new List <Parameter>();

            OpParamList = ParamListGenerator.Generate(ref msg);
            if (OpParamList == null)
            {
                return(ret);
            }

            for (int i = 0; i < OpParamList.Count; i++)
            {
                param = (Parameter)OpParamList[i];
                if (param == null)
                {
                    continue;
                }
                dem_dm.Hex2Physical(ref param);
            }

            return(ret);
        }
        public UInt32 ConvertPhysicalToHex(ref TASKMessage msg)
        {
            Parameter param = null;
            UInt32    ret   = LibErrorCode.IDS_ERR_SUCCESSFUL;

            List <Parameter> OpParamList = new List <Parameter>();

            OpParamList = ParamListGenerator.Generate(ref msg);
            if (OpParamList == null)
            {
                return(ret);
            }

            for (int i = 0; i < OpParamList.Count; i++)
            {
                param = (Parameter)OpParamList[i];
                if (param == null)
                {
                    continue;
                }
                if ((param.guid & ElementDefine.SectionMask) == ElementDefine.TemperatureElement)
                {
                    continue;
                }

                dem_dm.Physical2Hex(ref param);
            }

            return(ret);
        }
Пример #7
0
        public UInt32 Read(ref TASKMessage bgworker)
        {
            UInt32 ret = 0;

            ret = m_dem_bm.Read(ref bgworker);
            return(ret);
        }
Пример #8
0
        public UInt32 Write(ref TASKMessage msg)    //Expert 把这里污染了 //去掉了污染20200513
        {
            UInt32      ret       = LibErrorCode.IDS_ERR_SUCCESSFUL;
            List <byte> OpReglist = new List <byte>();

            OpReglist = RegisterListGenerator.Generate(ref msg);
            if (OpReglist == null)
            {
                return(ret);
            }
            //Removed this warning as discussed with Jianping 20200513
            //if (msg.gm.sflname == "Expert")
            //{
            //    if (isContainEfuseRegisters(OpReglist) == true)
            //    {
            //        System.Windows.Forms.MessageBox.Show("Please provide programming voltage or the write operation may be unsuccessful!");
            //        //msg.gm.message = "Please provide programming voltage or the write operation may be unsuccessful!";
            //        //msg.controlreq = COMMON_CONTROL.COMMON_CONTROL_WARNING;
            //    }
            //}
            foreach (byte badd in OpReglist)
            {
                ret = WriteByte(badd, (byte)parent.m_OpRegImg[badd].val);
                parent.m_OpRegImg[badd].err = ret;
                //if (ret != LibErrorCode.IDS_ERR_SUCCESSFUL)
                //    return ret;
            }

            return(ret);
        }
        public UInt32 GetRegisteInfor(ref TASKMessage msg)
        {
#if false
            byte   bdata = 0;
            UInt32 ret   = LibErrorCode.IDS_ERR_SUCCESSFUL;
            msg.errorcode = LibErrorCode.IDS_ERR_SUCCESSFUL;

            // Write k=1.2 to TSET
            if (firsttime)
            {
                ReadOneByte(0x05, ref bdata);
                bdata &= 0xfc;
                bdata |= 0x02;
                WriteOneByte(0x05, bdata);
                firsttime = false;
            }
            // Write k=1.2 to TSET

            ret = ReadOneByte(0x40, ref bdata);
            if ((ret != LibErrorCode.IDS_ERR_SUCCESSFUL) || ((bdata & 0x20) == 0))
            {
                msg.sm.parts[0] = true;
                return(LibErrorCode.IDS_ERR_SUCCESSFUL);
            }
            else
            {
                msg.sm.parts[0] = false;
            }

            ret = ReadOneByte(0x10, ref bdata);
            if (ret != LibErrorCode.IDS_ERR_SUCCESSFUL)
            {
                msg.sm.parts[0] = true;
                return(LibErrorCode.IDS_ERR_SUCCESSFUL);
            }
            else
            {
                msg.sm.parts[0] = false;
            }

            if (bdata < 0x06)
            {
                ret = WriteOneByte(0x10, 0x0A);
                if (ret != LibErrorCode.IDS_ERR_SUCCESSFUL)
                {
                    msg.sm.parts[0] = true;
                    return(LibErrorCode.IDS_ERR_SUCCESSFUL);
                }
                else
                {
                    msg.sm.parts[0] = false;
                }
            }
#endif
            return(LibErrorCode.IDS_ERR_SUCCESSFUL);
        }
        public UInt32 Read(ref TASKMessage bgworker)
        {
            UInt32 ret = 0;

            //if (bgworker.gm.sflname == "Scan")          //Scan里面有个PreRead,所以这里只能区别处理
            //    ret = m_scan_dem_bm.Read(ref bgworker);
            //else
            ret = m_dem_bm_base.Read(ref bgworker);
            return(ret);
        }
        public UInt32 Command(ref TASKMessage bgworker)
        {
            var ret = m_dem_bm.Command(ref bgworker);

            if (ret != LibErrorCode.IDS_ERR_SUCCESSFUL)
            {
                m_dem_bm.PowerOff();
            }
            return(ret);
        }
        public UInt32 BitOperation(ref TASKMessage msg)
        {
            Reg    reg      = null;
            byte   baddress = 0;
            UInt32 ret      = LibErrorCode.IDS_ERR_SUCCESSFUL;

            List <byte> OpReglist = new List <byte>();

            ParamContainer demparameterlist = msg.task_parameterlist;

            if (demparameterlist == null)
            {
                return(ret);
            }

            foreach (Parameter p in demparameterlist.parameterlist)
            {
                if ((p.guid & ElementDefine.SectionMask) == ElementDefine.VirtualElement)    //略过虚拟参数
                {
                    continue;
                }
                switch (p.guid & ElementDefine.SectionMask)
                {
                case ElementDefine.OperationElement:
                {
                    if (p == null)
                    {
                        break;
                    }
                    foreach (KeyValuePair <string, Reg> dic in p.reglist)
                    {
                        reg      = dic.Value;
                        baddress = (byte)reg.address;

                        parent.m_OpRegImg[baddress].val = 0x00;
                        dem_dm.WriteToRegImg(p, 1);
                        OpReglist.Add(baddress);
                    }
                    break;
                }
                }
            }

            OpReglist = OpReglist.Distinct().ToList();

            //Write
            foreach (byte badd in OpReglist)
            {
                ret = WriteWord(badd, parent.m_OpRegImg[badd].val);
                parent.m_OpRegImg[badd].err = ret;
            }

            return(ret);
        }
Пример #13
0
        public override UInt32 Command(ref TASKMessage msg)
        {
            UInt32 ret = LibErrorCode.IDS_ERR_SUCCESSFUL;

            switch ((ElementDefine.COMMAND)msg.sub_task)
            {
            default:

                break;
            }
            return(ret);
        }
        private uint ReadAvrage(ref TASKMessage msg)
        {
            uint            errorcode = 0;
            List <double[]> llt       = new List <double[]>();
            List <double>   avr       = new List <double>();

            foreach (Parameter param in msg.task_parameterlist.parameterlist)
            {
                llt.Add(new double[5]);
                avr.Add(0);
            }
            for (int i = 0; i < 5; i++)
            {
                errorcode = Read(ref msg);
                if (errorcode != LibErrorCode.IDS_ERR_SUCCESSFUL)
                {
                    return(errorcode);
                }
                errorcode = ConvertHexToPhysical(ref msg);
                if (errorcode != LibErrorCode.IDS_ERR_SUCCESSFUL)
                {
                    return(errorcode);
                }
                for (int j = 0; j < msg.task_parameterlist.parameterlist.Count; j++)
                {
                    llt[j][i] = msg.task_parameterlist.parameterlist[j].phydata;
                    avr[j]   += llt[j][i];
                }
                Thread.Sleep(100);
            }

            for (int j = 0; j < msg.task_parameterlist.parameterlist.Count; j++)
            {
                //llt[j][i] = msg.task_parameterlist.parameterlist[j].phydata;
                avr[j] /= 5;
                int    minIndex = 0;
                double err      = 999;
                for (int i = 0; i < 5; i++)
                {
                    if (err > Math.Abs(llt[j][i] - avr[j]))
                    {
                        err      = Math.Abs(llt[j][i] - avr[j]);
                        minIndex = i;
                    }
                }
                msg.task_parameterlist.parameterlist[j].phydata = llt[j][minIndex];
            }
            return(errorcode);
        }
        private UInt32 GetEfuseHexData(ref TASKMessage msg)
        {
            string tmp = "";

            for (ushort i = ElementDefine.EF_USR_OFFSET; i <= ElementDefine.EF_USR_TOP; i++)
            {
                if (parent.m_OpRegImg[i].err != LibErrorCode.IDS_ERR_SUCCESSFUL)
                {
                    return(parent.m_OpRegImg[i].err);
                }
                tmp += "0x" + i.ToString("X2") + ", " + "0x" + parent.m_OpRegImg[i].val.ToString("X2") + "\r\n";
            }
            msg.sm.efusehexdata = tmp;
            return(LibErrorCode.IDS_ERR_SUCCESSFUL);
        }
        private UInt32 GetEfuseBinData(ref TASKMessage msg)
        {
            List <byte> tmp = new List <byte>();

            for (ushort i = ElementDefine.EF_USR_OFFSET; i <= ElementDefine.EF_USR_TOP; i++)
            {
                if (parent.m_OpRegImg[i].err != LibErrorCode.IDS_ERR_SUCCESSFUL)
                {
                    return(parent.m_OpRegImg[i].err);
                }
                tmp.Add((byte)i);
                tmp.Add((byte)(parent.m_OpRegImg[i].val));
            }
            msg.sm.efusebindata = tmp;
            return(LibErrorCode.IDS_ERR_SUCCESSFUL);
        }
        public UInt32 Read(ref TASKMessage msg)
        {
            Reg    reg      = null;
            byte   baddress = 0;
            UInt16 wdata    = 0;
            UInt32 ret      = LibErrorCode.IDS_ERR_SUCCESSFUL;

            List <byte> OpReglist = new List <byte>();

            ParamContainer demparameterlist = msg.task_parameterlist;

            if (demparameterlist == null)
            {
                return(ret);
            }


            foreach (Parameter p in demparameterlist.parameterlist)
            {
                if (p == null)
                {
                    break;
                }
                foreach (KeyValuePair <string, Reg> dic in p.reglist)
                {
                    reg      = dic.Value;
                    baddress = (byte)reg.address;
                    OpReglist.Add(baddress);
                }
            }
            OpReglist = OpReglist.Distinct().ToList();

            //Read

            foreach (byte badd in OpReglist)
            {
                ret = ReadWord(badd, ref wdata);
                parent.m_OpRegImg[badd].err = ret;
                parent.m_OpRegImg[badd].val = wdata;
                if (ret != LibErrorCode.IDS_ERR_SUCCESSFUL)
                {
                    return(ret);
                }
            }
            return(ret);
        }
        private UInt32 DownloadWithoutPowerControl(ref TASKMessage msg)
        {
            UInt32 ret = LibErrorCode.IDS_ERR_SUCCESSFUL;

            PrepareHexData();

            ret = SetWorkMode(ElementDefine.EFUSE_MODE.PROGRAM);
            if (ret != LibErrorCode.IDS_ERR_SUCCESSFUL)
            {
                return(ret);
            }

            for (byte badd = (byte)ElementDefine.EF_USR_OFFSET; badd <= (byte)ElementDefine.EF_USR_TOP; badd++)
            {
#if debug
                ret = LibErrorCode.IDS_ERR_SUCCESSFUL;
#else
                ret = parent.m_OpRegImg[badd].err;
#endif
                if (ret != LibErrorCode.IDS_ERR_SUCCESSFUL)
                {
                    return(ret);
                }

#if debug
                EFUSEUSRbuf[badd - ElementDefine.EF_USR_OFFSET] = 0;
#else
                EFUSEUSRbuf[badd - ElementDefine.EF_USR_OFFSET] = parent.m_OpRegImg[badd].val;
#endif
                ret = WriteByte((byte)(badd), (byte)parent.m_OpRegImg[badd].val);
                parent.m_OpRegImg[(byte)(badd)].err = ret;
                if (ret != LibErrorCode.IDS_ERR_SUCCESSFUL)
                {
                    return(ret);
                }
            }

            ret = SetWorkMode(ElementDefine.EFUSE_MODE.NORMAL);
            if (ret != LibErrorCode.IDS_ERR_SUCCESSFUL)
            {
                return(ret);
            }

            return(ret);
        }
 public UInt32 ConvertPhysicalToHex(ref TASKMessage bgworker)
 {
     if (bgworker.gm.sflname == "Expert")
     {
         return(m_expert_dem_bm.ConvertPhysicalToHex(ref bgworker));
     }
     else if (bgworker.gm.sflname == "Register Config")
     {
         return(m_register_config_dem_bm.ConvertPhysicalToHex(ref bgworker));
     }
     else if (bgworker.gm.sflname == "EFUSE Config")
     {
         return(m_efuse_config_dem_bm.ConvertPhysicalToHex(ref bgworker));
     }
     else
     {
         return(m_dem_bm_base.ConvertPhysicalToHex(ref bgworker));
     }
 }
        public virtual UInt32 Read(ref TASKMessage msg)
        {
            UInt16      wdata     = 0;
            UInt32      ret       = LibErrorCode.IDS_ERR_SUCCESSFUL;
            List <byte> OpReglist = new List <byte>();

            ParamContainer demparameterlist = msg.task_parameterlist;

            if (demparameterlist == null)
            {
                return(ret);
            }

            AutomationElement aElem = parent.m_busoption.GetATMElementbyGuid(AutomationElement.GUIDATMTestStart);

            if (aElem != null)
            {
                bool bsim = true;
                bsim |= (aElem.dbValue > 0.0) ? true : false;
                aElem = parent.m_busoption.GetATMElementbyGuid(AutomationElement.GUIDATMTestSimulation);
                bsim |= (aElem.dbValue > 0.0) ? true : false;
            }
            OpReglist = RegisterListGenerator.Generate(ref msg);
            if (OpReglist == null)
            {
                return(ret);
            }

            foreach (byte badd in OpReglist)
            {
                ret = ReadWord(badd, ref wdata);
                parent.m_OpRegImg[badd].err = ret;
                parent.m_OpRegImg[badd].val = wdata;
                if (ret != LibErrorCode.IDS_ERR_SUCCESSFUL)
                {
                    return(ret);
                }
            }
            return(ret);
        }
        public UInt32 Command(ref TASKMessage msg)
        {
            switch ((ElementDefine.COMMAND)msg.sub_task)
            {
            case ElementDefine.COMMAND.DGB:     //DBG
                WriteOneByte(0xe0, 0x64);
                WriteOneByte(0xe0, 0x62);
                WriteOneByte(0xe0, 0x67);
                break;

            case ElementDefine.COMMAND.BURN:     //BURN
                WriteOneByte(0xf9, 0x01);
                WriteOneByte(0xf9, 0x01);
                break;

            case ElementDefine.COMMAND.FREEZE:     //FREEZE
                WriteOneByte(0xf9, 0x02);
                WriteOneByte(0xf9, 0x02);
                break;
            }
            return(LibErrorCode.IDS_ERR_SUCCESSFUL);
        }
        public UInt32 ConvertPhysicalToHex(ref TASKMessage msg)
        {
            Parameter param = null;
            UInt32    ret   = LibErrorCode.IDS_ERR_SUCCESSFUL;

            List <Parameter> OpReglist = new List <Parameter>();

            ParamContainer demparameterlist = msg.task_parameterlist;

            if (demparameterlist == null)
            {
                return(ret);
            }

            foreach (Parameter p in demparameterlist.parameterlist)
            {
                if (p == null)
                {
                    continue;
                }
                OpReglist.Add(p);
            }

            if (OpReglist.Count != 0)
            {
                for (int i = 0; i < OpReglist.Count; i++)
                {
                    param = OpReglist[i];
                    if (param == null)
                    {
                        continue;
                    }

                    parent.Physical2Hex(ref param);
                }
            }
            return(ret);
        }
        public UInt32 Command(ref TASKMessage bgworker)
        {
            UInt32 ret = LibErrorCode.IDS_ERR_SUCCESSFUL;

            switch ((ElementDefine.COMMAND)bgworker.sub_task)
            {
            case ElementDefine.COMMAND.REGISTER_CONFIG_WRITE:
            case ElementDefine.COMMAND.REGISTER_CONFIG_READ:
            {
                ret = m_register_config_dem_bm.Command(ref bgworker);
                break;
            }

            case ElementDefine.COMMAND.EFUSE_CONFIG_WRITE:
            case ElementDefine.COMMAND.EFUSE_CONFIG_READ:
            case ElementDefine.COMMAND.EFUSE_CONFIG_SAVE_EFUSE_HEX:
            {
                ret = m_efuse_config_dem_bm.Command(ref bgworker);
                break;
            }
            }
            return(ret);
        }
        public UInt32 Write(ref TASKMessage msg)
        {
            UInt32      ret       = LibErrorCode.IDS_ERR_SUCCESSFUL;
            List <byte> OpReglist = new List <byte>();

            OpReglist = RegisterListGenerator.Generate(ref msg);
            if (OpReglist == null)
            {
                return(ret);
            }

            foreach (byte badd in OpReglist)
            {
                ret = WriteWord(badd, parent.m_OpRegImg[badd].val);
                parent.m_OpRegImg[badd].err = ret;
                if (ret != LibErrorCode.IDS_ERR_SUCCESSFUL)
                {
                    return(ret);
                }
            }

            return(ret);
        }
        public UInt32 Command(ref TASKMessage bgworker)
        {
            UInt32 ret = LibErrorCode.IDS_ERR_SUCCESSFUL;

            switch ((ElementDefine.COMMAND)bgworker.sub_task)
            {
            case ElementDefine.COMMAND.REGISTER_CONFIG_WRITE:
            case ElementDefine.COMMAND.REGISTER_CONFIG_READ:
            {
                ret = m_register_config_dem_bm.Command(ref bgworker);
                break;
            }

            case ElementDefine.COMMAND.EFUSE_CONFIG_WRITE:
            case ElementDefine.COMMAND.EFUSE_CONFIG_READ:
            case ElementDefine.COMMAND.EFUSE_CONFIG_SAVE_EFUSE_HEX:
            {
                ret = m_efuse_config_dem_bm.Command(ref bgworker);
                break;
            }

            case ElementDefine.COMMAND.MP_BIN_FILE_CHECK:
            case ElementDefine.COMMAND.MP_FROZEN_BIT_CHECK_PC:
            case ElementDefine.COMMAND.MP_FROZEN_BIT_CHECK:
            case ElementDefine.COMMAND.MP_DIRTY_CHIP_CHECK_PC:
            case ElementDefine.COMMAND.MP_DIRTY_CHIP_CHECK:
            case ElementDefine.COMMAND.MP_DOWNLOAD_PC:
            case ElementDefine.COMMAND.MP_DOWNLOAD:
            case ElementDefine.COMMAND.MP_READ_BACK_CHECK_PC:
            case ElementDefine.COMMAND.MP_READ_BACK_CHECK:
            {
                ret = m_mass_production_dem_bm.Command(ref bgworker);
                break;
            }
            }
            return(ret);
        }
        public UInt32 Command(ref TASKMessage bgworker)
        {
            UInt32 ret = LibErrorCode.IDS_ERR_SUCCESSFUL;

            //EXPERT_ENTER_SERIAL_MODE = 0x01,
            //EXPERT_ENTER_PARALLEL_MODE = 0x02,
            //EXPERT_ENTER_SHIP_MODE = 0x03,
            //EXPERT_ENTER_SLEEP_MODE = 0x04,
            //EXPERT_EXIT_SLEEP_MODE = 0x05,
            //EXPERT_ENTER_TEST_MODE = 0x06,
            //EXPERT_EXIT_TEST_MODE = 0x07,
            //EXPERT_ENTER_FET_CTRL = 0x08,
            //EXPERT_EXIT_FET_CTRL = 0x09,
            //EXPERT_ENTER_TRIM_MODE = 0x0a,
            switch ((ElementDefine.COMMAND)bgworker.sub_task)
            {
            case ElementDefine.COMMAND.EXPERT_ENTER_SERIAL_MODE:
            case ElementDefine.COMMAND.EXPERT_ENTER_PARALLEL_MODE:
            case ElementDefine.COMMAND.EXPERT_ENTER_SHIP_MODE:
            case ElementDefine.COMMAND.EXPERT_ENTER_SLEEP_MODE:
            case ElementDefine.COMMAND.EXPERT_EXIT_SLEEP_MODE:
            case ElementDefine.COMMAND.EXPERT_ENTER_TEST_MODE:
            case ElementDefine.COMMAND.EXPERT_EXIT_TEST_MODE:
            case ElementDefine.COMMAND.EXPERT_ENTER_FET_CTRL:
            case ElementDefine.COMMAND.EXPERT_EXIT_FET_CTRL:
            case ElementDefine.COMMAND.EXPERT_ENTER_TRIM_MODE:
                ret = m_expert_dem_bm.Command(ref bgworker);
                break;

            case ElementDefine.COMMAND.TRIM_SLOPE_TRIMMING:
            case ElementDefine.COMMAND.TRIM_OFFSET_TRIMMING:
                ret = m_trim_dem_bm.Command(ref bgworker);
                break;
            }
            return(ret);
        }
        public UInt32 GetRegisteInfor(ref TASKMessage msg)
        {
            UInt32 ret = LibErrorCode.IDS_ERR_SUCCESSFUL;

            return(ret);
        }
        public virtual UInt32 GetSystemInfor(ref TASKMessage msg)
        {
            UInt32 ret = LibErrorCode.IDS_ERR_SUCCESSFUL;

            return(ret);
        }
        public virtual UInt32 Command(ref TASKMessage msg)
        {
            UInt32 ret = LibErrorCode.IDS_ERR_SUCCESSFUL;

            return(ret);
        }
 public UInt32 ConvertHexToPhysical(ref TASKMessage bgworker)
 {
     return(m_dem_bm.ConvertHexToPhysical(ref bgworker));
 }