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--; }; }
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--; } ; }