예제 #1
0
        private void button5_Click(object sender, EventArgs e)
        {
            textBox5.AppendText("enum = " + ((t1)0x83).ToString() + Environment.NewLine);
            textBox5.AppendText("enum = " + ((t2)0x83).ToString() + Environment.NewLine);
            textBox5.AppendText("enum = " + Enum.IsDefined(typeof(t1), 0x83) + Environment.NewLine);
            textBox5.AppendText("enum = " + Enum.IsDefined(typeof(t2), 0x83) + Environment.NewLine);

            if (!textBox4.Text.Equals(string.Empty))
            {
                string temp = LEVUtilityLibrary.MassUtilities.StringTrim_Replace_EnterAndTab_CombineMultiSpaceToOne(textBox4.Text);
                textBox5.AppendText("temp = " + temp + Environment.NewLine);
                byte[] array = LEVUtilityLibrary.MassUtilities.HexStringToByteArray(temp);
                byte[] unpacking;
                int    st, ed, dst, ded;
                LEVUtilityLibrary.BatteryPack_OneWirePacketFormat.OneWireDataGroup group = LEVUtilityLibrary.BatteryPack_OneWirePacketFormat.UnPacking(array, out unpacking, out st, out ed, out dst, out ded);
                string data = LEVUtilityLibrary.MassUtilities.ByteArrayToHexString(unpacking, true);
                textBox5.AppendText("group = " + group + Environment.NewLine);
                textBox5.AppendText("start idx = " + st + Environment.NewLine);
                textBox5.AppendText("end idx = " + ed + Environment.NewLine);
                textBox5.AppendText("data start idx = " + dst + Environment.NewLine);
                textBox5.AppendText("data end idx = " + ded + Environment.NewLine);
                textBox5.AppendText("data = " + data + Environment.NewLine);
            }
        }
예제 #2
0
        public List <ReceivedPacket> DataDetector(byte[] appendRawData)
        {
            List <ReceivedPacket> detectorData = new List <ReceivedPacket>();
            //BatteryReceived_DataGroup group;
            byte respondCmd;

            byte[] receivedData;

            bool           detectFlag            = false;
            bool           uartFound             = false;
            int            segStartIdxOfRawData  = 0;
            int            segEndIdxOfRawData    = 0;
            int            dataStartIdxOfRawData = 0;
            int            dataEndIdxOfRawData   = 0;
            ReceivedPacket packet;

            rawData.AddRange(appendRawData);

            do
            {
                detectFlag = false;
                uartFound  = LEVUtilityLibrary.BatteryPack_UARTPacketFormat.Unpacking(
                    rawData.ToArray <byte>(),
                    out respondCmd,
                    out receivedData,
                    out segStartIdxOfRawData,
                    out segEndIdxOfRawData);
                if (uartFound)
                {
                    packet.Type = RespondedDataType.Uart_Cmd_Respond;
                    packet.Cmd  = respondCmd;
                    packet.Data = receivedData;
                    detectorData.Add(packet);
                    rawData.RemoveRange(segStartIdxOfRawData, segEndIdxOfRawData - segStartIdxOfRawData + 1);
                    detectFlag = true;
                }
                LEVUtilityLibrary.BatteryPack_OneWirePacketFormat.OneWireDataGroup oneWireGroup =
                    LEVUtilityLibrary.BatteryPack_OneWirePacketFormat.UnPacking(
                        rawData.ToArray <byte>(),
                        out receivedData,
                        out segStartIdxOfRawData,
                        out segEndIdxOfRawData,
                        out dataStartIdxOfRawData,
                        out dataEndIdxOfRawData);
                if (oneWireGroup != LEVUtilityLibrary.BatteryPack_OneWirePacketFormat.OneWireDataGroup.None)
                {
                    detectFlag = true;
                    if (oneWireGroup == LEVUtilityLibrary.BatteryPack_OneWirePacketFormat.OneWireDataGroup.LEV_ST_G2_OneWire_EEPROM_Group)
                    {
                        packet.Type = RespondedDataType.LEV_ST_G2_OneWire_EEPROM;
                    }
                    else if (oneWireGroup == LEVUtilityLibrary.BatteryPack_OneWirePacketFormat.OneWireDataGroup.LEV_ST_G2_OneWire_SystemData_Group)
                    {
                        packet.Type = RespondedDataType.LEV_ST_G2_OneWire_SystemData;
                    }
                    else
                    {
                        throw new Exception("OneWire Data Group Detect Failure");
                    }
                    packet.Cmd  = 0;
                    packet.Data = receivedData;
                    detectorData.Add(packet);
                    rawData.RemoveRange(0, segEndIdxOfRawData + 1);
                }
            } while (detectFlag);

            return(detectorData);
        }