Ejemplo n.º 1
0
        public string GetHtmlTable(ECUConnection connection)
        {
            ECUMetadata metadata = connection.ConnectionProtocol.QueryECUMetadata(connection);

            string[][] rows = new string[][]
            {
                new string[] { "Variant ID", metadata.VariantID.ToString("X4") },
                new string[] { "Gateway Mode", metadata.GatewayMode.ToString() },
                new string[] { "Boot Version", metadata.BootVersion },
                new string[] { "Serial Number", metadata.SerialNumber },
                new string[] { "Chassis Number (Current)", metadata.ChassisNumberCurrent },
                new string[] { "Chassis Number (Original)", metadata.ChassisNumberOriginal },
                new string[] { "Hardware Part Number", metadata.HardwarePartNumber },
                new string[] { "Hardware Version", metadata.HardwareVersion },
                new string[] { "Hardware Supplier", ECUMetadata.GetVendorName(metadata.VendorID) },
            };

            StringBuilder ecuTableRows = new StringBuilder();

            foreach (string[] row in rows)
            {
                ecuTableRows.AppendLine($"<tr><td>{row[0]}</td><td>{row[1]}</td></tr>");
            }

            StringBuilder swBlockRows = new StringBuilder();

            foreach (ECUFlashMetadata flash in metadata.FlashMetadata)
            {
                string flashStatus = flash.StatusID == 1 ? "Valid" : "Invalid";
                swBlockRows.AppendLine($@"
<h3>SW Block #{flash.Index}</h3>
<table>
    <tr><td>Part Number</td><td>{flash.PartNumber}</td></tr>
    <tr><td>Version</td><td>{flash.Version}</td></tr>
    <tr><td>Vendor</td><td>{ECUMetadata.GetVendorName(flash.VendorID)}</td></tr>
    <tr><td>Status</td><td>{flashStatus}</td></tr>
    <tr><td>Last Flash Vendor</td><td>{ECUMetadata.GetVendorName(flash.LastFlashVendor)}</td></tr>
    <tr><td>Last Flash Date</td><td>{flash.FlashDate}</td></tr>
    <tr><td>Flash Fingerprint</td><td>{flash.FlashFingerprint}</td></tr>
</table>
");
            }

            return($@"
    <hr>
    <h3>Hardware</h3>
    <table>
        {ecuTableRows}
    </table>
    {swBlockRows}
");
        }
Ejemplo n.º 2
0
        public static void ShowMetadataModal(ECUConnection connection)
        {
            if (connection.ConnectionProtocol is null)
            {
                Console.WriteLine("Please initiate contact with a target first.");
                return;
            }
            ECUMetadata metadata = connection.ConnectionProtocol.QueryECUMetadata(connection);

            string[][] rows = new string[][]
            {
                new string[] { "Variant ID", metadata.VariantID.ToString("X4") },
                new string[] { "Gateway Mode", metadata.GatewayMode.ToString() },
                new string[] { "Boot Version", metadata.BootVersion },
                new string[] { "Serial Number", metadata.SerialNumber },
                new string[] { "Chassis Number (Current)", metadata.ChassisNumberCurrent },
                new string[] { "Chassis Number (Original)", metadata.ChassisNumberOriginal },
                new string[] { "Hardware Part Number", metadata.HardwarePartNumber },
                new string[] { "Hardware Version", metadata.HardwareVersion },
                new string[] { "Hardware Supplier", ECUMetadata.GetVendorName(metadata.VendorID) },
            };

            List <string[]> rowsAsList = new List <string[]>(rows);

            foreach (ECUFlashMetadata flash in metadata.FlashMetadata)
            {
                string blockPrefix = $"SW Block #{flash.Index} : ";
                string flashStatus = flash.StatusID == 1 ? "Valid" : "Invalid";

                rowsAsList.Add(new string[] { $"{blockPrefix}Descriptor", $"{flash.PartNumber} [Version {flash.Version} from {ECUMetadata.GetVendorName(flash.VendorID)}]" });
                rowsAsList.Add(new string[] { $"{blockPrefix}Status", $"{flashStatus}, Last flashed by {ECUMetadata.GetVendorName(flash.LastFlashVendor)} on {flash.FlashDate} (Fingerprint: {flash.FlashFingerprint})" });
            }

            GenericPicker picker = new GenericPicker(rowsAsList.ToArray(), new string[] { "Attribute", "Value" });

            picker.Text = "ECU Metadata";
            picker.ShowDialog();
        }
Ejemplo n.º 3
0
 private void viewECUMetadataToolStripMenuItem_Click(object sender, EventArgs e)
 {
     ECUMetadata.ShowMetadataModal(Connection);
 }