isOverrunActive()
. Once the overrun has been noted, we need to manually reset the state in our converter using resetOverrunActive()
.
Data truncation
occurs when the selected output converter can’t write all bytes in a data frame to the output file. This can happen if CAN FD data is extracted to a format that only supports up to 8 data bytes, e.g. KME40
. This condition is reset by a call to resetStatusTruncated()
.
New output filename
is a change in the output filename that occurs when the converter creates a new file. This can e.g. be the result of splitting output files (which we will look into briefly later).1 The call to isOutputFilenameNew()
will return True when the last converted event resulted in the creation of a new output file. This condition will automatically reset during the next call to convertEvent()
. We can get the name of the newly created output file by calling getOutputFilename()
.[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]Let us now create a function that, beside of doing the actual conversion, also looks for the above conditions and prints some informational messages to the user.[/vc_column_text][vc_code_raket language="python" code="ZGVmJTIwY29udmVydEV2ZW50cyUyOGNudiUyOSUzQSUwQSUyMCUyMCUyMCUyMCUyMyUyMEdldCUyMGVzdGltYXRlZCUyMG51bWJlciUyMG9mJTIwcmVtYWluaW5nJTIwZXZlbnRzJTIwaW4lMjB0aGUlMjBpbnB1dCUyMGZpbGUuJTIwVGhpcyUwQSUyMCUyMCUyMCUyMCUyMyUyMGNhbiUyMGJlJTIwdXNlZnVsJTIwZm9yJTIwZGlzcGxheWluZyUyMHByb2dyZXNzJTIwZHVyaW5nJTIwY29udmVyc2lvbi4lMEElMjAlMjAlMjAlMjB0b3RhbCUyMCUzRCUyMGNudi5ldmVudENvdW50JTI4JTI5JTBBJTIwJTIwJTIwJTIwcHJpbnQlMjglMjJDb252ZXJ0aW5nJTIwYWJvdXQlMjAlMjVkJTIwZXZlbnRzLi4uJTIyJTIwJTI1JTIwdG90YWwlMjklMEElMjAlMjAlMjAlMjB3aGlsZSUyMFRydWUlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0cnklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjBDb252ZXJ0JTIwZXZlbnRzJTIwZnJvbSUyMGlucHV0JTIwZmlsZSUyMG9uZSUyMGJ5JTIwb25lJTIwdW50aWwlMjBFT0YlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjBpcyUyMHJlYWNoZWQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjbnYuY29udmVydEV2ZW50JTI4JTI5JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjBjbnYuaXNPdXRwdXRGaWxlbmFtZU5ldyUyOCUyOSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaW50JTI4JTI3TmV3JTIwb3V0cHV0JTIwZmlsZW5hbWUlM0ElMjclMkMlMjBjbnYuZ2V0T3V0cHV0RmlsZW5hbWUlMjglMjklMjklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcmludCUyOCUyN0Fib3V0JTIwJTI1ZCUyMGV2ZW50cyUyMGxlZnQuLi4lMjclMjAlMjUlMjBjbnYuZXZlbnRDb3VudCUyOCUyOSUyOSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGV4Y2VwdCUyMGt2bGNsaWIuS3ZsY0VuZE9mRmlsZSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwY252LmlzT3ZlcnJ1bkFjdGl2ZSUyOCUyOSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaW50JTI4JTI3Tk9URSUyMSUyMFRoZSUyMGV4dHJhY3RlZCUyMGRhdGElMjBjb250YWluZWQlMjBvdmVycnVuLiUyNyUyOSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGNudi5yZXNldE92ZXJydW5BY3RpdmUlMjglMjklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpZiUyMGNudi5pc0RhdGFUcnVuY2F0ZWQlMjglMjklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcmludCUyOCUyN05PVEUlMjElMjBUaGUlMjBleHRyYWN0ZWQlMjBkYXRhJTIwd2FzJTIwdHJ1bmNhdGVkLiUyNyUyOSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGNudi5yZXNldFN0YXR1c1RydW5jYXRlZCUyOCUyOSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGJyZWFr"][/vc_column][/vc_row][vc_row disable_element="yes"][vc_column][vc_column_text]
Listing 8: Defining a function that does the conversion and also check for special conditions.
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]Extending the converter program we had in our previous article with this newconvertEvents
function we now end up with the following.
[/vc_column_text][vc_code_raket language="python" code="JTIzMDZfY29udmVydF9rbWVfY2hlY2tfY29uZGl0aW9uLnB5JTBBZnJvbSUyMGNhbmxpYiUyMGltcG9ydCUyMGt2bGNsaWIlMEElMEElMEFJTlBVVF9GSUxFJTIwJTNEJTIwJTI3bXlsb2cua21lNTAlMjclMEElMEElMEFkZWYlMjB0cnlTZXRQcm9wZXJ0eSUyOGNudiUyQyUyMHByb3BlcnR5JTJDJTIwdmFsdWUlM0ROb25lJTI5JTNBJTBBJTIwJTIwJTIwJTIwJTIzJTIwQ2hlY2slMjBpZiUyMHRoZSUyMGZvcm1hdCUyMHN1cHBvcnRzJTIwdGhlJTIwZ2l2ZW4lMjBwcm9wZXJ0eSUwQSUyMCUyMCUyMCUyMGlmJTIwY252LmZvcm1hdC5pc1Byb3BlcnR5U3VwcG9ydGVkJTI4cHJvcGVydHklMjklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjBJZiUyMGElMjB2YWx1ZSUyMGlzJTIwc3BlY2lmaWVkJTJDJTIwc2V0JTIwdGhlJTIwcHJvcGVydHklMjB0byUyMHRoaXMlMjB2YWx1ZSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwdmFsdWUlMjBpcyUyMG5vdCUyME5vbmUlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjbnYuc2V0UHJvcGVydHklMjhwcm9wZXJ0eSUyQyUyMHZhbHVlJTI5JTBBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwR2V0JTIwdGhlJTIwcHJvcGVydHklMjdzJTIwZGVmYXVsdCUyMHZhbHVlJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZGVmYXVsdCUyMCUzRCUyMGNudi5mb3JtYXQuZ2V0UHJvcGVydHlEZWZhdWx0JTI4cHJvcGVydHklMjklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcmludCUyOCUyNyUyMCUyMCUyNXMlMjBpcyUyMHN1cHBvcnRlZCUyMCUyOERlZmF1bHQlM0ElMjAlMjVzJTI5JTI3JTIwJTI1JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTI4cHJvcGVydHklMkMlMjBkZWZhdWx0JTI5JTI5JTBBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwR2V0JTIwdGhlJTIwcHJvcGVydHklMjdzJTIwY3VycmVudCUyMHZhbHVlJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdmFsdWUlMjAlM0QlMjBjbnYuZ2V0UHJvcGVydHklMjhwcm9wZXJ0eSUyOSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaW50JTI4JTI3JTIwJTIwJTIwJTIwQ3VycmVudCUyMHZhbHVlJTNBJTIwJTI1cyUyNyUyMCUyNSUyMHZhbHVlJTI5JTBBJTIwJTIwJTIwJTIwZWxzZSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaW50JTI4JTI3JTIwJTIwJTI1cyUyMGlzJTIwbm90JTIwc3VwcG9ydGVkJTI3JTIwJTI1JTIwcHJvcGVydHklMjklMEElMEElMEFkZWYlMjBjb252ZXJ0RXZlbnRzJTI4Y252JTI5JTNBJTBBJTIwJTIwJTIwJTIwJTIzJTIwR2V0JTIwZXN0aW1hdGVkJTIwbnVtYmVyJTIwb2YlMjByZW1haW5pbmclMjBldmVudHMlMjBpbiUyMHRoZSUyMGlucHV0JTIwZmlsZS4lMjBUaGlzJTBBJTIwJTIwJTIwJTIwJTIzJTIwY2FuJTIwYmUlMjB1c2VmdWwlMjBmb3IlMjBkaXNwbGF5aW5nJTIwcHJvZ3Jlc3MlMjBkdXJpbmclMjBjb252ZXJzaW9uLiUwQSUyMCUyMCUyMCUyMHRvdGFsJTIwJTNEJTIwY252LmV2ZW50Q291bnQlMjglMjklMEElMjAlMjAlMjAlMjBwcmludCUyOCUyMkNvbnZlcnRpbmclMjBhYm91dCUyMCUyNWQlMjBldmVudHMuLi4lMjIlMjAlMjUlMjB0b3RhbCUyOSUwQSUyMCUyMCUyMCUyMHdoaWxlJTIwVHJ1ZSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHRyeSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMENvbnZlcnQlMjBldmVudHMlMjBmcm9tJTIwaW5wdXQlMjBmaWxlJTIwb25lJTIwYnklMjBvbmUlMjB1bnRpbCUyMEVPRiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMGlzJTIwcmVhY2hlZCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGNudi5jb252ZXJ0RXZlbnQlMjglMjklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpZiUyMGNudi5pc091dHB1dEZpbGVuYW1lTmV3JTI4JTI5JTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpbnQlMjglMjdOZXclMjBvdXRwdXQlMjBmaWxlbmFtZSUzQSUyNyUyQyUyMGNudi5nZXRPdXRwdXRGaWxlbmFtZSUyOCUyOSUyOSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaW50JTI4JTI3QWJvdXQlMjAlMjVkJTIwZXZlbnRzJTIwbGVmdC4uLiUyNyUyMCUyNSUyMGNudi5ldmVudENvdW50JTI4JTI5JTI5JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZXhjZXB0JTIwa3ZsY2xpYi5LdmxjRW5kT2ZGaWxlJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjBjbnYuaXNPdmVycnVuQWN0aXZlJTI4JTI5JTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpbnQlMjglMjdOT1RFJTIxJTIwVGhlJTIwZXh0cmFjdGVkJTIwZGF0YSUyMGNvbnRhaW5lZCUyMG92ZXJydW4uJTI3JTI5JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY252LnJlc2V0T3ZlcnJ1bkFjdGl2ZSUyOCUyOSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwY252LmlzRGF0YVRydW5jYXRlZCUyOCUyOSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaW50JTI4JTI3Tk9URSUyMSUyMFRoZSUyMGV4dHJhY3RlZCUyMGRhdGElMjB3YXMlMjB0cnVuY2F0ZWQuJTI3JTI5JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY252LnJlc2V0U3RhdHVzVHJ1bmNhdGVkJTI4JTI5JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYnJlYWslMEElMEElMEElMjMlMjBzZXQlMjB1cCUyMGZvcm1hdHMlMEFvdXRfZm10JTIwJTNEJTIwa3ZsY2xpYi5Xcml0ZXJGb3JtYXQlMjhrdmxjbGliLkZpbGVGb3JtYXQuUExBSU5fQVNDJTI5JTBBaW5fZm10JTIwJTNEJTIwa3ZsY2xpYi5SZWFkZXJGb3JtYXQlMjhrdmxjbGliLkZpbGVGb3JtYXQuS01FNTAlMjklMEElMEElMjMlMjBzZXQlMjByZXN1bHRpbmclMjBvdXRwdXQlMjBmaWxlJTIwbmFtZSUyMHRha2luZyUyMGFkdmFudGFnZSUyMG9mJTIwdGhlJTIwZXh0ZW5zaW9uJTBBJTIzJTIwZGVmaW5lZCUyMGluJTIwdGhlJTIwZm9ybWF0LiUwQW91dF9maWxlJTIwJTNEJTIwJTIybXlyZXN1bHQuJTIyJTIwJTJCJTIwb3V0X2ZtdC5leHRlbnNpb24lMEFwcmludCUyOCUyMk91dHB1dCUyMGZpbGVuYW1lJTIwaXMlMjAlMjclMjVzJTI3JTIyJTIwJTI1JTIwb3V0X2ZpbGUlMjklMEElMEElMjMlMjBjcmVhdGUlMjBjb252ZXJ0ZXIlMEFjbnYlMjAlM0QlMjBrdmxjbGliLkNvbnZlcnRlciUyOG91dF9maWxlJTJDJTIwb3V0X2ZtdCUyOSUwQSUwQSUyMyUyMFNldCUyMGlucHV0JTIwZmlsZSUyMGFuZCUyMGZvcm1hdCUwQWNudi5zZXRJbnB1dEZpbGUlMjhJTlBVVF9GSUxFJTJDJTIwa3ZsY2xpYi5GaWxlRm9ybWF0LktNRTUwJTI5JTBBJTBBJTIzJTIwYWxsb3clMjBvdXRwdXQlMjBmaWxlJTIwdG8lMjBvdmVyd3JpdGUlMjBleGlzdGluZyUyMGZpbGVzJTBBdHJ5U2V0UHJvcGVydHklMjhjbnYlMkMlMjBrdmxjbGliLlByb3BlcnR5Lk9WRVJXUklURSUyQyUyMDElMjklMEElMEElMjMlMjB3ZSUyMGFyZSUyMG9ubHklMjBpbnRlcmVzdGVkJTIwaW4lMjB0aGUlMjBmaXJzdCUyMGNoYW5uZWwlMEFjbnYuc2V0UHJvcGVydHklMjhrdmxjbGliLlByb3BlcnR5LkNIQU5ORUxfTUFTSyUyQyUyMDElMjklMEElMEElMjMlMjBhZGQlMjBuaWNlJTIwaGVhZGVyJTIwdG8lMjB0aGUlMjBvdXRwdXQlMjBmaWxlJTBBdHJ5U2V0UHJvcGVydHklMjhjbnYlMkMlMjBrdmxjbGliLlByb3BlcnR5LldSSVRFX0hFQURFUiUyQyUyMDElMjklMEElMEElMjMlMjB3ZSUyMGFyZSUyMGNvbnZlcnRpbmclMjBDQU4lMjB0cmFmZmljJTIwd2l0aCUyMG1heCUyMDglMjBieXRlcyUyQyUyMHNvJTIwd2UlMjBjYW4lMjBtaW5pbWl6ZSUwQSUyMyUyMHRoZSUyMHdpZHRoJTIwb2YlMjB0aGUlMjBkYXRhJTIwb3V0cHV0JTIwdG8lMjA4JTIwYnl0ZXMlMEF0cnlTZXRQcm9wZXJ0eSUyOGNudiUyQyUyMGt2bGNsaWIuUHJvcGVydHkuTElNSVRfREFUQV9CWVRFUyUyQyUyMDglMjklMEElMEFjb252ZXJ0RXZlbnRzJTI4Y252JTI5JTBBJTBBJTIzJTIwZm9yY2UlMjBmbHVzaCUyMHJlc3VsdCUyMHRvJTIwZGlzayUwQWNudi5mbHVzaCUyOCUyOQ=="][/vc_column][/vc_row][vc_row disable_element="yes"][vc_column][vc_column_text]
Listing 9: Simple program to convert a kme50 log file to plain text output.
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]Running this program on a specially prepared kme50 file we now get the following output:[/vc_column_text][vc_code_raket language="t" code="T3V0cHV0JTIwZm9ybWF0JTIwaXMlMjAlMjdQbGFpbiUyMHRleHQlMjclMEFPdXRwdXQlMjBmaWxlbmFtZSUyMGlzJTIwJTI3bXlyZXN1bHQudHh0JTI3JTBBSW5wdXQlMjBmaWxlbmFtZSUyMGlzJTIwJTI3bXlsb2cua21lNTAlMjclMEElMjAlMjBQUk9QRVJUWV9PVkVSV1JJVEUlMjBpcyUyMHN1cHBvcnRlZCUyMCUyOERlZmF1bHQlM0ElMjAwJTI5JTBBJTIwJTIwJTIwJTIwQ3VycmVudCUyMHZhbHVlJTNBJTIwMSUwQSUyMCUyMFBST1BFUlRZX1dSSVRFX0hFQURFUiUyMGlzJTIwc3VwcG9ydGVkJTIwJTI4RGVmYXVsdCUzQSUyMDAlMjklMEElMjAlMjAlMjAlMjBDdXJyZW50JTIwdmFsdWUlM0ElMjAxJTBBJTIwJTIwUFJPUEVSVFlfTElNSVRfREFUQV9CWVRFUyUyMGlzJTIwc3VwcG9ydGVkJTIwJTI4RGVmYXVsdCUzQSUyMDY0JTI5JTBBJTIwJTIwJTIwJTIwQ3VycmVudCUyMHZhbHVlJTNBJTIwOCUwQUNvbnZlcnRpbmclMjBhYm91dCUyMDcxMjUzJTIwZXZlbnRzLi4uJTBBTmV3JTIwb3V0cHV0JTIwZmlsZW5hbWUlM0ElMjBteXJlc3VsdC50eHQlMEFBYm91dCUyMDcxMjUyJTIwZXZlbnRzJTIwbGVmdCUyMHRvJTIwY29udmVydC4uLiUwQU5PVEUlMjElMjBUaGUlMjBleHRyYWN0ZWQlMjBkYXRhJTIwY29udGFpbmVkJTIwb3ZlcnJ1bi4="][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]As can be seen in the output, our input file contained over 7000 events and as a result the output file created was over 2MB. We can also see that the specially prepared kme50 file contained overruns. Let us now split the output files by also setting the propertySIZE_LIMIT
.[/vc_column_text][vc_code_raket language="python" code="JTIzJTIwc3BsaXQlMjBvdXRwdXQlMjBmaWxlcyUyMGludG8lMjBtYXglMjAxJTIwTUIlMjBmaWxlcyUwQXRyeVNldFByb3BlcnR5JTI4Y252JTJDJTIwa3ZsY2xpYi5Qcm9wZXJ0eS5TSVpFX0xJTUlUJTJDJTIwMSUyOQ=="][/vc_column][/vc_row][vc_row][vc_column][vc_column_text][/vc_column_text][vc_code_raket language="python" code="JTIzMDdfY29udmVydF9rbWVfY2hlY2tfc3BsaXQucHklMEFmcm9tJTIwY2FubGliJTIwaW1wb3J0JTIwa3ZsY2xpYiUwQSUwQSUwQUlOUFVUX0ZJTEUlMjAlM0QlMjAlMjdteWxvZy5rbWU1MCUyNyUwQSUwQSUwQWRlZiUyMHRyeVNldFByb3BlcnR5JTI4Y252JTJDJTIwcHJvcGVydHklMkMlMjB2YWx1ZSUzRE5vbmUlMjklM0ElMEElMjAlMjAlMjAlMjAlMjMlMjBDaGVjayUyMGlmJTIwdGhlJTIwZm9ybWF0JTIwc3VwcG9ydHMlMjB0aGUlMjBnaXZlbiUyMHByb3BlcnR5JTBBJTIwJTIwJTIwJTIwaWYlMjBjbnYuZm9ybWF0LmlzUHJvcGVydHlTdXBwb3J0ZWQlMjhwcm9wZXJ0eSUyOSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMElmJTIwYSUyMHZhbHVlJTIwaXMlMjBzcGVjaWZpZWQlMkMlMjBzZXQlMjB0aGUlMjBwcm9wZXJ0eSUyMHRvJTIwdGhpcyUyMHZhbHVlJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjB2YWx1ZSUyMGlzJTIwbm90JTIwTm9uZSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGNudi5zZXRQcm9wZXJ0eSUyOHByb3BlcnR5JTJDJTIwdmFsdWUlMjklMEElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjBHZXQlMjB0aGUlMjBwcm9wZXJ0eSUyN3MlMjBkZWZhdWx0JTIwdmFsdWUlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBkZWZhdWx0JTIwJTNEJTIwY252LmZvcm1hdC5nZXRQcm9wZXJ0eURlZmF1bHQlMjhwcm9wZXJ0eSUyOSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaW50JTI4JTI3JTIwJTIwJTI1cyUyMGlzJTIwc3VwcG9ydGVkJTIwJTI4RGVmYXVsdCUzQSUyMCUyNXMlMjklMjclMjAlMjUlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjhwcm9wZXJ0eSUyQyUyMGRlZmF1bHQlMjklMjklMEElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjBHZXQlMjB0aGUlMjBwcm9wZXJ0eSUyN3MlMjBjdXJyZW50JTIwdmFsdWUlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB2YWx1ZSUyMCUzRCUyMGNudi5nZXRQcm9wZXJ0eSUyOHByb3BlcnR5JTI5JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpbnQlMjglMjclMjAlMjAlMjAlMjBDdXJyZW50JTIwdmFsdWUlM0ElMjAlMjVzJTI3JTIwJTI1JTIwdmFsdWUlMjklMEElMjAlMjAlMjAlMjBlbHNlJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpbnQlMjglMjclMjAlMjAlMjVzJTIwaXMlMjBub3QlMjBzdXBwb3J0ZWQlMjclMjAlMjUlMjBwcm9wZXJ0eSUyOSUwQSUwQSUwQWRlZiUyMGNvbnZlcnRFdmVudHMlMjhjbnYlMjklM0ElMEElMjAlMjAlMjAlMjAlMjMlMjBHZXQlMjBlc3RpbWF0ZWQlMjBudW1iZXIlMjBvZiUyMHJlbWFpbmluZyUyMGV2ZW50cyUyMGluJTIwdGhlJTIwaW5wdXQlMjBmaWxlLiUyMFRoaXMlMEElMjAlMjAlMjAlMjAlMjMlMjBjYW4lMjBiZSUyMHVzZWZ1bCUyMGZvciUyMGRpc3BsYXlpbmclMjBwcm9ncmVzcyUyMGR1cmluZyUyMGNvbnZlcnNpb24uJTBBJTIwJTIwJTIwJTIwdG90YWwlMjAlM0QlMjBjbnYuZXZlbnRDb3VudCUyOCUyOSUwQSUyMCUyMCUyMCUyMHByaW50JTI4JTIyQ29udmVydGluZyUyMGFib3V0JTIwJTI1ZCUyMGV2ZW50cy4uLiUyMiUyMCUyNSUyMHRvdGFsJTI5JTBBJTIwJTIwJTIwJTIwd2hpbGUlMjBUcnVlJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdHJ5JTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwQ29udmVydCUyMGV2ZW50cyUyMGZyb20lMjBpbnB1dCUyMGZpbGUlMjBvbmUlMjBieSUyMG9uZSUyMHVudGlsJTIwRU9GJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwaXMlMjByZWFjaGVkJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY252LmNvbnZlcnRFdmVudCUyOCUyOSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwY252LmlzT3V0cHV0RmlsZW5hbWVOZXclMjglMjklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcmludCUyOCUyN05ldyUyMG91dHB1dCUyMGZpbGVuYW1lJTNBJTI3JTJDJTIwY252LmdldE91dHB1dEZpbGVuYW1lJTI4JTI5JTI5JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpbnQlMjglMjdBYm91dCUyMCUyNWQlMjBldmVudHMlMjBsZWZ0Li4uJTI3JTIwJTI1JTIwY252LmV2ZW50Q291bnQlMjglMjklMjklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBleGNlcHQlMjBrdmxjbGliLkt2bGNFbmRPZkZpbGUlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpZiUyMGNudi5pc092ZXJydW5BY3RpdmUlMjglMjklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcmludCUyOCUyN05PVEUlMjElMjBUaGUlMjBleHRyYWN0ZWQlMjBkYXRhJTIwY29udGFpbmVkJTIwb3ZlcnJ1bi4lMjclMjklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjbnYucmVzZXRPdmVycnVuQWN0aXZlJTI4JTI5JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjBjbnYuaXNEYXRhVHJ1bmNhdGVkJTI4JTI5JTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpbnQlMjglMjdOT1RFJTIxJTIwVGhlJTIwZXh0cmFjdGVkJTIwZGF0YSUyMHdhcyUyMHRydW5jYXRlZC4lMjclMjklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjbnYucmVzZXRTdGF0dXNUcnVuY2F0ZWQlMjglMjklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBicmVhayUwQSUwQSUwQSUyMyUyMHNldCUyMHVwJTIwZm9ybWF0cyUwQW91dF9mbXQlMjAlM0QlMjBrdmxjbGliLldyaXRlckZvcm1hdCUyOGt2bGNsaWIuRmlsZUZvcm1hdC5QTEFJTl9BU0MlMjklMEFpbl9mbXQlMjAlM0QlMjBrdmxjbGliLlJlYWRlckZvcm1hdCUyOGt2bGNsaWIuRmlsZUZvcm1hdC5LTUU1MCUyOSUwQSUwQSUyMyUyMHNldCUyMHJlc3VsdGluZyUyMG91dHB1dCUyMGZpbGUlMjBuYW1lJTIwdGFraW5nJTIwYWR2YW50YWdlJTIwb2YlMjB0aGUlMjBleHRlbnNpb24lMEElMjMlMjBkZWZpbmVkJTIwaW4lMjB0aGUlMjBmb3JtYXQuJTBBb3V0X2ZpbGUlMjAlM0QlMjAlMjJteXJlc3VsdC4lMjIlMjAlMkIlMjBvdXRfZm10LmV4dGVuc2lvbiUwQXByaW50JTI4JTIyT3V0cHV0JTIwZmlsZW5hbWUlMjBpcyUyMCUyNyUyNXMlMjclMjIlMjAlMjUlMjBvdXRfZmlsZSUyOSUwQSUwQSUyMyUyMGNyZWF0ZSUyMGNvbnZlcnRlciUwQWNudiUyMCUzRCUyMGt2bGNsaWIuQ29udmVydGVyJTI4b3V0X2ZpbGUlMkMlMjBvdXRfZm10JTI5JTBBJTBBJTIzJTIwU2V0JTIwaW5wdXQlMjBmaWxlJTIwYW5kJTIwZm9ybWF0JTBBY252LnNldElucHV0RmlsZSUyOElOUFVUX0ZJTEUlMkMlMjBrdmxjbGliLkZpbGVGb3JtYXQuS01FNTAlMjklMEElMEElMjMlMjBzcGxpdCUyMG91dHB1dCUyMGZpbGVzJTIwaW50byUyMG1heCUyMDElMjBNQiUyMGZpbGVzJTBBdHJ5U2V0UHJvcGVydHklMjhjbnYlMkMlMjBrdmxjbGliLlByb3BlcnR5LlNJWkVfTElNSVQlMkMlMjAxJTI5JTBBJTBBJTIzJTIwYWxsb3clMjBvdXRwdXQlMjBmaWxlJTIwdG8lMjBvdmVyd3JpdGUlMjBleGlzdGluZyUyMGZpbGVzJTBBdHJ5U2V0UHJvcGVydHklMjhjbnYlMkMlMjBrdmxjbGliLlByb3BlcnR5Lk9WRVJXUklURSUyQyUyMDElMjklMEElMEElMjMlMjB3ZSUyMGFyZSUyMG9ubHklMjBpbnRlcmVzdGVkJTIwaW4lMjB0aGUlMjBmaXJzdCUyMGNoYW5uZWwlMEFjbnYuc2V0UHJvcGVydHklMjhrdmxjbGliLlByb3BlcnR5LkNIQU5ORUxfTUFTSyUyQyUyMDElMjklMEElMEElMjMlMjBhZGQlMjBuaWNlJTIwaGVhZGVyJTIwdG8lMjB0aGUlMjBvdXRwdXQlMjBmaWxlJTBBdHJ5U2V0UHJvcGVydHklMjhjbnYlMkMlMjBrdmxjbGliLlByb3BlcnR5LldSSVRFX0hFQURFUiUyQyUyMDElMjklMEElMEElMjMlMjB3ZSUyMGFyZSUyMGNvbnZlcnRpbmclMjBDQU4lMjB0cmFmZmljJTIwd2l0aCUyMG1heCUyMDglMjBieXRlcyUyQyUyMHNvJTIwd2UlMjBjYW4lMjBtaW5pbWl6ZSUwQSUyMyUyMHRoZSUyMHdpZHRoJTIwb2YlMjB0aGUlMjBkYXRhJTIwb3V0cHV0JTIwdG8lMjA4JTIwYnl0ZXMlMEF0cnlTZXRQcm9wZXJ0eSUyOGNudiUyQyUyMGt2bGNsaWIuUHJvcGVydHkuTElNSVRfREFUQV9CWVRFUyUyQyUyMDglMjklMEElMEFjb252ZXJ0RXZlbnRzJTI4Y252JTI5JTBBJTBBJTIzJTIwZm9yY2UlMjBmbHVzaCUyMHJlc3VsdCUyMHRvJTIwZGlzayUwQWNudi5mbHVzaCUyOCUyOQ=="][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]The output from our final run is shown below, we now got three output files, where the first two are about 1MB.[/vc_column_text][vc_code_raket language="t" code="T3V0cHV0JTIwZm9ybWF0JTIwaXMlMjAlMjdQbGFpbiUyMHRleHQlMjclMEFPdXRwdXQlMjBmaWxlbmFtZSUyMGlzJTIwJTI3bXlyZXN1bHQudHh0JTI3JTBBSW5wdXQlMjBmaWxlbmFtZSUyMGlzJTIwJTI3bXlsb2cua21lNTAlMjclMEElMjAlMjBQUk9QRVJUWV9PVkVSV1JJVEUlMjBpcyUyMHN1cHBvcnRlZCUyMCUyOERlZmF1bHQlM0ElMjAwJTI5JTBBJTIwJTIwJTIwJTIwQ3VycmVudCUyMHZhbHVlJTNBJTIwMSUwQSUyMCUyMFBST1BFUlRZX1dSSVRFX0hFQURFUiUyMGlzJTIwc3VwcG9ydGVkJTIwJTI4RGVmYXVsdCUzQSUyMDAlMjklMEElMjAlMjAlMjAlMjBDdXJyZW50JTIwdmFsdWUlM0ElMjAxJTBBJTIwJTIwUFJPUEVSVFlfTElNSVRfREFUQV9CWVRFUyUyMGlzJTIwc3VwcG9ydGVkJTIwJTI4RGVmYXVsdCUzQSUyMDY0JTI5JTBBJTIwJTIwJTIwJTIwQ3VycmVudCUyMHZhbHVlJTNBJTIwOCUwQSUyMCUyMFBST1BFUlRZX1NJWkVfTElNSVQlMjBpcyUyMHN1cHBvcnRlZCUyMCUyOERlZmF1bHQlM0ElMjAwJTI5JTBBJTIwJTIwJTIwJTIwQ3VycmVudCUyMHZhbHVlJTNBJTIwMiUwQUNvbnZlcnRpbmclMjBhYm91dCUyMDcxMjUzJTIwZXZlbnRzLi4uJTBBTmV3JTIwb3V0cHV0JTIwZmlsZW5hbWUlM0ElMjBteXJlc3VsdC1wYXJ0MC50eHQlMEFBYm91dCUyMDcxMjUyJTIwZXZlbnRzJTIwbGVmdCUyMHRvJTIwY29udmVydC4uLiUwQU5ldyUyMG91dHB1dCUyMGZpbGVuYW1lJTNBJTIwbXlyZXN1bHQtcGFydDEudHh0JTBBQWJvdXQlMjA0MTQ3MyUyMGV2ZW50cyUyMGxlZnQlMjB0byUyMGNvbnZlcnQuLi4lMEFOZXclMjBvdXRwdXQlMjBmaWxlbmFtZSUzQSUyMG15cmVzdWx0LXBhcnQyLnR4dCUwQUFib3V0JTIwMTE2OTUlMjBldmVudHMlMjBsZWZ0JTIwdG8lMjBjb252ZXJ0Li4uJTBBTk9URSUyMSUyMFRoZSUyMGV4dHJhY3RlZCUyMGRhdGElMjBjb250YWluZWQlMjBvdmVycnVuLg=="][vc_column_text]This was all for this time, if you have any questions, comments or suggestion for future blog articles, please contact us directly at [email protected].[/vc_column_text][/vc_column][/vc_row][vc_row el_id="footernote"][vc_column][vc_header_raket header_type="h2" header="Footnotes"][vc_column_text]1 Splitting of output files is controlled by the writer properties KVLC_PROPERTY_SIZE_LIMIT
and KVLC_PROPERTY_TIME_LIMIT
.[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_raw_html]JTNDYnIlMjAlMkYlM0U=[/vc_raw_html][vc_separator_raket][vc_message]
This article has been updated. To view the original, click on the box below.
[/vc_message][vc_accordion active_tab="0" collapsible="yes"][vc_accordion_tab title="Original Article"][vc_single_image image="15486"][vc_message]This blog uses now deprecated functions, see blog "Improved API in Python canlib v1.5" for more information.[/vc_message][vc_column_text]This is the final post in a 3-part series about using the Converter Library (kvlclib) in CANlib SDK:
kvlcIsOverrunActive().
Once the overrun has been noted, we need to manually reset the state using kvlcResetOverrunActive()
.
Data truncation occurs when the selected output converter can’t write all bytes in a data frame to the output file. This can happen if CAN FD data is extracted to a format that only supports up to 8 data bytes, e.g. KVLC_FILE_FORMAT_KME40
. This condition is reset by a call to kvlcResetStatusTruncated()
.
New output filename is a change in the output filename occurs when the converter has created a new file, which can be the result when splitting output files (which we will look into briefly later).1 The call to kvlcIsOutputFilenameNew()
will return true when the last converted event resulted in the creation of a new output file. This condition will automatically reset during the next call to kvlcConvertEvent()
. When a split has occurred, we can get the new output filename by calling kvlcGetOutputFilename()
.
[/vc_column_text][vc_column_text]Let us now create a function that, beside of doing the actual conversion, also looks for the above conditions and prints some informational messages to the user.[/vc_column_text][vc_code_raket language="python" code="ZGVmJTIwY29udmVydEV2ZW50cyUyOGtjJTI5JTNBJTBBJTIwJTIwJTIwJTIwJTIzJTIwR2V0JTIwZXN0aW1hdGVkJTIwbnVtYmVyJTIwb2YlMjByZW1haW5pbmclMjBldmVudHMlMjBpbiUyMHRoZSUyMGlucHV0JTIwZmlsZS4lMjBUaGlzJTIwY2FuJTIwYmUlMEElMjAlMjAlMjAlMjAlMjMlMjB1c2VmdWwlMjBmb3IlMjBkaXNwbGF5aW5nJTIwcHJvZ3Jlc3MlMjBkdXJpbmclMjBjb252ZXJzaW9uLiUwQSUyMCUyMCUyMCUyMHRvdGFsJTIwJTNEJTIwa2MuZXZlbnRDb3VudCUyOCUyOSUwQSUyMCUyMCUyMCUyMHByaW50JTI4JTIyQ29udmVydGluZyUyMGFib3V0JTIwJTI1ZCUyMGV2ZW50cy4uLiUyMiUyMCUyNSUyMHRvdGFsJTI5JTBBJTIwJTIwJTIwJTIwd2hpbGUlMjBUcnVlJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdHJ5JTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwQ29udmVydCUyMGV2ZW50cyUyMGZyb20lMjBpbnB1dCUyMGZpbGUlMjBvbmUlMjBieSUyMG9uZSUyMHVudGlsJTIwRU9GJTIwaXMlMjByZWFjaGVkJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwa2MuY29udmVydEV2ZW50JTI4JTI5JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjBrYy5Jc091dHB1dEZpbGVuYW1lTmV3JTI4JTI5JTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpbnQlMjglMjJOZXclMjBvdXRwdXQlMjBmaWxlbmFtZSUzQSUyMCUyNXMlMjIlMjAlMjUlMjBrYy5nZXRPdXRwdXRGaWxlbmFtZSUyOCUyOSUyOSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaW50JTI4JTIyQWJvdXQlMjAlMjVkJTIwZXZlbnRzJTIwbGVmdCUyMHRvJTIwY29udmVydC4uLiUyMiUyMCUyNSUyMGtjLmV2ZW50Q291bnQlMjglMjklMjklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBleGNlcHQlMjBrdmxjLkt2bGNFbmRPZkZpbGUlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpZiUyMGtjLklzT3ZlcnJ1bkFjdGl2ZSUyOCUyOSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaW50JTI4JTIyTk9URSUyMSUyMFRoZSUyMGV4dHJhY3RlZCUyMGRhdGElMjBjb250YWluZWQlMjBvdmVycnVuLiUyMiUyOSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGtjLnJlc2V0T3ZlcnJ1bkFjdGl2ZSUyOCUyOSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwa2MuSXNEYXRhVHJ1bmNhdGVkJTI4JTI5JTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpbnQlMjglMjJOT1RFJTIxJTIwVGhlJTIwZXh0cmFjdGVkJTIwZGF0YSUyMHdhcyUyMHRydW5jYXRlZC4lMjIlMjklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBrYy5yZXNldFN0YXR1c1RydW5jYXRlZCUyOCUyOSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGJyZWFr"][vc_column_text]
Listing 8: Defining a function that does the conversion and also check for special conditions.
[/vc_column_text][vc_code_raket language="python" code="aW1wb3J0JTIwY2FubGliLmt2bGNsaWIlMjBhcyUyMGt2bGMlMEElMEElMEFkZWYlMjB0cnlTZXRQcm9wZXJ0eSUyOGNvbnZlcnRlciUyQyUyMHByb3BlcnR5JTJDJTIwdmFsdWUlM0ROb25lJTI5JTNBJTBBJTIwJTIwJTIwJTIwJTIzJTIwQ2hlY2slMjBpZiUyMHRoZSUyMGZvcm1hdCUyMHN1cHBvcnRzJTIwdGhlJTIwZ2l2ZW4lMjBwcm9wZXJ0eSUwQSUyMCUyMCUyMCUyMGlmJTIwY29udmVydGVyLmZvcm1hdC5pc1Byb3BlcnR5U3VwcG9ydGVkJTI4cHJvcGVydHklMjklM0ElMEElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjBJZiUyMGElMjB2YWx1ZSUyMHdhcyUyMHNwZWNpZmllZCUyQyUyMHNldCUyMHRoZSUyMHByb3BlcnR5JTIwdG8lMjB0aGlzJTIwdmFsdWUlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpZiUyMHZhbHVlJTIwaXMlMjBub3QlMjBOb25lJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY29udmVydGVyLnNldFByb3BlcnR5JTI4cHJvcGVydHklMkMlMjB2YWx1ZSUyOSUwQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMGdldCUyMHRoZSUyMHByb3BlcnR5JTI3cyUyMGRlZmF1bHQlMjB2YWx1ZSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGRlZmF1bHQlMjAlM0QlMjBjb252ZXJ0ZXIuZ2V0UHJvcGVydHlEZWZhdWx0JTI4cHJvcGVydHklMjklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcmludCUyOCUyMiUyMFBST1BFUlRZXyUyNXMlMjBpcyUyMHN1cHBvcnRlZCUyMCUyOERlZmF1bHQlM0ElMjAlMjVzJTI5JTIyJTIwJTI1JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTI4cHJvcGVydHklNUIlMjduYW1lJTI3JTVEJTJDJTIwZGVmYXVsdCUyOSUyOSUwQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMGdldCUyMHRoZSUyMHByb3BlcnR5JTI3cyUyMGN1cnJlbnQlMjB2YWx1ZSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHZhbHVlJTIwJTNEJTIwY29udmVydGVyLmdldFByb3BlcnR5JTI4cHJvcGVydHklMjklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcmludCUyOCUyMiUwOUN1cnJlbnQlMjB2YWx1ZSUzQSUyMCUyNXMlMjIlMjAlMjUlMjB2YWx1ZSUyOSUwQSUyMCUyMCUyMCUyMGVsc2UlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcmludCUyOCUyMiUyMFBST1BFUlRZJTIwJTI1cyUyMGlzJTIwbm90JTIwc3VwcG9ydGVkJTIyJTIwJTI1JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTI4cHJvcGVydHklNUIlMjduYW1lJTI3JTVEJTI5JTI5JTBBJTBBJTBBZGVmJTIwY29udmVydEV2ZW50cyUyOGtjJTI5JTNBJTBBJTIwJTIwJTIwJTIwJTIzJTIwR2V0JTIwZXN0aW1hdGVkJTIwbnVtYmVyJTIwb2YlMjByZW1haW5pbmclMjBldmVudHMlMjBpbiUyMHRoZSUyMGlucHV0JTIwZmlsZS4lMjBUaGlzJTIwY2FuJTIwYmUlMEElMjAlMjAlMjAlMjAlMjMlMjB1c2VmdWwlMjBmb3IlMjBkaXNwbGF5aW5nJTIwcHJvZ3Jlc3MlMjBkdXJpbmclMjBjb252ZXJzaW9uLiUwQSUyMCUyMCUyMCUyMHRvdGFsJTIwJTNEJTIwa2MuZXZlbnRDb3VudCUyOCUyOSUwQSUyMCUyMCUyMCUyMHByaW50JTI4JTIyQ29udmVydGluZyUyMGFib3V0JTIwJTI1ZCUyMGV2ZW50cy4uLiUyMiUyMCUyNSUyMHRvdGFsJTI5JTBBJTIwJTIwJTIwJTIwd2hpbGUlMjBUcnVlJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdHJ5JTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwQ29udmVydCUyMGV2ZW50cyUyMGZyb20lMjBpbnB1dCUyMGZpbGUlMjBvbmUlMjBieSUyMG9uZSUyMHVudGlsJTIwRU9GJTIwaXMlMjByZWFjaGVkJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwa2MuY29udmVydEV2ZW50JTI4JTI5JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjBrYy5Jc091dHB1dEZpbGVuYW1lTmV3JTI4JTI5JTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpbnQlMjglMjJOZXclMjBvdXRwdXQlMjBmaWxlbmFtZSUzQSUyMCUyNXMlMjIlMjAlMjUlMjBrYy5nZXRPdXRwdXRGaWxlbmFtZSUyOCUyOSUyOSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaW50JTI4JTIyQWJvdXQlMjAlMjVkJTIwZXZlbnRzJTIwbGVmdCUyMHRvJTIwY29udmVydC4uLiUyMiUyMCUyNSUyMGtjLmV2ZW50Q291bnQlMjglMjklMjklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBleGNlcHQlMjBrdmxjLkt2bGNFbmRPZkZpbGUlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpZiUyMGtjLklzT3ZlcnJ1bkFjdGl2ZSUyOCUyOSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaW50JTI4JTIyTk9URSUyMSUyMFRoZSUyMGV4dHJhY3RlZCUyMGRhdGElMjBjb250YWluZWQlMjBvdmVycnVuLiUyMiUyOSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGtjLnJlc2V0T3ZlcnJ1bkFjdGl2ZSUyOCUyOSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwa2MuSXNEYXRhVHJ1bmNhdGVkJTI4JTI5JTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpbnQlMjglMjJOT1RFJTIxJTIwVGhlJTIwZXh0cmFjdGVkJTIwZGF0YSUyMHdhcyUyMHRydW5jYXRlZC4lMjIlMjklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBrYy5yZXNldFN0YXR1c1RydW5jYXRlZCUyOCUyOSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGJyZWFrJTBBJTBBJTBBJTIzJTIwc2V0JTIwb3V0cHV0JTIwZm9ybWF0JTBBZm10JTIwJTNEJTIwa3ZsYy5Xcml0ZXJGb3JtYXQlMjhrdmxjLkZJTEVfRk9STUFUX1BMQUlOX0FTQyUyOSUwQSUyMyUyMHRoZSUyMG5hbWUlMjBvZiUyMHRoZSUyMGZvcm1hdHRlciUyMGlzJTIwZmV0Y2hlZCUyMHVzaW5nJTIwa3ZsY0dldFdyaXRlck5hbWUlMjglMjklMjBpbnRlcm5hbGx5JTBBcHJpbnQlMjglMjJPdXRwdXQlMjBmb3JtYXQlMjBpcyUyMCUyNyUyNXMlMjclMjIlMjAlMjUlMjBmbXQubmFtZSUyOSUwQSUwQSUyMyUyMHNldCUyMHJlc3VsdGluZyUyMG91dHB1dCUyMGZpbGVuYW1lJTIwdGFraW5nJTIwYWR2YW50YWdlJTIwb2YlMjB0aGUlMjBleHRlbnNpb24lMjBkZWZpbmVkJTIwaW4lMEElMjMlMjB0aGUlMjBmb3JtYXQuJTIwJTI4VXNlcyUyMGt2bGNHZXRXcml0ZXJFeHRlbnNpb24lMjglMjklMjB1bmRlciUyMHRoZSUyMGhvb2QuJTI5JTBBb3V0ZmlsZSUyMCUzRCUyMCUyMm15cmVzdWx0LiUyMiUyMCUyQiUyMGZtdC5leHRlbnNpb24lMEFwcmludCUyOCUyMk91dHB1dCUyMGZpbGVuYW1lJTIwaXMlMjAlMjclMjVzJTI3JTIyJTIwJTI1JTIwb3V0ZmlsZSUyOSUwQSUwQSUyMyUyMGNyZWF0ZSUyMGNvbnZlcnRlciUwQWtjJTIwJTNEJTIwa3ZsYy5LdmxjbGliJTI4b3V0ZmlsZSUyQyUyMGZtdCUyOSUwQSUwQSUyMyUyMFNldCUyMGlucHV0JTIwZmlsZW5hbWUlMjBhbmQlMjBmb3JtYXQlMEFpbnB1dGZpbGUlMjAlM0QlMjAlMjJteWxvZy5rbWU1MCUyMiUwQXByaW50JTI4JTIySW5wdXQlMjBmaWxlbmFtZSUyMGlzJTIwJTI3JTI1cyUyNyUyMiUyMCUyNSUyMGlucHV0ZmlsZSUyOSUwQWtjLnNldElucHV0RmlsZSUyOGlucHV0ZmlsZSUyQyUyMGZpbGVfZm9ybWF0JTNEa3ZsYy5GSUxFX0ZPUk1BVF9LTUU1MCUyOSUwQSUwQSUyMyUyMGFsbG93JTIwb3V0cHV0JTIwZmlsZSUyMHRvJTIwb3ZlcndyaXRlJTIwZXhpc3RpbmclMjBmaWxlcyUwQXRyeVNldFByb3BlcnR5JTI4a2MlMkMlMjBrdmxjLlBST1BFUlRZX09WRVJXUklURSUyQyUyMDElMjklMEElMEElMjMlMjBhZGQlMjBuaWNlJTIwaGVhZGVyJTIwdG8lMjB0aGUlMjBvdXRwdXQlMjBmaWxlJTBBdHJ5U2V0UHJvcGVydHklMjhrYyUyQyUyMGt2bGMuUFJPUEVSVFlfV1JJVEVfSEVBREVSJTJDJTIwMSUyOSUwQSUwQSUyMyUyMHdlJTIwYXJlJTIwY29udmVydGluZyUyMENBTiUyMHRyYWZmaWMlMjB3aXRoJTIwbWF4JTIwOCUyMGJ5dGVzJTJDJTIwc28lMjB3ZSUyMGNhbiUyMG1pbmltaXplJTIwdGhlJTIwd2lkdGglMEElMjMlMjBvZiUyMHRoZSUyMGRhdGElMjBvdXRwdXQlMjB0byUyMDglMjBieXRlcyUwQXRyeVNldFByb3BlcnR5JTI4a2MlMkMlMjBrdmxjLlBST1BFUlRZX0xJTUlUX0RBVEFfQllURVMlMkMlMjA4JTI5JTBBJTBBY29udmVydEV2ZW50cyUyOGtjJTI5JTBBJTBBJTIzJTIwRGVsZXRlJTIwY29udmVydGVyJTJDJTIwZmx1c2glMjByZXN1bHQlMjB0byUyMGRpc2slMjBhbmQlMjBmcmVlJTIwbWVtb3J5JTBBa2MuZGVsZXRlQ29udmVydGVyJTI4JTI5"][vc_column_text]Listing 9: Simple program to convert a kme50 log file to plain text output.
[/vc_column_text][vc_column_text]Running the program in Listing 9 now gives the following output:[/vc_column_text][vc_code_raket code="T3V0cHV0JTIwZm9ybWF0JTIwaXMlMjAlMjdQbGFpbiUyMHRleHQlMjclMEFPdXRwdXQlMjBmaWxlbmFtZSUyMGlzJTIwJTI3bXlyZXN1bHQudHh0JTI3JTBBSW5wdXQlMjBmaWxlbmFtZSUyMGlzJTIwJTI3bXlsb2cua21lNTAlMjclMEElMjAlMjBQUk9QRVJUWV9PVkVSV1JJVEUlMjBpcyUyMHN1cHBvcnRlZCUyMCUyOERlZmF1bHQlM0ElMjAwJTI5JTBBJTIwJTIwJTIwJTIwQ3VycmVudCUyMHZhbHVlJTNBJTIwMSUwQSUyMCUyMFBST1BFUlRZX1dSSVRFX0hFQURFUiUyMGlzJTIwc3VwcG9ydGVkJTIwJTI4RGVmYXVsdCUzQSUyMDAlMjklMEElMjAlMjAlMjAlMjBDdXJyZW50JTIwdmFsdWUlM0ElMjAxJTBBJTIwJTIwUFJPUEVSVFlfTElNSVRfREFUQV9CWVRFUyUyMGlzJTIwc3VwcG9ydGVkJTIwJTI4RGVmYXVsdCUzQSUyMDY0JTI5JTBBJTIwJTIwJTIwJTIwQ3VycmVudCUyMHZhbHVlJTNBJTIwOCUwQUNvbnZlcnRpbmclMjBhYm91dCUyMDcxMjUzJTIwZXZlbnRzLi4uJTBBTmV3JTIwb3V0cHV0JTIwZmlsZW5hbWUlM0ElMjBteXJlc3VsdC50eHQlMEFBYm91dCUyMDcxMjUyJTIwZXZlbnRzJTIwbGVmdCUyMHRvJTIwY29udmVydC4uLiUwQU5PVEUlMjElMjBUaGUlMjBleHRyYWN0ZWQlMjBkYXRhJTIwY29udGFpbmVkJTIwb3ZlcnJ1bi4="][vc_column_text]As can be seen in the output, our input file contained over 7000 events and as a result the output file created was over 4MB. Let us now split the output files by also setting the propertyKVLC_PROPERTY_SIZE_LIMIT
.[/vc_column_text][vc_code_raket language="python" code="JTIzJTIwc3BsaXQlMjBvdXRwdXQlMjBmaWxlcyUyMGludG8lMjBtYXglMjAyJTIwTUIlMjBmaWxlcyUwQXRyeVNldFByb3BlcnR5JTI4a2MlMkMlMjBrdmxjLlBST1BFUlRZX1NJWkVfTElNSVQlMkMlMjAyJTI5"][vc_column_text]The output from our final run is shown below, we now got three output files, where the first two are about 2MB.[/vc_column_text][vc_code_raket code="T3V0cHV0JTIwZm9ybWF0JTIwaXMlMjAlRTIlODAlOTlQbGFpbiUyMHRleHQlRTIlODAlOTklMEFPdXRwdXQlMjBmaWxlbmFtZSUyMGlzJTIwJUUyJTgwJTk5bXlyZXN1bHQudHh0JUUyJTgwJTk5JTBBSW5wdXQlMjBmaWxlbmFtZSUyMGlzJTIwJUUyJTgwJTk5bXlsb2cua21lNTAlRTIlODAlOTklMEElMjAlMjBQUk9QRVJUWV9PVkVSV1JJVEUlMjBpcyUyMHN1cHBvcnRlZCUyMCUyOERlZmF1bHQlM0ElMjAwJTI5JTBBJTIwJTIwJTIwJTIwQ3VycmVudCUyMHZhbHVlJTNBJTIwMSUwQSUyMCUyMFBST1BFUlRZX1dSSVRFX0hFQURFUiUyMGlzJTIwc3VwcG9ydGVkJTIwJTI4RGVmYXVsdCUzQSUyMDAlMjklMEElMjAlMjAlMjAlMjBDdXJyZW50JTIwdmFsdWUlM0ElMjAxJTBBJTIwJTIwUFJPUEVSVFlfTElNSVRfREFUQV9CWVRFUyUyMGlzJTIwc3VwcG9ydGVkJTIwJTI4RGVmYXVsdCUzQSUyMDY0JTI5JTBBJTIwJTIwJTIwJTIwQ3VycmVudCUyMHZhbHVlJTNBJTIwOCUwQSUyMCUyMFBST1BFUlRZX1NJWkVfTElNSVQlMjBpcyUyMHN1cHBvcnRlZCUyMCUyOERlZmF1bHQlM0ElMjAwJTI5JTBBJTIwJTIwJTIwJTIwQ3VycmVudCUyMHZhbHVlJTNBJTIwMiUwQUNvbnZlcnRpbmclMjBhYm91dCUyMDcxMjUzJTIwZXZlbnRzLi4uJTBBTmV3JTIwb3V0cHV0JTIwZmlsZW5hbWUlM0ElMjBteXJlc3VsdC1wYXJ0MC50eHQlMEFBYm91dCUyMDcxMjUyJTIwZXZlbnRzJTIwbGVmdCUyMHRvJTIwY29udmVydC4uLiUwQU5ldyUyMG91dHB1dCUyMGZpbGVuYW1lJTNBJTIwbXlyZXN1bHQtcGFydDEudHh0JTBBQWJvdXQlMjA0MTQ3MyUyMGV2ZW50cyUyMGxlZnQlMjB0byUyMGNvbnZlcnQuLi4lMEFOZXclMjBvdXRwdXQlMjBmaWxlbmFtZSUzQSUyMG15cmVzdWx0LXBhcnQyLnR4dCUwQUFib3V0JTIwMTE2OTUlMjBldmVudHMlMjBsZWZ0JTIwdG8lMjBjb252ZXJ0Li4uJTBBTk9URSUyMSUyMFRoZSUyMGV4dHJhY3RlZCUyMGRhdGElMjBjb250YWluZWQlMjBvdmVycnVuLg=="][vc_column_text]This was all for this time, if you have any questions, comments or suggestion for future blog articles, please contact us directly at [email protected].[/vc_column_text][vc_header_raket header_type="h2" header="Footnotes"][vc_column_text]1 Splitting of output files is controlled by the writer properties KVLC_PROPERTY_SIZE_LIMIT
and KVLC_PROPERTY_TIME_LIMIT
.[/vc_column_text][/vc_accordion_tab][/vc_accordion][/vc_column][/vc_row]
[post_title] => Special converter conditions
[post_excerpt] =>
[post_status] => publish
[comment_status] => closed
[ping_status] => closed
[post_password] =>
[post_name] => special-converter-conditions
[to_ping] =>
[pinged] =>
[post_modified] => 2022-10-04 12:55:16
[post_modified_gmt] => 2022-10-04 12:55:16
[post_content_filtered] =>
[post_parent] => 0
[guid] => https://www.kvaser.com/?post_type=developer_blog&p=39859
[menu_order] => 0
[post_type] => developer_blog
[post_mime_type] =>
[comment_count] => 0
[filter] => raw
)
[9] => WP_Post Object
(
[ID] => 39858
[post_author] => 14
[post_date] => 2017-02-27 12:45:46
[post_date_gmt] => 2017-02-27 12:45:46
[post_content] => [vc_row][vc_column][vc_header_raket header_type="h3" header="Device Guide - What is it?"][vc_column_text]Kvaser Device Guide is the successor of/to Kvaser Hardware, the tool for getting information about the Kvaser Devices connected to your Windows PC.1 Kvaser Device Guide reimplements the old Kvaser Hardware functionality in an updated
graphical interface and gives new easy access to device configuration.[/vc_column_text][vc_raw_html]JTNDYnIlM0U=[/vc_raw_html][/vc_column][/vc_row][vc_row][vc_column][vc_header_raket header_type="h3" header="What is new?"][vc_column_text]The GUI update was done in order to get a better overview of devices and channels. You can now also enable/disable individual views to customize some of the information shown.
The main functional improvement is the added ability to start configuring a connected Kvaser Device directly using the context menu. For example, right click on your Kvaser Memorator, select "Configure Memorator" and the appropriate configuration tool2 will be started.[/vc_column_text][vc_raw_html]JTNDYnIlM0U=[/vc_raw_html][/vc_column][/vc_row][vc_row][vc_column][vc_header_raket header_type="h3" header="An Overview"][vc_column_text]Starting Kvaser Device Guide opens up the main window as shown in Figure 1.[/vc_column_text][vc_single_image image="20069"][vc_column_text]Figure 1: The main window of Kvaser Device Guide showing connected devices.[/vc_column_text][vc_raw_html]JTNDYnIlM0U=[/vc_raw_html][/vc_column][/vc_row][vc_row][vc_column][vc_header_raket header_type="h3" header="Hardware Tree"][vc_column_text]The left pane of the Kvaser Design Guide, contains the Hardware Tree View where all connected devices are listed. Using the View menu, the Hardware Tree can be expanded to show all channels as well as include the Synchronized Hardware3 as shown in Figure 2.[/vc_column_text][vc_single_image image="20070"][vc_column_text]Figure 2: The Hardware Tree View fully expanded, including Synchronized Hardware.[/vc_column_text][vc_raw_html]JTNDYnIlM0U=[/vc_raw_html][/vc_column][/vc_row][vc_row][vc_column][vc_header_raket header_type="h3" header="Tools Menu"][vc_column_text]The Tools menu contains a list of Kvaser programs that can be explicitly started, see Figure 4. The first entries in the Tools menu contains Programs that optionally can be installed on the computer: 4
Kvaser Memorator Tools Used to congure older generations of Kvaser Memorators.
Kvaser Config Tool Used to configure current generation of Kvaser Memorators. The latest version of this tool is needed in order to support Kvaser Device Guide's context menus.
If you try and start e.g. Kvaser Memorator Tools and that program was not installed, you'll get a notication as shown in Figure 3. Programs that can be started from the Tools menu and are bundled in the same download as Kvaser Device Guide include:[/vc_column_text][vc_single_image image="20071"][vc_column_text]Figure 3: You will get notied if you try to start a tool that isn't installed.[/vc_column_text][vc_column_text]Kvaser Remote Device Configuration Used to congure remote devices. This program configures e.g. SSID and WiFi password on a wireless device such as Kvaser Blackbird v2.
Kvaser Network Device Selector Used to find and connect remote devices to your PC. A remote device needs to be connected before any application running on the PC can access the remote device.5
Kvaser Customer Data Small utility tool to set customer data in supported devices.[/vc_column_text][vc_single_image image="20072"][vc_column_text]Figure 4: Other Kvaser programs can be started from the Tools menu.[/vc_column_text][vc_raw_html]JTNDYnIlM0U=[/vc_raw_html][/vc_column][/vc_row][vc_row][vc_column][vc_header_raket header_type="h3" header="Context Menu"][vc_column_text]Right-clicking on a device in the Hardware Tree brings up the context menu as shown in Figure 5. The appropriate configuration tool can be launched from the context menu, provided that the relevant program is installed.
When a configuration tool is launched via the context menu, the tool will automatically connect to the selected device. This behavior can be changed in the Settings dialog, see Figure 6.
Throughout the Kvaser Device Guide, online help is available by using the Windows "F1" help button, see Figure 7.[/vc_column_text][vc_single_image image="20073"][vc_column_text]Figure 5: The context menu of Kvaser Memorator Pro will launch Kvaser Memorator Config Tool when "Configure Memorator" is selected.[/vc_column_text][vc_single_image image="20074"][vc_column_text]Figure 6: The Settings dialog with option for the the context menu to automatically connect to selected device.[/vc_column_text][vc_single_image image="20075"][vc_column_text]Figure 7: The Windows online help is available through the context sensitive 'F1' hot key.[/vc_column_text][vc_raw_html]JTNDYnIlM0U=[/vc_raw_html][/vc_column][/vc_row][vc_row][vc_column][vc_header_raket header_type="h3" header="Channel Information"][vc_column_text]Selecting a device in the Tree View lists the corresponding channels in the top right pane of the Kvaser Device Guide. Below this list of channels, more information about the currently selected channel is shown, see Figure 8. The fields Bus Parameter and Detailed information can be hidden using the View menu.[/vc_column_text][vc_single_image image="20076"][vc_column_text]Figure 8: Channel Information with all available information shown.[/vc_column_text][vc_column_text]If you are having issues with one of your Kvaser devices, select a channel of the device in question and make sure that the Detailed Information is visible. Right click on Detailed Information and choose Select All from the context menu. Then right click on the Detailed Information again and choose Copy from the context menu. Paste this information into an e-mail to [email protected] where you also describe your problem. This provides the support staff with a good starting point for diagnosing your issue.[/vc_column_text][vc_raw_html]JTNDYnIlM0U=[/vc_raw_html][/vc_column][/vc_row][vc_row][vc_column][vc_header_raket header_type="h3" header="Feedback"][vc_column_text]Bug reports, contributions, and suggestions for improvements are much appreciated and can be sent by e-mail to [email protected].[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_header_raket header_type="h3" header="Footnotes"][vc_column_text]1 The old Kvaser Hardware executable is also included in the Kvaser Drivers installation (defaults to C:\Program Files\Kvaser\Drivers\32\kvaserhardware.exe).
2 Kvaser Memorator Config Tool is appropriate for newer devices, older Memorator devices will use the Kvaser Memorator Tools.
3 Synchronized Hardware shows the devices that have MagiSync.
4 These optional programs can be downloaded from www.kvaser.com/download.
5 Once a remote device is "connected" to the PC, the device is available for use in CANlib, just as if the device had been locally attached using USB.[/vc_column_text][/vc_column][/vc_row]
[post_title] => Kvaser Device Guide
[post_excerpt] =>
[post_status] => publish
[comment_status] => closed
[ping_status] => closed
[post_password] =>
[post_name] => kvaser-device-guide
[to_ping] =>
[pinged] =>
[post_modified] => 2022-10-04 12:47:47
[post_modified_gmt] => 2022-10-04 12:47:47
[post_content_filtered] =>
[post_parent] => 0
[guid] => https://www.kvaser.com/?post_type=developer_blog&p=39858
[menu_order] => 0
[post_type] => developer_blog
[post_mime_type] =>
[comment_count] => 0
[filter] => raw
)
)
[post_count] => 10
[current_post] => -1
[in_the_loop] =>
[post] => WP_Post Object
(
[ID] => 39856
[post_author] => 14
[post_date] => 2017-06-05 12:40:15
[post_date_gmt] => 2017-06-05 12:40:15
[post_content] => [vc_row][vc_column][vc_single_image image="15486"][vc_column_text]This is the second post in a 2-part series about Secure Boot and signing modules on Linux:
openssl
command, we now create a private key and a DER encoded certificate.2 Remember to set the Common Name (CN) field (YOUR_NAME) to something meaningful for a human observer.3 We use kvaser.com as the Common Name in our example.[/vc_column_text][vc_code_raket code="JTIwJTIwJTI0JTIwbWtkaXIlMjB+JTJGc2lnbl9jZXJ0JTBBJTIwJTIwJTI0JTIwY2QlMjB+JTJGc2lnbl9jZXJ0JTBBJTIwJTIwJTIzJTIwQ2hhbmdlJTIwWU9VUl9OQU1FJTIwYmVsb3clMjBmb3IlMjBpZGVudGlmaWNhdGlvbiUyMHB1cnBvc2VzJTJDJTIwd2UlRTIlODAlOTlsbCUyMHVzZSUyMGt2YXNlci5jb20lMEElMjAlMjAlMjQlMjBvcGVuc3NsJTIwcmVxJTIwLW5ldyUyMC14NTA5JTIwLW5ld2tleSUyMHJzYSUzQTIwNDglMjAta2V5b3V0JTIwbW9kdWxlc2lnbi5wcml2JTIwLW91dGZvcm0lMjBERVIlMEEtb3V0JTIwbW9kdWxlc2lnbi5kZXIlMjAtbm9kZXMlMjAtZGF5cyUyMDM2NTAwJTIwLXN1YmolMjAlMjIlMkZDTiUzRFlPVVJfTkFNRSUyRiUyMiUwQQ=="][vc_column_text]We now end up with two files.[/vc_column_text][vc_code_raket code="JTI0JTIwbHMlMEFtb2R1bGVzaWduLmRlciUyMG1vZHVsZXNpZ24ucHJpdg=="][vc_raw_html]JTNDYnIlM0U=[/vc_raw_html][/vc_column][/vc_row][vc_row][vc_column][vc_header_raket header_type="h3" header="Import and enroll the public key to the system"][vc_column_text]The next step is to use the mokutil4 command to import the public key so that it can be trusted by the system. This is a two step process where the key is first imported, and then later must be enrolled when the machine is booted the next time. A simple password is good enough, as it is only for temporary use.[/vc_column_text][vc_code_raket code="JTI0JTIwc3VkbyUyMG1va3V0aWwlMjAtLWltcG9ydCUyMG1vZHVsZXNpZ24uZGVyJTBBaW5wdXQlMjBwYXNzd29yZCUzQSUwQWlucHV0JTIwcGFzc3dvcmQlMjBhZ2FpbiUzQQ=="][vc_column_text]We can now verify that the correct certificate has been imported. Here we also note that the Common Name (CN) used above was kvaser.com.[/vc_column_text][vc_code_raket code="JTI0JTIwc3VkbyUyMG1va3V0aWwlMjAtLWxpc3QtbmV3JTBBJTVCa2V5JTIwMSU1RCUwQVNIQTElMjBGaW5nZXJwcmludCUzQSUyMDJjJTNBZDQlM0E1YiUzQWEzJTNBYzYlM0EzNCUzQTNmJTNBYTYlM0ExYSUzQThmJTNBZTMlM0FkMyUzQTIzJTNBOGQlM0E4OCUzQTY5JTNBN2QlM0EzMyUzQWFlJTNBMTIlMEFDZXJ0aWZpY2F0ZSUzQSUwQSUyMCUyMCUyMCUyMERhdGElM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBWZXJzaW9uJTNBJTIwMyUyMCUyODB4MiUyOSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMFNlcmlhbCUyME51bWJlciUzQSUyMDE4MzE1OTAwMTgxNTc2NTAzNDQ2JTIwJTI4MHhmZTJmMjYyYzYwNjE1MDk2JTI5JTBBJTIwJTIwJTIwJTIwU2lnbmF0dXJlJTIwQWxnb3JpdGhtJTNBJTIwc2hhMjU2V2l0aFJTQUVuY3J5cHRpb24lMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBJc3N1ZXIlM0ElMjBDTiUzRGt2YXNlci5jb20lMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBWYWxpZGl0eSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyME5vdCUyMEJlZm9yZSUzQSUyME1heSUyMCUyMDklMjAwNyUzQTUyJTNBNTYlMjAyMDE3JTIwR01UJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTm90JTIwQWZ0ZXIlMjAlM0ElMjBBcHIlMjAxNSUyMDA3JTNBNTIlM0E1NiUyMDIxMTclMjBHTVQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBTdWJqZWN0JTNBJTIwQ04lM0RrdmFzZXIuY29tJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU3ViamVjdCUyMFB1YmxpYyUyMEtleSUyMEluZm8lM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBQdWJsaWMlMjBLZXklMjBBbGdvcml0aG0lM0ElMjByc2FFbmNyeXB0aW9uJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwUHVibGljLUtleSUzQSUyMCUyODIwNDglMjBiaXQlMjklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBNb2R1bHVzJTNBJTBBJTNBJTBBJTNBJTBB"][vc_column_text]Now reboot the machine. When the bootloader starts, the MOK manager EFI utility should automatically start. On my machine I got a screen with white text on light blue background, telling me to "Press any key to perform MOK management" and "Booting in 10 seconds"5, YMMV. Choose "Enroll MOK", select the key, and enroll the key. We will be asked for the password we set during the import step above. Complete the enrollment steps, then continue with the boot. The Linux kernel will log the keys that are loaded, and we can see our own key with the dmesg
command.[/vc_column_text][vc_code_raket code="JTIwJTIwJTI0JTIwZG1lc2clN0NncmVwJTIwJUUyJTgwJTk5RUZJJTNBJTIwTG9hZGVkJTIwY2VydCVFMiU4MCU5OSUwQSUyMCUyMCU1QiUyMCUyMCUyMCUyMDAuNjcxODk3JTVEJTIwRUZJJTNBJTIwTG9hZGVkJTIwY2VydCUyMCVFMiU4MCU5OU1pY3Jvc29mdCUyMFdpbmRvd3MlMjBQcm9kdWN0aW9uJTIwUENBJTIwMjAxMSUzQSUwQWE5MjkwMjM5OGUxNmM0OTc3OGNkOTBmOTllNGY5YWUxN2M1NWFmNTMlRTIlODAlOTklMjBsaW5rZWQlMjB0byUyMCVFMiU4MCU5OS5idWlsdGluX3RydXN0ZWRfa2V5cyVFMiU4MCU5OSUwQSUyMCUyMCU1QiUyMCUyMCUyMCUyMDAuNjcxOTA4JTVEJTIwRUZJJTNBJTIwTG9hZGVkJTIwY2VydCUyMCVFMiU4MCU5OU1pY3Jvc29mdCUyMENvcnBvcmF0aW9uJTIwVUVGSSUyMENBJTIwMjAxMSUzQSUwQTEzYWRiZjQzMDliZDgyNzA5YzhjZDU0ZjMxNmVkNTIyOTg4YTFiZDQlRTIlODAlOTklMjBsaW5rZWQlMjB0byUyMCVFMiU4MCU5OS5idWlsdGluX3RydXN0ZWRfa2V5cyVFMiU4MCU5OSUwQSUyMCUyMCU1QiUyMCUyMCUyMCUyMDAuNjczNzcxJTVEJTIwRUZJJTNBJTIwTG9hZGVkJTIwY2VydCUyMCVFMiU4MCU5OWt2YXNlci5jb20lM0ElMjA3NGZkODkyOWQ5ZTJmYjY0YTliZDBhYmUzYmRmJTBBNDJkNTE5YjczODJmJUUyJTgwJTk5JTIwbGlua2VkJTIwdG8lMjAlRTIlODAlOTkuYnVpbHRpbl90cnVzdGVkX2tleXMlRTIlODAlOTklMEElMjAlMjAlNUIlMjAlMjAlMjAlMjAwLjY3MzkwMiU1RCUyMEVGSSUzQSUyMExvYWRlZCUyMGNlcnQlMjAlRTIlODAlOTlDYW5vbmljYWwlMjBMdGQuJTIwTWFzdGVyJTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklM0ElMEFhZDkxOTkwYmMyMmFiMWY1MTcwNDhjMjNiNjY1NWEyNjhlMzQ1YTYzJUUyJTgwJTk5JTIwbGlua2VkJTIwdG8lMjAlRTIlODAlOTkuYnVpbHRpbl90cnVzdGVkX2tleXMlRTIlODAlOTk="][vc_column_text]We can now also test that our certificate has been enrolled using the mokutil
command.[/vc_column_text][vc_code_raket code="JTI0JTIwY2QlMjB+JTJGc2lnbl9jZXJ0JTBBJTI0JTIwbW9rdXRpbCUyMC0tdGVzdC1rZXklMjBtb2R1bGVzaWduLmRlciUwQW1vZHVsZXNpZ24uZGVyJTIwaXMlMjBhbHJlYWR5JTIwZW5yb2xsZWQlMEE="][vc_raw_html]JTNDYnIlM0U=[/vc_raw_html][/vc_column][/vc_row][vc_row][vc_column][vc_header_raket header_type="h3" header="Build, sign and install the modules"][vc_column_text]Before building, we need to download the latest version of linuxcan from the Kvaser download page, which as of this writing is v5.20.6[/vc_column_text][vc_code_raket code="JTI0JTIwd2dldCUyMGh0dHAlM0ElMkYlMkZ3d3cua3Zhc2VyLmNvbSUyRnNvZnR3YXJlJTJGNzMzMDEzMDk4MDc1NCUyRlY1XzIwXzAlMkZsaW51eGNhbi50YXIuZ3olMEElMjQlMjB0YXIlMjB4dnpmJTIwbGludXhjYW4udGFyLmd6JTBBJTI0JTIwY2QlMjBsaW51eGNhbiUwQQ=="][vc_column_text]In order to make it easy for us to sign the files as part of the normal build process, we modify the kv_module target in the file config.mak as follows.7[/vc_column_text][vc_code_raket code="JTIzJTIwVGFyZ2V0JTIwZm91bmQlMjBpbiUyMGNvbmZpZy5tYWslMjBsb2NhdGVkJTIwaW4lMjB0aGUlMjB0b3AlMjBsZXZlbCUyMGRpcmVjdG9yeSUyMG9mJTIwbGludXhjYW4lMEFrdl9tb2R1bGUlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNDBlY2hvJTIwLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0lMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNDBlY2hvJTIwJTIyYnVpbGRpbmclMjAlMjQlMjhLVl9NT0RVTEVfTkFNRSUyOSUyMCUyNCUyOElTX0RFQlVHJTI5JTIyJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTQwZWNobyUyMCUyMktlcm5lbCUyMHNyYyUzQSUyMiUyMCUyNCUyOEtWX0tFUk5FTF9TUkNfRElSJTI5JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTI0JTI4TUFLRSUyOSUyMC1DJTIwJTI0JTI4S1ZfS0VSTkVMX1NSQ19ESVIlMjklMjBTVUJESVJTJTNEJTI0JTI4UFdEJTI5JTIwbW9kdWxlcyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU0MGlmJTIwJTVCJTIwJTIyJTI0JTI4S1ZfU0lHTl9DRVJUX1BBVEglMjklMjIlMjAlMjElM0QlMjAlMjIlMjIlMjAlNUQlMjAlMjYlMjYlMjAlNUIlMjAlMjIlMjQlMjhLVl9TSUdOX0NFUlRfTkFNRSUyOSUyMiUyMCUyMSUzRCUyMCUyMiUyMiUyMCU1RCUzQiUyMHRoZW4lMjAlNUMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBlY2hvJTIwJTIyU2lnbmluZyUyMG1vZHVsZSUyMCUyNCUyOEtWX01PRFVMRV9OQU1FJTI5LmtvJTIwd2l0aCUyMCUyNCUyOEtWX1NJR05fQ0VSVF9QQVRIJTI5JTJGJTI0JTI4S1ZfU0lHTl9DRVJUX05BTUUlMjklMjIlM0IlMjAlNUMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjQlMjhLVl9LRVJORUxfU1JDX0RJUiUyOSUyRnNjcmlwdHMlMkZzaWduLWZpbGUlMjBzaGEyNTYlMjAlMjQlMjhLVl9TSUdOX0NFUlRfUEFUSCUyOSUyRiUyNCUyOEtWX1NJR05fQ0VSVF9OQU1FJTI5LnByaXYlMjAlNUMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjQlMjhLVl9TSUdOX0NFUlRfUEFUSCUyOSUyRiUyNCUyOEtWX1NJR05fQ0VSVF9OQU1FJTI5LmRlciUyMCUyNCUyOEtWX01PRFVMRV9OQU1FJTI5LmtvJTNCJTIwJTVDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZmklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNDBlY2hvJTIwLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0="][vc_column_text]It is now possible to build and sign the driver modules using the normal make
command by just adding the two environment variables KV_SIGN_CERT_PATH
and KV_SIGN_CERT_NAME
. We also install the module after building.[/vc_column_text][vc_code_raket code="JTIwJTIzJTIwS1ZfU0lHTl9DRVJUX1BBVEglMjBpcyUyMHRoZSUyMHBhdGglMjB0byUyMHlvdXIlMjBwcml2YXRlJTIwa2V5JTIwYW5kJTIwY2VydGlmaWNhdGUuJTBBJTIwJTIzJTIwS1ZfU0lHTl9DRVJUX05BTUUlMjBpcyUyMHRoZSUyMGJhc2UlMjBmaWxlJTIwbmFtZSUyMG9mJTIweW91ciUyMHByaXZhdGUlMjBrZXklMjBhbmQlMEFjZXJ0aWZpY2F0ZSUyQyUyMHdpdGhvdXQlMjBzdWZmaXguJTBBJTIwJTI0JTIwbWFrZSUyMEtWX1NJR05fQ0VSVF9QQVRIJTNEfiUyRnNpZ25fY2VydCUyMEtWX1NJR05fQ0VSVF9OQU1FJTNEbW9kdWxlc2lnbiUwQSUyMCUyNCUyMHN1ZG8lMjBtYWtlJTIwaW5zdGFsbA=="][vc_column_text]To verify that the installed module is working, we use the modprobe command to manually load a module and verify that it has been loaded.8 We also make sure to remove the module so we don't interfere with the automatic loading when Kvaser USB devices are connected.[/vc_column_text][vc_code_raket code="JTI0JTIwc3VkbyUyMG1vZHByb2JlJTIwbWh5ZHJhJTBBJTI0JTIwbHNtb2QlMjAlN0MlMjBncmVwJTIwJUUyJTgwJTk5a3Zjb21tb24lNUMlN0NtaHlkcmElRTIlODAlOTklMEFtaHlkcmElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjA0NTA1NiUyMCUyMDAlMEFrdmNvbW1vbiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMDQ1MDU2JTIwJTIwMSUyMG1oeWRyYSUwQSUwQSUyNCUyMHN1ZG8lMjBtb2Rwcm9iZSUyMC1yJTIwbWh5ZHJhJTIwa3Zjb21tb24lMEE="][/vc_column][/vc_row][vc_row][vc_column][vc_column_text][/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_raw_html]JTNDYnIlM0U=[/vc_raw_html][vc_header_raket header_type="h2" header="Footnotes"][vc_column_text]1 Some notes regarding protecting the private key can be found in the Linux kernel documentation at https://static.lwn.net/kerneldoc/admin-guide/module-signing.html#administering-protecting-the-private-key.
2 You can read more about the different X509 file extensions such as DER in the SSL installation knowledge base at https://support.ssl.com/Knowledgebase/Article/View/19/0/der-vs-crt-vs-cer-vs-pem-certificates-and-how-to-convert-them/.
3 For a description of the significance of the Common Name, read more in the stackexchange article at https://security.stackexchange.com/questions/40026/openssl-x509-whats-the-significance-of-cn-common-name/.
4 You use the mokutil
command to manage Machine Owner Keys (MOK) used by the shim layer to validate grub2 and kernel images.
5 If you miss this timeout, you need to rerun the mokutil --import
command and reboot again.
6 Kvaser download page is located at https://www.kvaser.com/download.
7 The adjusted makefile target will be incorporated in the next release of linuxcan.
8 Unfortunatly it is currently not possible to use modinfo
to see if a module is signed or not, see the github issue in coreos at https://github.com/coreos/bugs/issues/1054/ for more information.[/vc_column_text][/vc_column][/vc_row]
[post_title] => Build and install signed Kvaser driver modules
[post_excerpt] =>
[post_status] => publish
[comment_status] => closed
[ping_status] => closed
[post_password] =>
[post_name] => build-install-signed-kvaser-driver-modules
[to_ping] =>
[pinged] =>
[post_modified] => 2022-10-04 12:42:57
[post_modified_gmt] => 2022-10-04 12:42:57
[post_content_filtered] =>
[post_parent] => 0
[guid] => https://www.kvaser.com/?post_type=developer_blog&p=39856
[menu_order] => 0
[post_type] => developer_blog
[post_mime_type] =>
[comment_count] => 0
[filter] => raw
)
[comment_count] => 0
[current_comment] => -1
[found_posts] => 469
[max_num_pages] => 47
[max_num_comment_pages] => 0
[is_single] =>
[is_preview] =>
[is_page] =>
[is_archive] =>
[is_date] =>
[is_year] =>
[is_month] =>
[is_day] =>
[is_time] =>
[is_author] =>
[is_category] =>
[is_tag] =>
[is_tax] =>
[is_search] =>
[is_feed] =>
[is_comment_feed] =>
[is_trackback] =>
[is_home] => 1
[is_privacy_policy] =>
[is_404] =>
[is_embed] =>
[is_paged] => 1
[is_admin] =>
[is_attachment] =>
[is_singular] =>
[is_robots] =>
[is_favicon] =>
[is_posts_page] => 1
[is_post_type_archive] =>
[query_vars_hash:WP_Query:private] => 006bfb57c1a7f2ad699808a50b96840c
[query_vars_changed:WP_Query:private] => 1
[thumbnails_cached] =>
[stopwords:WP_Query:private] =>
[compat_fields:WP_Query:private] => Array
(
[0] => query_vars_hash
[1] => query_vars_changed
)
[compat_methods:WP_Query:private] => Array
(
[0] => init_query_flags
[1] => parse_tax_query
)
)
Request more information before you complete the purchase.