Example #1
0
        //*******************************************************************************
        //  Function Name : funDecimalConvert()
        //  Description   : 10진수 Data 를 원하는 Data 로 바꾸어 준다
        //  Parameters    : strData => Decimal Data(16706)
        //                  dStringType     => 바꾸고자 하는 Type
        //  Return Value  :
        //  Special Notes :
        //*******************************************************************************
        //  2006/11/08          어 경태         [L 00]
        //*******************************************************************************
        public string funDecimalConvert(string strData, CommonAct.EnuCommunication.StringType StringType)
        {
            string dstrReturn = "";
            string dstrTemp   = "";

            try
            {
                switch (StringType)
                {
                //Decimal Data(16706) => Binary Data(0100 0001 0100 0010)
                case CommonAct.EnuCommunication.StringType.Binary:
                    dstrReturn = funDecimalConvert(strData, CommonAct.EnuCommunication.StringType.Hex);       //10진수를 16진수로 변환
                    dstrReturn = funHexConvert(dstrReturn, CommonAct.EnuCommunication.StringType.Binary);     //HEX를 Bynary로 바꾼다.
                    break;

                //Decimal Data(1089) => Hex Data(0441)
                case CommonAct.EnuCommunication.StringType.Hex:
                    dstrTemp = string.Format("{0:X}", Convert.ToInt32(strData));                        //10진수를 16진수로 바꾼다.
                    if (dstrTemp.Length % 4 != 0)
                    {
                        int dintTemp = dstrTemp.Length / 4;
                        dintTemp = dintTemp + 1;

                        dstrTemp = dstrTemp.PadLeft(dintTemp * 4, '0');
                    }
                    dstrReturn = dstrTemp;
                    break;

                //Decimal Data(16706) => ASC String(AB)
                case CommonAct.EnuCommunication.StringType.ASCString:
                    dstrReturn = funDecimalConvert(strData, CommonAct.EnuCommunication.StringType.Hex);           //10진수를 16진수로 변환
                    dstrReturn = funHexConvert(dstrReturn, CommonAct.EnuCommunication.StringType.ASCString);      //HEX를 ASC String으로 바꾼다.
                    break;

                //Decimal Data(16706) => ASC Code(6566)
                case CommonAct.EnuCommunication.StringType.ASCCode:
                    dstrReturn = funDecimalConvert(strData, CommonAct.EnuCommunication.StringType.Hex);           //10진수를 16진수로 변환
                    dstrReturn = funHexConvert(dstrReturn, CommonAct.EnuCommunication.StringType.ASCCode);        //HEX를 ASC Code로 바꾼다.
                    break;

                default:
                    dstrReturn = strData;
                    break;
                }
            }
            catch
            {
                //this.PInfo.subLog_Set(InfoAct.clsInfo.LogType.CIM, ex.ToString() + ", strData:" + strData + ", StringType:" + StringType);
            }

            return(dstrReturn);
        }
Example #2
0
        //*******************************************************************************
        //  Function Name : funBinConvert()
        //  Description   : Binary Data 를 원하는 Data 로 바꾸어 준다
        //  Parameters    : strHEXData => Decimal Data(16706)
        //                  dStringType     => 바꾸고자 하는 Type
        //  Return Value  :
        //  Special Notes :
        //*******************************************************************************
        //  2006/11/08          어 경태         [L 00]
        //*******************************************************************************
        public string funBinConvert(string strData, CommonAct.EnuCommunication.StringType StringType)
        {
            string dstrReturn = "";
            int    dintTemp   = 0;

            try
            {
                switch (StringType)
                {
                //Binary Data(0100 0001 0100 0010) => Decimal Data(1089)
                case CommonAct.EnuCommunication.StringType.Binary:
                    dstrReturn = funBinConvert(strData, CommonAct.EnuCommunication.StringType.Hex);                       //2진수를 16진수로 변환
                    dstrReturn = funHexConvert(dstrReturn, CommonAct.EnuCommunication.StringType.Decimal);                //HEX를 Decimal로 바꾼다.
                    break;

                //Binary Data(0100 0001 0100 0010) => Hex Data(0441)
                case CommonAct.EnuCommunication.StringType.Hex:
                    dintTemp   = Convert.ToInt32(strData, 2);                                                       //2진수를 10진수로 변환
                    dstrReturn = funDecimalConvert(dintTemp.ToString(), CommonAct.EnuCommunication.StringType.Hex); //10진수를 16진수로 변환
                    break;

                //Binary Data(0100 0001 0100 0010) => ASC String(AB)
                case CommonAct.EnuCommunication.StringType.ASCString:
                    dstrReturn = funBinConvert(strData, CommonAct.EnuCommunication.StringType.Hex);                       //2진수를 16진수로 변환
                    dstrReturn = funHexConvert(dstrReturn, CommonAct.EnuCommunication.StringType.ASCString);              //HEX를 ASC String으로 바꾼다.
                    break;

                //Binary Data(0100 0001 0100 0010) => ASC Code(6566)
                case CommonAct.EnuCommunication.StringType.ASCCode:
                    dstrReturn = funBinConvert(strData, CommonAct.EnuCommunication.StringType.Hex);                       //2진수를 16진수로 변환
                    dstrReturn = funHexConvert(dstrReturn, CommonAct.EnuCommunication.StringType.ASCString);              //HEX를 ASC Code로 바꾼다.
                    break;

                default:
                    dstrReturn = strData;
                    break;
                }
            }
            catch
            {
                //this.PInfo.subLog_Set(InfoAct.clsInfo.LogType.CIM, ex.ToString() + ", strData:" + strData + ", StringType:" + StringType);
            }

            return(dstrReturn);
        }
Example #3
0
        //*******************************************************************************
        //  Function Name : funHexConvert()
        //  Description   : HEX Data 를 원하는 Data 로 바꾸어 준다
        //  Parameters    : strData         => HexData = Hex Data(4142)
        //                  dStringType     => 바꾸고자 하는 Type
        //  Return Value  :
        //  Special Notes :
        //*******************************************************************************
        //  2006/11/08          어 경태         [L 00]
        //*******************************************************************************
        public string funHexConvert(string strData, CommonAct.EnuCommunication.StringType StringType)
        {
            string dstrReturn = "";
            string dstrTemp   = "";
            int    dintTemp   = 0;

            try
            {
                switch (StringType)
                {
                //Hex Data(4142) => Binary Data(0100 0010 0100 0001)
                case CommonAct.EnuCommunication.StringType.Binary:
                    for (int i = 0; i < strData.Length; i++)
                    {
                        string c = Convert.ToString(strData.Substring(i, 1));
                        dintTemp = Convert.ToInt32(c, 16);                                   //16진수를 10진수로 변환
                        dstrTemp = Convert.ToString(dintTemp, 2);                            //10진수를 2진수로 바꾼다.
                        dstrTemp = string.Format("{0:0000}", Convert.ToInt32(dstrTemp));     //앞에 0이 붙는 4자리의 2진수로 바꾼다.

                        dstrReturn += dstrTemp;
                    }
                    break;

                //Hex Data(4142) => Decimal Data(16706)
                case CommonAct.EnuCommunication.StringType.Decimal:
                    dstrTemp   = Convert.ToInt32(strData, 16).ToString();
                    dstrReturn = dstrTemp;
                    break;

                //Hex Data(4142) => ASC String(AB)
                case CommonAct.EnuCommunication.StringType.ASCString:
                    for (int i = 0; i < strData.Length; i = i + 2)
                    {
                        string c = Convert.ToString(strData.Substring(i, 2));                //2개씩 끊어 읽어온다.
                        dintTemp = Convert.ToInt32(c, 16);                                   //16진수를 10진수로 변환한다.
                        byte d = Convert.ToByte(dintTemp);                                   //10진수를 Byte형태로 전환
                        dstrTemp    = Convert.ToString(Convert.ToChar(d));                   //Byte형태의 10진수를 ASC 문자로 변환한다.
                        dstrReturn += dstrTemp;
                    }
                    break;

                //Hex Data(4142) => ASC Code(6566)
                case CommonAct.EnuCommunication.StringType.ASCCode:
                    for (int i = 0; i < strData.Length; i = i + 2)
                    {
                        string c = Convert.ToString(strData.Substring(i, 2));               //2개씩 끊어 읽어온다.
                        dintTemp    = Convert.ToInt32(c, 16);                               //16진수를 10진수로 변환한다.
                        dstrTemp    = string.Format("{0:D2}", dintTemp);                    //10진수를 10진수 2자리 문자로 바꾼다.
                        dstrReturn += dstrTemp;
                    }
                    break;

                default:
                    dstrReturn = strData;
                    break;
                }
            }
            catch
            {
                // this.PInfo.subLog_Set(InfoAct.clsInfo.LogType.CIM, ex.ToString() + ", strData:" + strData + ", StringType:" + StringType);
            }

            return(dstrReturn);
        }
Example #4
0
        //*******************************************************************************
        //  Function Name : funAscCodeConvert()
        //  Description   : Asc Code Data 를 원하는 Data 로 바꾸어 준다
        //  Parameters    : strData         => ASCII Code Data
        //                  dStringType     => 바꾸고자 하는 Type
        //  Return Value  :
        //  Special Notes :
        //*******************************************************************************
        //  2007/02/15          최 성원         [L 00]
        //*******************************************************************************
        public string funAscCodeConvert(string strData, CommonAct.EnuCommunication.StringType StringType)
        {
            //지역변수 선언
            string dstrReturn   = "";   //리턴할 값
            string dstrTemp     = "";   //임시로 저장할 함수
            int    dintLength   = 0;    //스트링 길이
            string dstrDataTemp = "";   //임시 저장장소


            try
            {
                dintLength = strData.Length;

                //변환 가능한 범위를 숫자와 영어대문자로 가정한다.
                if (dintLength % 2 == 0)
                {
                    //아스키 스트링형으로 변환
                    for (int i = 0; i < dintLength; i = i + 2)
                    {
                        int dintTemp = Convert.ToInt32(strData.Substring(i, 2));    //아스키 코드를 가져와서 int 형으로 변환
                        dstrTemp = string.Format("{0:X}", dintTemp);                //Hex 형식으로 변환

                        dstrDataTemp = dstrDataTemp + dstrTemp;
                    }

                    //Hex 변환함수에서 다른 타입으로 변환을 한다.
                    switch (StringType)
                    {
                    case CommonAct.EnuCommunication.StringType.Binary:
                        dstrReturn = funHexConvert(dstrDataTemp, CommonAct.EnuCommunication.StringType.Binary);
                        break;

                    case CommonAct.EnuCommunication.StringType.Hex:
                        dstrReturn = dstrDataTemp;
                        break;

                    case CommonAct.EnuCommunication.StringType.Decimal:
                        dstrReturn = funHexConvert(dstrDataTemp, CommonAct.EnuCommunication.StringType.Decimal);
                        break;

                    case CommonAct.EnuCommunication.StringType.ASCString:
                        dstrReturn = funHexConvert(dstrDataTemp, CommonAct.EnuCommunication.StringType.ASCString);
                        break;

                    default:
                        dstrReturn = strData;
                        break;
                    }
                }
                else
                {
                    //변환 불가능
                }
            }
            catch
            {
                //this.PInfo.subLog_Set(InfoAct.clsInfo.LogType.CIM, ex.ToString() + ", strData:" + strData + ", StringType:" + StringType);
            }

            return(dstrReturn);
        }