Update help files to reflect recent changes.

This commit is contained in:
Collin Kidder
2018-10-23 21:55:37 -04:00
parent 66ad108f82
commit b8e6612f4d
12 changed files with 165 additions and 84 deletions
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+4 -4
View File
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<QHelpCollectionProject version="1.0">
<assistant>
<title>SavvyCAN 181 documentation</title>
<homePage>qthelp://org.sphinx.savvycan.181/doc/index.html</homePage>
<startPage>qthelp://org.sphinx.savvycan.181/doc/index.html</startPage>
<title>SavvyCAN 189 documentation</title>
<homePage>qthelp://org.sphinx.savvycan.189/doc/index.html</homePage>
<startPage>qthelp://org.sphinx.savvycan.189/doc/index.html</startPage>
</assistant>
<docFiles>
<generate>
@@ -16,4 +16,4 @@
<file>SavvyCAN.qch</file>
</register>
</docFiles>
</QHelpCollectionProject>
</QHelpCollectionProject>
+58 -52
View File
@@ -1,16 +1,16 @@
<?xml version="1.0" encoding="utf-8" ?>
<QtHelpProject version="1.0">
<namespace>org.sphinx.savvycan.181</namespace>
<namespace>org.sphinx.savvycan.189</namespace>
<virtualFolder>doc</virtualFolder>
<customFilter name="SavvyCAN 181">
<customFilter name="SavvyCAN 189">
<filterAttribute>SavvyCAN</filterAttribute>
<filterAttribute>181</filterAttribute>
<filterAttribute>189</filterAttribute>
</customFilter>
<filterSection>
<filterAttribute>SavvyCAN</filterAttribute>
<filterAttribute>181</filterAttribute>
<filterAttribute>189</filterAttribute>
<toc>
<section title="SavvyCAN 181 documentation" ref="index.html">
<section title="SavvyCAN 189 documentation" ref="index.html">
<section title="Main / Start Up Screen" ref="mainscreen.html"/>
<section title="The Main Frame List" ref="mainscreen.html#the-main-frame-list"/>
<section title="The Bottom Statusbar" ref="mainscreen.html#the-bottom-statusbar"/>
@@ -58,6 +58,10 @@
<section title="Sniffer Window" ref="sniffer.html"/>
<section title="Using the Sniffer Window" ref="sniffer.html#using-the-sniffer-window"/>
<section title="Notching and Unnotching" ref="sniffer.html#notching-and-unnotching"/>
<section title="Advanced Options" ref="sniffer.html#advanced-options"/>
<section title="Never Expire IDs" ref="sniffer.html#never-expire-ids"/>
<section title="Mute notched bits" ref="sniffer.html#mute-notched-bits"/>
<section title="Fade inactive bytes" ref="sniffer.html#fade-inactive-bytes"/>
<section title="Frame Details Window" ref="framedetails.html"/>
<section title="The Purpose of Frame Details Window" ref="framedetails.html#the-purpose-of-frame-details-window"/>
<section title="File Comparison Window" ref="filecomparison.html"/>
@@ -101,63 +105,65 @@
</keywords>
<files>
<file>flowview.html</file>
<file>dbc_manager.html</file>
<file>graphwindow.html</file>
<file>framedetails.html</file>
<file>rangestate.html</file>
<file>filecomparison.html</file>
<file>connectionwindow.html</file>
<file>fuzzingwindow.html</file>
<file>mainscreen.html</file>
<file>signaleditor.html</file>
<file>uds_scanner.html</file>
<file>customsender.html</file>
<file>graphsetup.html</file>
<file>playbackwindow.html</file>
<file>index.html</file>
<file>scriptingwindow.html</file>
<file>bisector.html</file>
<file>firmwareuploader.html</file>
<file>genindex.html</file>
<file>sniffer.html</file>
<file>isotp_decoder.html</file>
<file>preferences.html</file>
<file>connectionwindow.html</file>
<file>customsender.html</file>
<file>dbc_editor.html</file>
<file>_static/file.png</file>
<file>_static/down.png</file>
<file>dbc_manager.html</file>
<file>filecomparison.html</file>
<file>firmwareuploader.html</file>
<file>flowview.html</file>
<file>framedetails.html</file>
<file>fuzzingwindow.html</file>
<file>genindex.html</file>
<file>graphsetup.html</file>
<file>graphwindow.html</file>
<file>index.html</file>
<file>isotp_decoder.html</file>
<file>mainscreen.html</file>
<file>playbackwindow.html</file>
<file>preferences.html</file>
<file>rangestate.html</file>
<file>scriptingwindow.html</file>
<file>search.html</file>
<file>signaleditor.html</file>
<file>sniffer.html</file>
<file>uds_scanner.html</file>
<file>_static/ajax-loader.gif</file>
<file>_static/comment-close.png</file>
<file>_static/minus.png</file>
<file>_static/comment-bright.png</file>
<file>_static/up-pressed.png</file>
<file>_static/pygments.css</file>
<file>_static/plus.png</file>
<file>_static/nonav.css</file>
<file>_static/alabaster.css</file>
<file>_static/basic.css</file>
<file>_static/down-pressed.png</file>
<file>_static/up.png</file>
<file>_static/comment-bright.png</file>
<file>_static/comment-close.png</file>
<file>_static/comment.png</file>
<file>_images/SignalEditor.png</file>
<file>_images/FrameInfoWindow.png</file>
<file>_images/DBCEditor.png</file>
<file>_images/UDS_Scanner.png</file>
<file>_images/Sniffer.png</file>
<file>_static/down-pressed.png</file>
<file>_static/down.png</file>
<file>_static/file.png</file>
<file>_static/minus.png</file>
<file>_static/nonav.css</file>
<file>_static/plus.png</file>
<file>_static/pygments.css</file>
<file>_static/up-pressed.png</file>
<file>_static/up.png</file>
<file>_images/Bisector.png</file>
<file>_images/FuzzingWindow.png</file>
<file>_images/GraphingView.png</file>
<file>_images/ScriptingWindow.png</file>
<file>_images/DBCManager.png</file>
<file>_images/GraphSetup.png</file>
<file>_images/RangeState.png</file>
<file>_images/Preferences.png</file>
<file>_images/ConnectionWindow.png</file>
<file>_images/CustomSender.png</file>
<file>_images/DBCEditor.png</file>
<file>_images/DBCManager.png</file>
<file>_images/FileComparator.png</file>
<file>_images/FlowView.png</file>
<file>_images/FrameInfoWindow.png</file>
<file>_images/FuzzingWindow.png</file>
<file>_images/GraphSetup.png</file>
<file>_images/GraphingView.png</file>
<file>_images/ISOTPDecoder.png</file>
<file>_images/MainScreen.png</file>
<file>_images/FlowView.png</file>
<file>_images/CustomSender.png</file>
<file>_images/Playback.png</file>
<file>_images/Preferences.png</file>
<file>_images/RangeState.png</file>
<file>_images/ScriptingWindow.png</file>
<file>_images/SignalEditor.png</file>
<file>_images/Sniffer.png</file>
<file>_images/UDS_Scanner.png</file>
</files>
</filterSection>
</QtHelpProject>
</QtHelpProject>
+2 -2
View File
@@ -1,4 +1,4 @@
make qthelp
~/Qt/5.9.1/gcc_64/bin/qcollectiongenerator build/qthelp/SavvyCAN.qhcp
~/Qt/5.9.1/gcc_64/bin/assistant -collectionFile build/qthelp/SavvyCAN.qhc
~/Qt/5.11.2/gcc_64/bin/qcollectiongenerator build/qthelp/SavvyCAN.qhcp
~/Qt/5.11.2/gcc_64/bin/assistant -collectionFile build/qthelp/SavvyCAN.qhc
+3 -3
View File
@@ -47,7 +47,7 @@ master_doc = 'index'
# General information about the project.
project = u'SavvyCAN'
copyright = u'2017, EVTV'
copyright = u'2018, EVTV'
author = u'Collin Kidder'
# The version info for the project you're documenting, acts as replacement for
@@ -55,9 +55,9 @@ author = u'Collin Kidder'
# built documents.
#
# The short X.Y version.
version = '181'
version = '189'
# The full version, including alpha/beta/rc tags.
release = '181'
release = '189'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
+47 -19
View File
@@ -5,32 +5,60 @@ Connection Window
.. image:: ./images/ConnectionWindow.png
The connection window is used to add, remove, and modify connections. At the moment it is possible to use any SocketCAN compatible device (in LINUX) and any GVRET compatible device in any of the supported operating systems.
At this time GVRET compatible devices are: EVTVDue, EVTV CANDue (1.3/2/2.1/2.2), Teensy 3.1-3.6, Macchina M2.
The connection window is used to add, remove, and modify connections. At the moment it is possible
to use any QT SerialBus compatible device and any GVRET compatible device in any of the supported
operating systems. SerialBus supports socketcan on linux, passthrough on Linux and Windows 32
bit, and Vector, PeakCAN, and TinyCAN on supported OS's.
At this time GVRET compatible devices are: EVTVDue, EVTV CANDue (1.3/2/2.1/2.2),
Teensy 3.1-3.6, Macchina M2, EVTV ESP32 Due.
Connecting To A Dongle
==============================
SavvyCAN is able to connect to GVRET compatible devices to capture new traffic. These devices will present as serial ports on the connected PC.
To connect to a dongle select the proper serial port and click "Create New Connection". If a valid device is found on that serial port the first
statusbar section will update and the currently set canbus speeds will show in the table at the left of the window. These speeds can then
be changed by clicking on the speed (or otherwise selecting the cell in the table) and typing in a new value. Leaving the cell will update the speed to the new value. GVRET devices also support
setting "listen only" on each bus. This mode causes the device to not acknowledge any traffic or try to modify the bus at all. It is as it says, a mode where you can only listen to whatever traffic
is found on the bus. Some older GVRET devices supported a mode where you could change the second bus between single wire CAN and normal CAN. This is deprecated. However, newer GVRET devices have
dedicated single wire CAN buses and the relevant bus will show the checkbox.
SavvyCAN is able to connect to GVRET compatible devices to capture new traffic. These
devices will present as serial ports on the connected PC.
To connect to a dongle select the proper serial port and click "Create New Connection".
If a valid device is found on that serial port the first statusbar section will update
and the currently set canbus speeds will show in the table at the left of the window.
These speeds can then be changed by clicking on the speed (or otherwise selecting the cell
in the table) and typing in a new value. Leaving the cell will update the speed to the new
value. GVRET devices also support setting "listen only" on each bus. This mode causes the
device to not acknowledge any traffic or try to modify the bus at all. It is as it says,
a mode where you can only listen to whatever traffic is found on the bus. Some older GVRET
devices supported a mode where you could change the second bus between single wire CAN
and normal CAN. This is deprecated. However, newer GVRET devices have dedicated single
wire CAN buses and the relevant bus will show the checkbox.
SavvyCAN can also connect to SocketCAN devices in LINUX. Select "SocketCAN" as the connection type and then type in the device name. This should be just the same as you would provide to the can-utils
programs. That is, do not enter /dev/can0 but rather can0. Then push "Create New Connection" and you should see the new connection in the table on the left of the window. Note that SocketCAN devices don't
support changing the baud rate within a program. You must do this when you set up the connection via console commands. This is outside the scope of this documentation. Consult the SocketCAN documentation
for details on configuring such devices.
SavvyCAN can also connect to a wide variety of CAN hardware through the built-in QT
SerialBus drivers. These drivers vary by operating system but support socketcan on LINUX
and Vector tools on both LINUX and Windows. When you select "QT SerialBus Devices" you will
get a list of device types supported. Select a device type and for most devices you should see
the Port list fill out with all registered and valid ports for that driver. Socketcan devices, for
instance, are automatically detected now. Then push "Create New Connection" and you should
see the new connection in the table on the left of the window. Note that SocketCAN devices
don't support changing the baud rate within a program. You must do this when you set up
the connection via console commands. This is outside the scope of this documentation.
Consult the SocketCAN documentation for details on configuring such devices.
The last connection option is "Remote Host." If you select this option then Port will change
to a textbox. Enter the IP address of the remote (but still local to your LAN) IP address. Currently
this works with EVTV ESP32 boards and M2 boards.
Debugging Connection Problems
==============================
GVRET devices present as serial ports and have significant configuration options. However, the ability to configure so many things and the ability to compile the firmware yourself both come as a
double edged sword. They present many opportunities for things to go wrong. Because of this there is a debugging console present on the connection window. Click a bus in the table then click "Enable Console"
to cause it to start logging serial traffic. From this console you can see what is going on. It shows what SavvyCAN is sending and what it is getting back. It has extended status messages that might help to narrow down
what is going wrong. Additionally, if you're feeling adventurous you can send traffic to the serial device from the Send line. "Send Hex" accepts a set of hex values separated by spaces. "Send Text" will send the raw
text you type on the line. GVRET traffic is ordinarily binary so "Send Text" won't work very well for that. But, there is also a text console possible on GVRET devices. If you connect to them with a serial program you can
configure things via a text console. Type ? and follow it up with some form of line ending (Cr, Lf, CrLf, any will work).
GVRET devices present as serial ports and have significant configuration options.
However, the ability to configure so many things and the ability to compile the firmware
yourself both come as a double edged sword. They present many opportunities for things
to go wrong. Because of this there is a debugging console present on the connection window.
Click a bus in the table then click "Enable Console" to cause it to start logging serial
traffic. From this console you can see what is going on. It shows what SavvyCAN is sending
and what it is getting back. It has extended status messages that might help to narrow down
what is going wrong. Additionally, if you're feeling adventurous you can send traffic to
the serial device from the Send line. "Send Hex" accepts a set of hex values separated
by spaces. "Send Text" will send the raw text you type on the line. GVRET traffic is
ordinarily binary so "Send Text" won't work very well for that. But, there is also a
text console possible on GVRET devices. If you connect to them with a serial program you can
configure things via a text console. Type ? and follow it up with some form of line
ending (Cr, Lf, CrLf, any will work).
Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 133 KiB

+1 -1
View File
@@ -1,5 +1,5 @@
Welcome to SavvyCAN V181 documentation!
Welcome to SavvyCAN V189 documentation!
=========================================
Contents:
+49 -2
View File
@@ -8,12 +8,59 @@ Sniffer Window
Using the Sniffer Window
=========================
This window is essentially a graphical version of the linux can_utils program "cansniffer". The general idea here is to display a list of frames such that you only see frames that are actively updating. If a given ID has not been seen in 5 seconds the ID portion will turn RED and then disappear from the list. In this way only frames that are updating are in the list. They are ordered by ID. Bytes that have deincremented will be red and bytes that have incremented will be green. You can use the "Filters" area to mask away some IDs so that they never show up. This can help to declutter the list.
This window is essentially a turbo charged graphical version of the linux
can_utils program "cansniffer". The general idea here is to display a list
of frames such that you only see frames that are actively updating. If a given
ID has not been seen in 5 seconds the ID portion will turn RED and then disappear
from the list. In this way only frames that are updating are in the list. They are
ordered by ID. Bytes that have deincremented will be red and bytes that have incremented
will be green. You can use the "Filters" area to mask away some IDs so that they never
show up. This can help to declutter the list.
This window updates with a 200ms interval.
Notching and Unnotching
========================
While the window is running it keeps a running list each 200ms cycle of all the bits that changed in that timespan. Each 200ms this list is backed up and reset. If you push the notch button the system will remember all the bits that were set in the last 200ms window and will not color the output if those bits are toggled in the future. They will thus somewhat be ignored except that you can visually still see them updating. If you click the Notch button repeatedly it will add any new changed bits to the old changed bits. In this way you can build up a set of bits to ignore. Un-notching causes all notched (ignored) bits to be reset and thus all changes will be colored once again.
While the window is running it keeps a running list each 200ms cycle of all the bits that
changed in that timespan. Each 200ms this list is backed up and reset. If you push the
notch button the system will remember all the bits that were set in the last 200ms window
and will not color the output if those bits are toggled in the future. They will thus somewhat
be ignored except that you can visually still see them updating. If you click the Notch
button repeatedly it will add any new changed bits to the old changed bits. In this way you
can build up a set of bits to ignore. Un-notching causes all notched (ignored) bits to be
reset and thus all changes will be colored once again.
Advanced Options
==================
All of the above was valid if you do not check any of the three checkboxes. With the checkboxes
unchecked this window is very close to cansniffer on the command line. But, what fun is that?
These checkboxes modify the way the window works in a variety of ways.
Never Expire IDs
==================
This checkbox will do exactly what it says on the tin. Instead of frame ID's expiring after
5 seconds of inactivity they will stick around forever. This can be useful so that the ID you
are watching doesn't jump up and down as IDs expire and potentially come back later on or new IDs
are seen. With no expiration you will get a more consistent view of the IDs. You are still free
to filter away IDs you are not interested in.
Mute notched bits
===================
This checkbox might sound a bit strange. With this checked any bytes that you have notched will
ignore any notched bits and not even change the display to update if only notched bits were changed.
This completely hides all notched data. The view of the frames will then NOT perfectly or correctly
represent the actual most up to date data for each ID. So, use this option with caution. But, it
is handy when you are looking for a needle in a haystack and you don't want things changing if you've
already told the program to notch them away.
Fade inactive bytes
====================
This can be used with mute or without but has a similar purpose. When this is checked any bytes
that haven't updated recently will begin to fade away to white. They never quite get all the way
to disappearing but will fade to be very light. In this way only data which is actively changing will
be very visible. This drastically aids in helping you to ignore any bytes that are not changing.
+1 -1
View File
@@ -66,7 +66,7 @@ HelpWindow* HelpWindow::getRef()
void HelpWindow::showHelp(QString help)
{
if (m_helpEngine) {
QString url = "qthelp://org.sphinx.savvycan.181/doc/" + help;
QString url = "qthelp://org.sphinx.savvycan.189/doc/" + help;
qDebug() << "Searching for " << url;
QByteArray helpData = m_helpEngine->fileData(QUrl(url));
qDebug() << "Help file size: " << helpData.length();