根据变量类型进行逐一解析

                       switch (variable.VarType.ToUpper())
                            {
                                case "BOOL":
                                    variable.VarValue = BitLib.GetBitFrom2BytesArray(result.Content, start, offset,
                                       (DataFormat)device.DataFormat == DataFormat.ABCD || (DataFormat)device.DataFormat == DataFormat.CDAB);
                                    break;
                                case "BYTE":
                                    variable.VarValue = ByteLib.GetByteFromByteArray(result.Content,
                                        (DataFormat)device.DataFormat == DataFormat.ABCD || (DataFormat)device.DataFormat == DataFormat.CDAB ? start : start + 1);
                                    break;
                                case "SHORT":
                                    variable.VarValue = ShortLib.GetShortFromByteArray(result.Content, start, (DataFormat)device.DataFormat);
                                    break;
                                case "USHORT":
                                    variable.VarValue = UShortLib.GetUShortFromByteArray(result.Content, start, (DataFormat)device.DataFormat);
                                    break;
                                case "INT":
                                    variable.VarValue = IntLib.GetIntFromByteArray(result.Content, start, (DataFormat)device.DataFormat);
                                    break;
                                case "UINT":
                                    variable.VarValue = UIntLib.GetUIntFromByteArray(result.Content, start, (DataFormat)device.DataFormat);
                                    break;
                                case "LONG":
                                    variable.VarValue = LongLib.GetLongFromByteArray(result.Content, start, (DataFormat)device.DataFormat);
                                    break;
                                case "ULONG":
                                    variable.VarValue = ULongLib.GetULongFromByteArray(result.Content, start, (DataFormat)device.DataFormat);
                                    break;
                                case "FLOAT":
                                    variable.VarValue = FloatLib.GetFloatFromByteArray(result.Content, start, (DataFormat)device.DataFormat);
                                    break;
                                case "DOUBLE":
                                    variable.VarValue = DoubleLib.GetDoubleFromByteArray(result.Content, start, (DataFormat)device.DataFormat);
                                    break;
                                case "STRING":
                                    variable.VarValue = StringLib.GetStringFromByteArrayByEncoding(result.Content, start, offset, Encoding.ASCII);
                                    break;
                                case "BYTEARRAY":
                                    variable.VarValue = ByteArrayLib.GetByteArrayFromByteArray(result.Content, start, offset);
                                    break;
                                case "HEXSTRING":
                                    variable.VarValue = StringLib.GetHexStringFromByteArray(result.Content, start, offset);
                                    break;
                                default:
                                    break;
                            }
posted @ 2024-03-20 15:32  $虫虫$  阅读(28)  评论(0)    收藏  举报