Penukar Kelajuan CANBUS
Skrip python ini menggunakan fail teks yang terdiri daripada nilai yang dieksport daripada Tshark. Lajur yang dieksport ini terdiri daripada setiap muatan CANBUS yang merupakan nilai Hex 5 bait. (10 aksara) Program ini menukar nilai heks CANBUS kepada KPH atau MPH.
Berikut ialah arahan yang saya gunakan untuk mengekstrak maklumat ini daripada CanID589.pcap yang sendiri merupakan pembedahan yang dieksport daripada Wireshark khususnya CANBUS ID 589 yang merujuk kepada kelajuan. Terdapat 32 jenis ID CANBUS yang berbeza tetapi kita tidak perlu bimbang dengan nilai tersebut pada masa ini.
┌──(kali㉿Z3r0)-[/media/sf_Shared_Kali/NCL Doc/scanningrecon] └─$ tshark -r CanID589.pcap -T fields -e data.data > Data_speed.txt
(-r) membaca fail pcap sedia ada manakala (medan-T) mengarahkan Tshark untuk mengeluarkan medan tertentu (bukannya butiran paket penuh, ringkasan atau data mentah). Ini adalah cara untuk menyesuaikan output, mengekstrak maklumat yang dikehendaki sahaja dan bukannya membuang semua data paket. Pilihan -e digunakan untuk menentukan medan mana dari paket untuk diekstrak. Dalam kes ini, data.data mewakili bait data setiap paket. "data.data" merujuk kepada kandungan sebenar (muatan) bingkai CANBUS dalam bentuk perenambelasan. Saya terpaksa bereksperimen dengan nilai yang berbeza sehingga data yang betul dieksport ke fail teks.
Berikut ialah senarai medan berbeza yang berkaitan dengan protokol CAN.
- can.id: Medan pengecam CAN (CAN ID)
- can.dlc: Kod Panjang Data (berapa banyak bait data yang ada)
- can.data: Data muatan
- can.errorframe: CAN ralat bingkai
- data.data: Data bait mentah (inilah yang digunakan skrip ini)
Ini juga boleh dilakukan secara individu untuk setiap paket tetapi saya mempunyai 352 paket Can.ID = "589" (kelajuan) yang berbeza untuk diulang melalui
def format_hex_value(hex_value): # Tshark exported specific packets to column data.data unformatted. return ' '.join(hex_value[i:i+2] for i in range(0, len(hex_value), 2)) def calculate_speed_from_hex_value(hex_value): # 5 byte check if len(hex_value) < 10: raise ValueError("Hex value must have at least 10 characters for 5 bytes") # Extract the relevant bytes from payload (the last two bytes) high_byte = int(hex_value[-4:-2], 16) low_byte = int(hex_value[-2:], 16) speed = (high_byte << 8) + low_byte # Example: 00 00 00 04 e1 - (04 << 8) + e1 = 1024 + 225 = 1249 # Convert speed from centi-KPH to KPH then to MPH speed_kph = speed / 100.0 # Assuming the value is in centi-KPH speed_mph = speed_kph * 0.621371 # Convert KPH to MPH return speed_mph def main(): speeds = [] with open('data_speed.txt', 'r') as file: for line in file: hex_value = line.strip() if hex_value: formatted_hex_value = format_hex_value(hex_value) print(f"Formatted Hex Value: {formatted_hex_value}") try: # Calculate speed and store it in the speeds list speed_mph = calculate_speed_from_hex_value(hex_value) speeds.append(speed_mph) print(f"Calculated Speed: {speed_mph:.2f} MPH") except ValueError as e: print(f"Error processing value '{hex_value}': {e}") speeds.sort() #Sort lowest to highest print("\nFinal Sorted Speeds (MPH):") for speed in speeds: print(f"{speed:.2f} MPH") if __name__ == "__main__": main()
Jika sesiapa mempunyai sebarang pertanyaan, komen, penambahan atau kritikan membina, sila hubungi saya. Terima kasih
Atas ialah kandungan terperinci Penukar Kelajuan CANBUS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Apabila menggunakan Perpustakaan Pandas Python, bagaimana untuk menyalin seluruh lajur antara dua data data dengan struktur yang berbeza adalah masalah biasa. Katakan kita mempunyai dua DAT ...

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

Cara mengelakkan dikesan semasa menggunakan fiddlerevery di mana untuk bacaan lelaki-dalam-pertengahan apabila anda menggunakan fiddlerevery di mana ...

Ekspresi biasa adalah alat yang berkuasa untuk memadankan corak dan manipulasi teks dalam pengaturcaraan, meningkatkan kecekapan dalam pemprosesan teks merentasi pelbagai aplikasi.

Bagaimanakah Uvicorn terus mendengar permintaan HTTP? Uvicorn adalah pelayan web ringan berdasarkan ASGI. Salah satu fungsi terasnya ialah mendengar permintaan HTTP dan teruskan ...

Artikel ini membincangkan perpustakaan Python yang popular seperti Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask, dan Permintaan, memperincikan kegunaan mereka dalam pengkomputeran saintifik, analisis data, visualisasi, pembelajaran mesin, pembangunan web, dan h

Di Python, bagaimana untuk membuat objek secara dinamik melalui rentetan dan panggil kaedahnya? Ini adalah keperluan pengaturcaraan yang biasa, terutamanya jika perlu dikonfigurasikan atau dijalankan ...
