Ejemplo n.º 1
0
        private void ParseSvsData(byte[] data)
        {
            int length = data.Length;
            int index = 0;

            while (length>0)
            {

                switch (status)
                {
                    case EthStatus.ETH_WAIT_ID_MESSAGE_1:
                        if(data[index] == 0x07)
                        {
                            status = EthStatus.ETH_WAIT_ID_MESSAGE_2;
                        }
                        else
                        {
                            status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                        }
                    break;

                    case EthStatus.ETH_WAIT_ID_MESSAGE_2:
                        if (data[index] == 0x00)
                        {
                            status = EthStatus.ETH_WAIT_ID_MESSAGE_3;
                        }
                        else
                        {
                            status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                        }
                    break;

                    case EthStatus.ETH_WAIT_ID_MESSAGE_3:
                        if (data[index] == 0x00)
                        {
                            status = EthStatus.ETH_WAIT_ID_MESSAGE_4;
                        }
                        else
                        {
                            status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                        }
                    break;

                    case EthStatus.ETH_WAIT_ID_MESSAGE_4:
                        if (data[index] == 0x00)
                        {
                            status = EthStatus.ETH_WAIT_LENGTH_1;
                        }
                        else
                        {
                            status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                        }
                    break;

                    case EthStatus.ETH_WAIT_LENGTH_1:
                    {
                        if (data[index] == 0x0C)
                        {
                            status = EthStatus.ETH_WAIT_LENGTH_2;
                        }
                        else
                        {
                            status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                        }

                    }
                    break;

                    case EthStatus.ETH_WAIT_LENGTH_2:
                    {
                        if (data[index] == 0x00)
                        {
                            status = EthStatus.ETH_WAIT_LENGTH_3;
                        }
                        else
                        {
                            status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                        }

                    }
                    break;

                    case EthStatus.ETH_WAIT_LENGTH_3:
                    {
                        if (data[index] == 0x00)
                        {
                            status = EthStatus.ETH_WAIT_LENGTH_4;
                        }
                        else
                        {
                            status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                        }

                    }
                    break;

                    case EthStatus.ETH_WAIT_LENGTH_4:
                    {
                        if (data[index] == 0x00)
                        {
                            status = EthStatus.ETH_WAIT_MESSAGE_COUNTER_1;
                        }
                        else
                        {
                            status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                        }

                    }
                    break;

                    case EthStatus.ETH_WAIT_MESSAGE_COUNTER_1:
                    {
                        svsPayload[0] = data[index];
                        status = EthStatus.ETH_WAIT_MESSAGE_COUNTER_2;
                    }
                    break;

                    case EthStatus.ETH_WAIT_MESSAGE_COUNTER_2:
                    {
                        status = EthStatus.ETH_WAIT_MESSAGE_COUNTER_3;
                    }
                    break;

                    case EthStatus.ETH_WAIT_MESSAGE_COUNTER_3:
                    {
                        status = EthStatus.ETH_WAIT_MESSAGE_COUNTER_4;
                    }
                    break;

                    case EthStatus.ETH_WAIT_MESSAGE_COUNTER_4:
                    {
                        status = EthStatus.ETH_WAIT_CRANK_STATUS;
                    }
                    break;

                    case EthStatus.ETH_WAIT_CRANK_STATUS:
                        svsPayload[1] = data[index];
                        status = EthStatus.ETH_WAIT_BATTERY_STATUS;
                    break;

                    case EthStatus.ETH_WAIT_BATTERY_STATUS:
                        svsPayload[2] = data[index];
                        status = EthStatus.ETH_WAIT_DOORS_STATUS;
                    break;

                    case EthStatus.ETH_WAIT_DOORS_STATUS:
                        svsPayload[3] = data[index];
                        status = EthStatus.ETH_WAIT_HATCH_STATUS;
                    break;

                    case EthStatus.ETH_WAIT_HATCH_STATUS:
                        svsPayload[4] = data[index];
                        status = EthStatus.ETH_WAIT_RISERVETTA_DX_HE;
                    break;

                    case EthStatus.ETH_WAIT_RISERVETTA_DX_HE:
                        svsPayload[5] = data[index];
                        status = EthStatus.ETH_WAIT_RISERVETTA_DX_MP;
                    break;

                    case EthStatus.ETH_WAIT_RISERVETTA_DX_MP:
                        svsPayload[6] = data[index];
                        status = EthStatus.ETH_WAIT_RISERVETTA_DX_AP;
                    break;

                    case EthStatus.ETH_WAIT_RISERVETTA_DX_AP:
                        svsPayload[7] = data[index];
                        status = EthStatus.ETH_WAIT_RISERVETTA_SX_HE;
                    break;

                    case EthStatus.ETH_WAIT_RISERVETTA_SX_HE:
                        svsPayload[8] = data[index];
                        status = EthStatus.ETH_WAIT_RISERVETTA_SX_MP;
                    break;

                    case EthStatus.ETH_WAIT_RISERVETTA_SX_MP:
                        svsPayload[9] = data[index];
                        status = EthStatus.ETH_WAIT_RISERVETTA_SX_AP;
                    break;

                    case EthStatus.ETH_WAIT_RISERVETTA_SX_AP:
                        svsPayload[10] = data[index];
                        status = EthStatus.ETH_WAIT_SPARE_1;
                    break;

                    case EthStatus.ETH_WAIT_SPARE_1:
                        status = EthStatus.ETH_WAIT_SPARE_2;
                    break;

                    case EthStatus.ETH_WAIT_SPARE_2:
                        status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                        // TODO: update form controls
                        message_counter.Text = svsPayload[0].ToString();
                        CrankStatus.Text = svsPayload[1].ToString();
                        BatteryStatus.Text = svsPayload[2].ToString();
                        DoorsStatus.Text = svsPayload[3].ToString();
                        HatchStatus.Text = svsPayload[4].ToString();
                        DX_HE.Text = svsPayload[5].ToString();
                        DX_MP.Text = svsPayload[6].ToString();
                        DX_AP.Text = svsPayload[7].ToString();
                        SX_HE.Text = svsPayload[8].ToString();
                        SX_MP.Text = svsPayload[9].ToString();
                        SX_AP.Text = svsPayload[10].ToString();

                        //buttonSendType6_Click(null, null);

                        cruscottoTxEnable++;
                        break;

                    default:
                        status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                    break;
                }

                index++;
                length--;
            };
        }
Ejemplo n.º 2
0
        private void ParseSvsData(byte[] data)
        {
            int length = data.Length;
            int index  = 0;

            while (length > 0)
            {
                switch (status)
                {
                case EthStatus.ETH_WAIT_ID_MESSAGE_1:
                    if (data[index] == 0x07)
                    {
                        status = EthStatus.ETH_WAIT_ID_MESSAGE_2;
                    }
                    else
                    {
                        status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                    }
                    break;

                case EthStatus.ETH_WAIT_ID_MESSAGE_2:
                    if (data[index] == 0x00)
                    {
                        status = EthStatus.ETH_WAIT_ID_MESSAGE_3;
                    }
                    else
                    {
                        status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                    }
                    break;

                case EthStatus.ETH_WAIT_ID_MESSAGE_3:
                    if (data[index] == 0x00)
                    {
                        status = EthStatus.ETH_WAIT_ID_MESSAGE_4;
                    }
                    else
                    {
                        status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                    }
                    break;

                case EthStatus.ETH_WAIT_ID_MESSAGE_4:
                    if (data[index] == 0x00)
                    {
                        status = EthStatus.ETH_WAIT_LENGTH_1;
                    }
                    else
                    {
                        status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                    }
                    break;

                case EthStatus.ETH_WAIT_LENGTH_1:
                {
                    if (data[index] == 0x0C)
                    {
                        status = EthStatus.ETH_WAIT_LENGTH_2;
                    }
                    else
                    {
                        status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                    }
                }
                break;

                case EthStatus.ETH_WAIT_LENGTH_2:
                {
                    if (data[index] == 0x00)
                    {
                        status = EthStatus.ETH_WAIT_LENGTH_3;
                    }
                    else
                    {
                        status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                    }
                }
                break;

                case EthStatus.ETH_WAIT_LENGTH_3:
                {
                    if (data[index] == 0x00)
                    {
                        status = EthStatus.ETH_WAIT_LENGTH_4;
                    }
                    else
                    {
                        status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                    }
                }
                break;

                case EthStatus.ETH_WAIT_LENGTH_4:
                {
                    if (data[index] == 0x00)
                    {
                        status = EthStatus.ETH_WAIT_MESSAGE_COUNTER_1;
                    }
                    else
                    {
                        status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                    }
                }
                break;

                case EthStatus.ETH_WAIT_MESSAGE_COUNTER_1:
                {
                    svsPayload[0] = data[index];
                    status        = EthStatus.ETH_WAIT_MESSAGE_COUNTER_2;
                }
                break;

                case EthStatus.ETH_WAIT_MESSAGE_COUNTER_2:
                {
                    status = EthStatus.ETH_WAIT_MESSAGE_COUNTER_3;
                }
                break;

                case EthStatus.ETH_WAIT_MESSAGE_COUNTER_3:
                {
                    status = EthStatus.ETH_WAIT_MESSAGE_COUNTER_4;
                }
                break;

                case EthStatus.ETH_WAIT_MESSAGE_COUNTER_4:
                {
                    status = EthStatus.ETH_WAIT_CRANK_STATUS;
                }
                break;

                case EthStatus.ETH_WAIT_CRANK_STATUS:
                    svsPayload[1] = data[index];
                    status        = EthStatus.ETH_WAIT_BATTERY_STATUS;
                    break;

                case EthStatus.ETH_WAIT_BATTERY_STATUS:
                    svsPayload[2] = data[index];
                    status        = EthStatus.ETH_WAIT_DOORS_STATUS;
                    break;

                case EthStatus.ETH_WAIT_DOORS_STATUS:
                    svsPayload[3] = data[index];
                    status        = EthStatus.ETH_WAIT_HATCH_STATUS;
                    break;

                case EthStatus.ETH_WAIT_HATCH_STATUS:
                    svsPayload[4] = data[index];
                    status        = EthStatus.ETH_WAIT_RISERVETTA_DX_HE;
                    break;

                case EthStatus.ETH_WAIT_RISERVETTA_DX_HE:
                    svsPayload[5] = data[index];
                    status        = EthStatus.ETH_WAIT_RISERVETTA_DX_MP;
                    break;

                case EthStatus.ETH_WAIT_RISERVETTA_DX_MP:
                    svsPayload[6] = data[index];
                    status        = EthStatus.ETH_WAIT_RISERVETTA_DX_AP;
                    break;

                case EthStatus.ETH_WAIT_RISERVETTA_DX_AP:
                    svsPayload[7] = data[index];
                    status        = EthStatus.ETH_WAIT_RISERVETTA_SX_HE;
                    break;

                case EthStatus.ETH_WAIT_RISERVETTA_SX_HE:
                    svsPayload[8] = data[index];
                    status        = EthStatus.ETH_WAIT_RISERVETTA_SX_MP;
                    break;

                case EthStatus.ETH_WAIT_RISERVETTA_SX_MP:
                    svsPayload[9] = data[index];
                    status        = EthStatus.ETH_WAIT_RISERVETTA_SX_AP;
                    break;

                case EthStatus.ETH_WAIT_RISERVETTA_SX_AP:
                    svsPayload[10] = data[index];
                    status         = EthStatus.ETH_WAIT_SPARE_1;
                    break;

                case EthStatus.ETH_WAIT_SPARE_1:
                    status = EthStatus.ETH_WAIT_SPARE_2;
                    break;

                case EthStatus.ETH_WAIT_SPARE_2:
                    status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                    // TODO: update form controls
                    message_counter.Text = svsPayload[0].ToString();
                    CrankStatus.Text     = svsPayload[1].ToString();
                    BatteryStatus.Text   = svsPayload[2].ToString();
                    DoorsStatus.Text     = svsPayload[3].ToString();
                    HatchStatus.Text     = svsPayload[4].ToString();
                    DX_HE.Text           = svsPayload[5].ToString();
                    DX_MP.Text           = svsPayload[6].ToString();
                    DX_AP.Text           = svsPayload[7].ToString();
                    SX_HE.Text           = svsPayload[8].ToString();
                    SX_MP.Text           = svsPayload[9].ToString();
                    SX_AP.Text           = svsPayload[10].ToString();

                    //buttonSendType6_Click(null, null);

                    cruscottoTxEnable++;
                    break;

                default:
                    status = EthStatus.ETH_WAIT_ID_MESSAGE_1;
                    break;
                }

                index++;
                length--;
            }
            ;
        }