doc/manual/en/manual.tex
author Edouard TISSERANT <edouard.tisserant@gmail.com>
Wed, 16 Dec 2009 10:15:09 +0100
changeset 621 609aff93810a
parent 615 1eec2f9a7f5f
permissions -rw-r--r--
fixed typo in makefile
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
     1
\documentclass[12pt,english,a4paper]{book}
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
     2
\usepackage[T1]{fontenc}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
     3
\usepackage[latin9]{inputenc}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
     4
\usepackage{graphicx}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
     5
\usepackage{amsfonts}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
     6
\usepackage{textcomp}
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
     7
\usepackage{color}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
     8
\usepackage{calc}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
     9
\usepackage{longtable}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    10
\usepackage{hyperref}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    11
\usepackage{graphics}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    12
\DeclareGraphicsExtensions{.jpg}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    13
\DeclareGraphicsExtensions{.png}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    14
\hypersetup{colorlinks=true, linkcolor=blue, filecolor=blue, pagecolor=blue, urlcolor=blue}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    15
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    16
%%%%\%%%%%%%% titre, auteurs, date, etc...%%%%%%%%%%%%%%%%%%
249
d328d0d9b88e Some cleanup in latex manual
etisserant
parents: 211
diff changeset
    17
\title{\Huge The CanFestival CANOpen stack manual}
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    18
\author{Edouard TISSERANT}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    19
\date{\today}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    20
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
    21
\setcounter{secnumdepth}{5}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
    22
\renewcommand\thesection{\arabic{section} -}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
    23
\renewcommand\thesubsection{\arabic{section}.\arabic{subsection})}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
    24
\renewcommand\thesubsubsection{\arabic{section}.\arabic{subsection}.\arabic{subsubsection})}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
    25
\renewcommand\theparagraph{\alph{paragraph})}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
    26
\renewcommand\thesubparagraph{\roman{subparagraph})}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
    27
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    28
\newcommand{\canopen}{CANopen }
392
3788feef57e0 Some typo fixes in the manual, thanks to Yegor Yefremov (VisionSystems)
etisserant
parents: 391
diff changeset
    29
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    30
\begin{document}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    31
{\centering\textsf{\huge The CanFestival \canopen stack manual.}}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    32
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    33
\renewcommand{\contentsname}{CanFestival v3.0 Manual}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    34
\setcounter{tocdepth}{2} \tableofcontents{}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    35
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    36
\clearpage{}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    37
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    38
\section{Introduction}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    39
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    40
CanFestival is an OpenSource (LGPL and GPL) \canopen framework.
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    41
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    42
\subsection{The CanFestival project}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    43
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    44
This project, initiated by Edouard TISSERANT in 2001, has grown thanks
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    45
to Francis DUPIN and other contributors.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    46
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    47
Today, CanFestival focuses on providing an ANSI-C platform independent
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    48
\canopen stack that can be implemented as master or slave nodes on
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    49
PCs, Real-time IPCs, and Microcontrollers.
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    50
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    51
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    52
\subsection{What is \canopen}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    53
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    54
CANopen is a CAN based high level protocol. It defines some protocols
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    55
to :
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    56
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    57
\begin{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    58
\item Configure a CAN network. 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    59
\item Transmit data to a specific node or in broadcast. 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    60
\item Administrate the network. For example detecting a not responding node. 
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    61
\end{enumerate}
392
3788feef57e0 Some typo fixes in the manual, thanks to Yegor Yefremov (VisionSystems)
etisserant
parents: 391
diff changeset
    62
The documentation can be found on the CAN in Automation website :
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    63
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    64
\href{http://www.can-cia.de/canopen}{http://www.can-cia.de/canopen}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    65
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    66
The most important document about \canopen is the normative CiA Draft
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    67
Standard 301, version 4.02. You can now download the specification
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    68
from the CAN in Automation website at no cost.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    69
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    70
To continue reading this document, let us assume that you have read
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    71
some papers introducing \canopen .
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    72
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    73
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    74
\section{CanFestival Features}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    75
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    76
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    77
\subsection{Tools }
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    78
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    79
The \canopen library is coming with some tools :
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    80
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    81
\begin{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    82
\item Object Dictionary editor GUI. WxPython Model-View-Controler based
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
    83
GUI, that helps a lot in generating object dictionary source code for
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    84
each node. 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    85
\item A configure script, that let you chose compile time options such as
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    86
target CPU/HOST, CAN and TIMER drivers.\\
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    87
 This script has not been generated with autoconf, it has been made
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    88
keeping micro-controller target in mind. 
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    89
\end{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    90
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
    91
\subsection{Multi-Platform}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    92
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    93
\begin{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    94
\item Library source code is C-ANSI. 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    95
\item Driver and examples coding conventions merely depend on target specific
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    96
contributor/compiler. 
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    97
\item Unix compatible interfaces and examples should compile and run on
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
    98
any Unix system (tested on GNU/Linux and GNU/FreeBSD). 
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
    99
\end{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   100
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   101
\subsection{\canopen standard conformance}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   102
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   103
\subsubsection{DS-301}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   104
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   105
Supported features should conform to DS301. V.4.02 13 february 2002. 
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   106
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   107
\begin{enumerate}
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   108
\item NMT master and slave
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   109
\item Heartbeat consumer and producer
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   110
\item NodeGuard slave reponder and basic master without tracking
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   111
\item SYNC service
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   112
\item SDO multiples client and server, segmented and expedited
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   113
\item PDO : TPDO and RPDO, with respect to transmission type
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   114
\item PDO mapping from/to OD variables bit per bit. 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   115
\item EMCY : Send and receive and keeps track of emergency objects
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   116
\item Data types : 8 to 64 bits values, fixed length strings.
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   117
\end{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   118
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   119
\subsubsection{DS-302}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   120
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   121
Only concise DFC is supported.
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   122
517
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   123
\subsubsection{DS-305}
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   124
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   125
LSS services are fully supported although they have to be enabled at compile time. Additionally, FastScan LSS service is also optionally enabled. 
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   126
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   127
\section{How to start}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   128
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   129
\subsection{Host requirements}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   130
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   131
What you need on your development workstation.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   132
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   133
\subsubsection{Object Dictionary Editor GUI}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   134
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   135
\begin{enumerate}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   136
\item Python, with 
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   137
\item wxPython modules installed (at least version 2.6.3).
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   138
\item Gnosis xml tools. (Optional can also be installed locally to the project
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   139
automatically with the help of a Makefile. Please see {}``Using Dictionary
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   140
Editor GUI'' ) 
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   141
\end{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   142
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   143
\subsubsection{Linux and Unix-likes}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   144
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   145
\begin{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   146
\item Linux, FreeBSD, Cygwin or any Unix environment with GNU toolchain. 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   147
\item The GNU C compiler (gcc) or any other ANSI-C compiler for your target
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   148
platform. 
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   149
\item Xpdf, and the official 301\_v04000201.pdf file in order to get GUI
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   150
context sensitive help. 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   151
\item GNU Make 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   152
\item Bash and sed 
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   153
\end{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   154
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   155
\subsubsection{Windows (for native win32 target)}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   156
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   157
\begin{enumerate}
464
7d3637f763be update Doxyfile , manual.tex
greg
parents: 454
diff changeset
   158
\item Visual Studio Express 2005 or worst.
7d3637f763be update Doxyfile , manual.tex
greg
parents: 454
diff changeset
   159
\item Microsoft platform SDK (requires Genuine Advantage)
7d3637f763be update Doxyfile , manual.tex
greg
parents: 454
diff changeset
   160
\item Cygwin (for configuration only)
7d3637f763be update Doxyfile , manual.tex
greg
parents: 454
diff changeset
   161
\item MinGW/MSYS
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   162
\end{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   163
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   164
\section{Understanding Canfestival}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   165
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   166
\subsection{CanFestival Project tree layout}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   167
Simplified directory structure.
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   168
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   169
./src ANSI-C source of \canopen stack
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   170
./include Exportables Header files
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   171
./drivers Interfaces to specific platforms/HW
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   172
./drivers/unix Linux and Cygwin OS interface
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   173
./drivers/win32 Native Win32 OS interface
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   174
./drivers/timers_xeno Xenomai timers/threads (Linux only)
454
bc000083297a - add RTAI support
greg
parents: 448
diff changeset
   175
./drivers/timers_rtai Rtai timers/threads (Linux only)
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   176
./drivers/timers_kernel Linux kernel timer/threads
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   177
./drivers/timers_unix Posix timers/threads (Linux, Cygwin)
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   178
./drivers/can_virtual_kernel Fake CAN network (kernel space)
448
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
   179
./drivers/can_serial Serial point to point and PTY hub (*nix only)
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   180
./drivers/can_peak_linux PeakSystem CAN library interface
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   181
./drivers/can_peak_win32 PeakSystem PCAN-Light interface
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   182
./drivers/can_uvccm_win32 Acacetus's RS232 CAN-uVCCM interface
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   183
./drivers/can_virtual Fake CAN network (Linux, Cygwin)
464
7d3637f763be update Doxyfile , manual.tex
greg
parents: 454
diff changeset
   184
./drivers/can_vcom VScom VSCAN interface
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   185
./drivers/hcs12 HCS12 full target interface
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   186
./examples Examples
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   187
./examples/TestMasterSlave 2 nodes, NMT SYNC SDO PDO, win32+unix
517
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   188
./examples/TestMasterSlaveLSS 3 nodes, NMT SYNC SDO PDO LSS, win32+unix
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   189
./examples/TestMasterMicroMod 1 node, control Peak I/O Module, unix
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   190
./examples/gene_SYNC_HCS12 Just send periodic SYNC on HCS12
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   191
./examples/win32test Ask some DS301 infos to a node (win32)
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   192
./objdictgen Object Dictionary editor GUI
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   193
./objdictgen/config Pre-defined OD profiles
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   194
./objdictgen/examples Some examples/test OD
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   195
./doc Documentation source
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   196
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   197
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   198
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   199
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   200
\subsection{Implement CanFestival in your application}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   201
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   202
\begin{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   203
\includegraphics[width=12cm]{Pictures/10000201000003F9000002CF880931E7} 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   204
\par\end{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   205
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   206
\bigskip{}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   207
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   208
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   209
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   210
\subsection{CanFestival CAN interfaces}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   211
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   212
Because most CAN controllers and drivers implement FIFOs, CanFestival
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   213
consider sending message as a non blocking operation.
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   214
464
7d3637f763be update Doxyfile , manual.tex
greg
parents: 454
diff changeset
   215
In order to prevent reentrant calls to the stack, messages reception
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   216
is implemented differently on {\textmu}C and OS.:
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   217
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   218
\begin{enumerate}
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   219
\item {\textmu}C must provide interruption masking, mutually excluding timer and CAN receive interrupts.\\
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   220
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   221
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   222
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   223
\begin{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   224
\includegraphics[width=12cm]{Pictures/10000201000003CA0000016604E6A5EF} 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   225
\par\end{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   226
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   227
\item OS must provide a receive thread, a timer thread and a mutex. CAN
464
7d3637f763be update Doxyfile , manual.tex
greg
parents: 454
diff changeset
   228
reception should be a blocking operation.\\
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   229
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   230
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   231
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   232
\begin{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   233
\includegraphics[width=12cm]{Pictures/10000201000003F9000002CF8B0CDAEA} 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   234
\par\end{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   235
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   236
\end{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   237
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   238
\subsection{CanFestival event scheduling}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   239
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   240
A \canopen node must be able to take delayed actions.
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   241
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   242
For instance, periodic sync emission, heartbeat production or SDO timeout
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   243
need to set some alarms that will be called later and do the job.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   244
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   245
{\textmu}C generally do not have enough free timers to handle all
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   246
the \canopen needs directly. Moreover, CanFestival internal data
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   247
may be corrupt by reentrant calls.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   248
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   249
CanFestival implement a micro -scheduler (timer.c). It uses only one
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   250
timer to mimic many timers. It manage an alarm table, and call alarms
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   251
at desired time.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   252
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   253
\begin{center}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   254
\includegraphics[width=12cm]{Pictures/100000000000022C000000DEDAD2140C} 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   255
\par\end{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   256
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   257
Scheduler can handle short clock value ranges limitation found on
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   258
some {\textmu}C. As an example, value range for a 16bit clock counter
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   259
with 4{\textmu}s tick is crossed within 0.26 seconds... Long alarms
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   260
must be segmented.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   261
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   262
Chronogram illustrate a long alarm (A) and a short periodic alarm
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   263
(B), with a A value {\textgreater} clock range {\textgreater}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   264
B value. Values t0...t8 are successive setTimer call parameter values.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   265
t1 illustrates an intermediate call to TimeDispatch, caused by a delay
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   266
longer than clock range. Because of long alarm segmentation, at the
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   267
end of t1, TimeDispatch call will not trig any alarm callback.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   268
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   269
\begin{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   270
\includegraphics[width=12cm]{Pictures/1000000000000396000000FFC42573DA} 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   271
\par\end{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   272
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   273
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   274
\section{Linux Target}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   275
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   276
Linux target is default configure target.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   277
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   278
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   279
\subsection{Linux Compilation and installation}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   280
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   281
Call ./configure -- help to see all available compile time options.
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   282
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   283
After invoking ./configure with your platform specific switches, just
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   284
type make.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   285
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   286
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   287
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   288
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   289
	./configure [options]
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   290
	make
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   291
	make install
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   292
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   293
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   294
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   295
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   296
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   297
\subsubsection{Standard Linux node}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   298
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   299
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   300
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   301
	./configure --timers=unix
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   302
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   303
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   304
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   305
To do a \canopen node running on PC -Linux, you need :
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   306
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   307
\begin{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   308
\item A working linux distribution 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   309
\item One or more Peak system PC CAN interface and the last Peak Linux driver
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   310
installed. 
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   311
\end{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   312
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   313
\subsubsection{Real -Time Linux node}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   314
454
bc000083297a - add RTAI support
greg
parents: 448
diff changeset
   315
With Xenomai :
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   316
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   317
	./configure --timers=xeno
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   318
\end{verbatim}
454
bc000083297a - add RTAI support
greg
parents: 448
diff changeset
   319
With Rtai :
bc000083297a - add RTAI support
greg
parents: 448
diff changeset
   320
\begin{verbatim}
bc000083297a - add RTAI support
greg
parents: 448
diff changeset
   321
	./configure --timers=rtai
bc000083297a - add RTAI support
greg
parents: 448
diff changeset
   322
\end{verbatim}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   323
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   324
To do a \canopen node running on PC -Linux, you need :
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   325
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   326
\begin{enumerate}
454
bc000083297a - add RTAI support
greg
parents: 448
diff changeset
   327
\item A working Linux distribution patched with XENOMAI (2.1 or greater) or RTAI (3.6). 
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   328
\item One or more Peak system PC CAN interface and the last Peak Real Time
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   329
Linux driver installed. 
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   330
\end{enumerate}
391
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 284
diff changeset
   331
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 284
diff changeset
   332
\subsubsection{Linux kernel node}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   333
391
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 284
diff changeset
   334
To do a CANopen node running on PC-Linux in kernel space, you need:
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 284
diff changeset
   335
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   336
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   337
\begin{enumerate}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   338
\item A working Linux distribution with pre-built 2.6.x.x kernel sources
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   339
\item A CAN card driver compatible with CanFestival
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   340
\end{enumerate}
391
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 284
diff changeset
   341
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   342
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   343
\subsubsection{CAN devices}
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   344
Currently supported CAN devices and corresponding configure switch:
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   345
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   346
\paragraph{Peak systems}
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   347
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   348
	./configure --can=peak_linux
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   349
\end{verbatim}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   350
PeakSystems CAN interface is automatically chosen as default CAN interface
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   351
if libpcan is present in the system.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   352
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   353
Please download driver at \href{http://www.peak-system.com/linux}{http://www.peak
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   354
-system.com/linux} and follow instructions in order to install driver
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   355
on your system.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   356
464
7d3637f763be update Doxyfile , manual.tex
greg
parents: 454
diff changeset
   357
\paragraph{Socket-Can (http://socketcan.berlios.de)}
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   358
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   359
	./configure --can=socket
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   360
\end{verbatim}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   361
448
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
   362
\paragraph{Serial}
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
   363
\begin{verbatim}
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
   364
	./configure --can=serial
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
   365
\end{verbatim}
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
   366
The CAN serial driver implements a 1:1 serial connection between 2 CAN devices.
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
   367
For example, you can connect 2 CANFestival applications via a NULL modem cable.
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
   368
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
   369
Also with this driver comes a software hub, for up to 16 CANFestival apps to 
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
   370
be connected on a single PC, with an optional connection to another CAN driver.
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
   371
Note that only the serial driver is supported at this time.  The hub uses ptys 
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
   372
(pseudo ttys) available on a *nix like system.
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
   373
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   374
\paragraph{LinCan}
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   375
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   376
	./configure --can=lincan
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   377
\end{verbatim}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   378
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   379
\paragraph{Virtual CAN interfaces (for test/debug)}
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   380
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   381
	./configure --can=virtual
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   382
		or, for kernel space:
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   383
	./configure --can=kernel_virtual
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   384
\end{verbatim}
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   385
Virtual CAN interface use Unix pipes to emulate a virtual CAN network.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   386
Each message issued from a node is repeat to all other nodes. Currently
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   387
only works with nodes running in the same process, and does not support
464
7d3637f763be update Doxyfile , manual.tex
greg
parents: 454
diff changeset
   388
work with Xenomai or RTAI.
7d3637f763be update Doxyfile , manual.tex
greg
parents: 454
diff changeset
   389
7d3637f763be update Doxyfile , manual.tex
greg
parents: 454
diff changeset
   390
\paragraph{VScom}
7d3637f763be update Doxyfile , manual.tex
greg
parents: 454
diff changeset
   391
\begin{verbatim}
7d3637f763be update Doxyfile , manual.tex
greg
parents: 454
diff changeset
   392
	./configure --can=vscom
7d3637f763be update Doxyfile , manual.tex
greg
parents: 454
diff changeset
   393
\end{verbatim}
7d3637f763be update Doxyfile , manual.tex
greg
parents: 454
diff changeset
   394
The VSCAN API archive will be automatically downloaded and decompressed (unzip required). See \href{http://www.vscom.de/1_1_05.htm}{www.vscom.de} for available adapters.
517
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   395
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   396
\subsubsection{LSS services}
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   397
Canfestival optionally supports LSS services but they must be enabled.
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   398
\begin{verbatim}
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   399
	./configure --enable-lss
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   400
\end{verbatim}
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   401
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   402
Additionally, the FastScan LSS service can also be enabled.
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   403
\begin{verbatim}
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   404
	./configure --enable-lss --enable-lss-fs
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   405
\end{verbatim}
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   406
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   407
\subsection{Testing your CanFestival installation}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   408
517
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   409
\subsubsection{User space}
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   410
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   411
Sample provided in /example/TestMasterSlave is installed into your
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   412
system during installation.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   413
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   414
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   415
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   416
	TestMasterSlave
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   417
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   418
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   419
392
3788feef57e0 Some typo fixes in the manual, thanks to Yegor Yefremov (VisionSystems)
etisserant
parents: 391
diff changeset
   420
Default CAN driver library is libcanfestival\_can\_virtual.so., which
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   421
will simply pass CAN messages through Unix pipes between Master and
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   422
Slave.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   423
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   424
You may also want to specify different can interface and define some
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   425
CAN ports. Another example using Peak{\textquotesingle}s dual PCMCIA
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   426
(configure and install with --can=peak) :
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   427
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   428
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   429
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   430
	TestMasterSlave -l libcanfestival_can_peak.so -s 40 -m 41
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   431
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   432
517
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   433
If the LSS services are enabled the sample provided in /example/TestMasterSlaveLSS will be also installed. It behaves the same as TestMasterSlave except that there are 2 slave nodes without a valid nodeID so the the initializations is done via  the LSS services. If FastScan optional service is enabled the example will use it. 
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   434
003679edc437 FastScan review
groke6
parents: 464
diff changeset
   435
\subsubsection{Kernel space}
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   436
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   437
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   438
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   439
	example/kerneltest
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   440
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   441
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   442
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   443
It's based on TestMasterSlave example
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   444
and has the same functionality. Uses virtual can driver as default
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   445
too. After successful installation you can insert the module by typing:
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   446
modprobe canf\_ktest Module control is done by simple console 'canf\_ktest\_console'
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   447
which is used to start/stop sending data.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   448
391
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 284
diff changeset
   449
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   450
\section{Windows Targets}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   451
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   452
CanFestival can be compiled and run on Windows platform. It is possible
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   453
to use both Cygwin and win32 native runtime environment.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   454
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   455
\subsection{Object Dictionary Editor GUI installation.}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   456
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   457
Please refer to \hyperlink{a821UsingDictionaryEditorGUIoutline}{8.2.1)Using
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   458
Dictionary Editor GUI}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   459
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   460
\subsection{CYGWIN}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   461
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   462
\subsubsection{Requirements}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   463
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   464
Cygwin have to be installed with those packages :
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   465
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   466
\begin{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   467
\item gcc 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   468
\item unzip 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   469
\item wget 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   470
\item make 
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   471
\end{enumerate}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   472
Currently, the only supported CAN devices are PeakSystems ones, with
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   473
PcanLight driver and library.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   474
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   475
Please download driver at \href{http://www.peak-system.com/themen/download_gb.html}{http://www.peak
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   476
-system.com/themen/download\_gb.html} \ and follow instructions
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   477
in order to install driver on your system.
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   478
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   479
Install Cygwin as required, and the driver for your Peak CAN device.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   480
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   481
Open a Cygwin terminal, and follow those instructions:
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   482
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   483
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   484
\subsubsection{Cygwin configuration and compilation}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   485
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   486
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   487
\paragraph{A single node with PcanLight and Peak CAN -USB adapter}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   488
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   489
Download the PCAN-Light Zip file for your HW ( URL from download
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   490
page ):
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   491
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   492
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   493
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   494
	wget http://www.peak -system.com/files/usb.zip
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   495
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   496
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   497
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   498
Extract its content into your cygwin home (it will create a {}``Disk''
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   499
directory):
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   500
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   501
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   502
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   503
	unzip usb.zip
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   504
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   505
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   506
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   507
Configure CanFestival3 providing path to the desired PcanLight implementation:
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   508
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   509
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   510
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   511
	cd CanFestival -3
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   512
	export PCAN_INCLUDE=~/Disk/PCAN-Light/Api/
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   513
	export PCAN_HEADER=Pcan_usb.h
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   514
	export PCAN_LIB=~/Disk/PCAN-Light/Lib/Visual\ C++/Pcan_usb.lib
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   515
	./configure --can=peak_win32
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   516
	make
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   517
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   518
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   519
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   520
In order to test, you have to use another CanFestival node, connect
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   521
with a CAN cable.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   522
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   523
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   524
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   525
	cp ~/Disk/PCAN-Light/Pcan_usb.dll .
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   526
	./examples/TestMasterSlave/TestMasterSlave \
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   527
	-l drivers/can\_peak\_win32/cygcan\_peak\_win32.dll \
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   528
	-S 500K -M none
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   529
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   530
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   531
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   532
Then, on the other node :
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   533
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   534
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   535
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   536
	./TestMasterSlave -l my_driver.so -S none -M 500K
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   537
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   538
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   539
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   540
Now messages are being exchanged between master and slave node.
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   541
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   542
\paragraph{Two nodes with PcanLight and Peak dual PCMCIA -CAN adapter}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   543
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   544
Download the PCAN-Light Zip file for your HW ( URL from download
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   545
page ):
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   546
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   547
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   548
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   549
	wget http://www.peak-system.com/files/pccard.zip
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   550
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   551
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   552
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   553
Extract its content into your cygwin home (it will create a {}``Disk''
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   554
directory):
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   555
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   556
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   557
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   558
	unzip pccard.zip
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   559
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   560
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   561
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   562
The configure CanFestival3 providing path to the desired PcanLight
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   563
implementation:
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   564
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   565
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   566
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   567
	export PCAN_INCLUDE=~/Disk/PCAN-Light/Api/
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   568
	export PCAN_HEADER=Pcan_pcc.h
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   569
	export PCAN_LIB=~/Disk/PCAN-Light/Lib/Visual\ C++/Pcan_pcc.lib
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   570
	export PCAN2_HEADER=Pcan_2pcc.h
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   571
	export PCAN2_LIB=~/Disk/PCAN-Light/Lib/Visual\ C++/Pcan_2pcc.lib
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   572
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   573
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   574
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   575
In order to test, just connect together both CAN ports of the PCMCIA
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   576
card. Don{\textquotesingle}t forget 120ohms terminator.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   577
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   578
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   579
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   580
	cp ~/Disk/PCAN-Light/Pcan_pcc.dll .
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   581
	cp ~/Disk/PCAN-Light/Pcan_2pcc.dll .
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   582
	./examples/TestMasterSlave/TestMasterSlave \
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   583
	   -l drivers/can_peak_win32/cygcan_peak_win32.dll
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   584
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   585
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   586
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   587
Messages are then exchanged between master and slave node, both inside
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   588
TestMasterSlave{\textquotesingle}s process.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   589
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   590
\subsection{Visual Studio C++}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   591
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   592
\subsubsection{Requirements}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   593
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   594
Minimal Cygwin installation is required at configuration time in order
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   595
to create specific header files (config.h and cancfg.h). Once this
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   596
files created, cygwin is not necessary any more.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   597
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   598
Project and solution files have been created and tested with Visual
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   599
Studio Express 2005. Be sure to have installed Microsoft Platform
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   600
SDK, as recommended at the end of Visual Studio installation.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   601
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   602
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   603
\subsubsection{Configuration with cygwin}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   604
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   605
Follow instructions given at \hyperlink{Cygwin configuration and compilation}{Cygwin
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   606
configuration and compilation}, but do neither call make nor do tests,
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   607
just do configuration steps. This will create headers files accordingly
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   608
to your configuration parameters, and the desired CAN hardware.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   609
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   610
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   611
\subsubsection{Compilation with Visual Studio}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   612
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   613
You can either load independent {}``{*}.vcproj'' project files
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   614
along your own projects in your own solution or load the provided
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   615
{}``CanFestival -3.vc8.sln'' solution files directly.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   616
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   617
Build CanFestival -3 project first.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   618
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   619
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   620
\paragraph{PcanLight and the can\_peak\_win32 project.}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   621
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   622
Chosen Pcan\_xxx.lib and eventually Pcan\_2xxx.lib files must be added
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   623
to can\_peak\_win32 \ \ project before build of the DLL.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   624
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   625
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   626
\subsubsection{Testing}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   627
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   628
Copy eventually needed dlls (ie : Pcan\_Nxxx.lib) into Release or
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   629
Debug directory, and run the test program:
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   630
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   631
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   632
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   633
	TestMasterSlave.exe -l can_peak_win32.dll
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   634
\end{verbatim}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   635
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   636
282
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   637
\subsection{MSYS}
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   638
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   639
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   640
\subsubsection{Requirements}
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   641
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   642
Download from : http://sourceforge.net/project/showfiles.php?group\_id=2435
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   643
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   644
\begin{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   645
\item MSYS-1.0.10.exe 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   646
\item MinGW-5.1.3.exe 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   647
\item mingwPORT (which contains wget-1.9.1) 
282
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   648
\end{enumerate}
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   649
Please download driver at http://www.peak-system.com/themen/download\_gb.html
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   650
and follow instructions in order to install driver on your system.
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   651
Install MSYS and MingW as required, and the driver for your Peak CAN
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   652
device. Open a MSYS terminal, and follow those instructions:\\
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   653
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   654
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   655
\begin{itemize}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   656
\item extract wget-1.9.1-mingwPORT.tar.bz2 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   657
\item copy wget.exe in c:\textbackslash{} msys\textbackslash{} 1.0\textbackslash{}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   658
bin\textbackslash{} 
282
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   659
\item start MSYS and check the file /etc/fstab contain the line c:/MinGW
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   660
/mingw 
282
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   661
\end{itemize}
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   662
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   663
\subsubsection{MSYS configuration and compilation}
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   664
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   665
Instructions for compilation are nearly the same as CYGWIN part.
282
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   666
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   667
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   668
\paragraph{A single node with PcanLight and Peak CAN-USB adapter}
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   669
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   670
Download the PCAN-Light Zip file for your HW ( URL from download page
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   671
):
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   672
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   673
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   674
	wget http://www.peak-system.com/files/usb.zip
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   675
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   676
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   677
Extract its content into your MSYS's home (it will create a \char`\"{}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   678
Disk\char`\"{} directory):
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   679
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   680
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   681
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   682
	unzip usb.zip
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   683
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   684
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   685
282
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   686
Configure CanFestival3 providing path to the desired PcanLight implementation:
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   687
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   688
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   689
	cd CanFestival-3
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   690
	export PCAN_INCLUDE=~/Disk/PCAN-Light/Api/
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   691
	export PCAN_HEADER=Pcan_usb.h
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   692
	export PCAN_LIB=~/Disk/PCAN-Light/Lib/Visual\ C++/Pcan_usb.lib
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   693
	./configure --can=peak_win32
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   694
	make
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   695
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   696
282
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   697
In order to test, you have to use another CanFestival node, connect
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   698
with a CAN cable.
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   699
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   700
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   701
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   702
	cp ~/Disk/PCAN-Light/Pcan_usb.dll .
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   703
	./examples/TestMasterSlave/TestMasterSlave \
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   704
	  -l drivers/can_peak_win32/cygcan_peak_win32.dll \
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   705
	  -S 500K -M none
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   706
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   707
282
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   708
Then, on the other node :
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   709
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   710
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   711
	./TestMasterSlave -l my_driver.so -S none -M 500K -m 0
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   712
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   713
Now messages are being exchanged between master and slave node.
282
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   714
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   715
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   716
\paragraph{Two nodes with PcanLight and Peak dual PCMCIA-CAN adapter}
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   717
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   718
Download the PCAN-Light Zip file for your HW ( URL from download page
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   719
):
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   720
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   721
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   722
	wget http://www.peak-system.com/files/pccard.zip
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   723
\end{verbatim}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   724
Extract its content into your MSYS's home (it will create a \char`\"{}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   725
Disk\char`\"{} directory):
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   726
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   727
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   728
	unzip pccard.zip
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   729
\end{verbatim}
282
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   730
The configure CanFestival3 providing path to the desired PcanLight
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   731
implementation:
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   732
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   733
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   734
	export PCAN_INCLUDE=~/Disk/PCAN-Light/Api/
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   735
	export PCAN_HEADER=Pcan_pcc.h}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   736
	export PCAN_LIB=~/Disk/PCAN-Light/Lib/Visual\ C++/Pcan_pcc.lib
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   737
	export PCAN2_HEADER=Pcan_2pcc.h
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   738
	export PCAN2_LIB=~/Disk/PCAN-Light/Lib/Visual\ C++/Pcan_2pcc.lib
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   739
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   740
282
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   741
In order to test, just connect together both CAN ports of the PCMCIA
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   742
card. Don't forget 120ohms terminator.
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   743
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   744
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   745
	cp~/Disk/PCAN-Light/Pcan_pcc.dll ~.
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   746
	cp ~/Disk/PCAN-Light/Pcan_2pcc.dll ~.
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   747
	./examples/TestMasterSlave/TestMasterSlave \
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   748
		-l drivers/can\_peak\_win32/cygcan\_peak\_win32.dll -m 0 -s 1
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   749
\end{verbatim}
282
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   750
Messages are then exchanged between master and slave node, both inside
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   751
TestMasterSlave's process.
6afe145df950 Updated manual for msys/mingw build
greg
parents: 249
diff changeset
   752
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   753
\section{Motorola HCS12}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   754
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   755
The examples have been tested on a MC9S12DG255 mounted on a Elektronikladen
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   756
HCS12 T -board.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   757
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   758
Beware that there are few differences in the MSCAN module of the 68HC12
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   759
and HCS12 microcontroller. For a HC12, you must adapt the driver that
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   760
we provide for \ the HCS12.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   761
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   762
For the difference MSCAN HC12/HCS12, see the Motorola application
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   763
note AN2011/D.
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   764
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   765
Configure switch:
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   766
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   767
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   768
	--target=hcs12
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   769
\end{verbatim}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   770
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   771
To do a \canopen node running on a microncontroller Motorola MC9S12DP256,
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   772
you need :
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   773
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   774
\begin{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   775
\item The compiler GNU gcc for HC11, HC12, HCS12 : m6811 -elf. \\
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   776
 Download the \textbf{release 3.1} at : \href{http://m68hc11.serveftp.org/m68hc11_pkg_rpm.php}{http://m68hc11.serveftp.org/m68hc11\_pkg\_rpm.php} 
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   777
\item A board with this chip. We are using the T -board from Electronikladen. 
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   778
\item At least about 40 kBytes of program memory. 
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   779
\item A tool to flash the memory. (We are using the high cost Lauterbach
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   780
debugger). 
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   781
\end{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   782
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   783
\subsection{Running a HCS12 node}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   784
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   785
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   786
\subsubsection{Compiling Canfestival:}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   787
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   788
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   789
	./configure --target=hcs12
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   790
\end{verbatim}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   791
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   792
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   793
\subsubsection{Compiling and building an example}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   794
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   795
Enter in the folder of an HCS12 example,
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   796
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   797
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   798
	make all
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   799
\end{verbatim}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   800
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   801
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   802
\subsubsection{Flashing the memory :}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   803
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   804
Use your preferred loader ! If you are using a debugger Lauterbach,
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   805
you can load the bash file : trace32\_flash\_programmer.cmm. It loads
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   806
directly the elf file.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   807
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   808
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   809
\subsubsection{Connecting to a serial RS232 console :}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   810
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   811
Connect the portS(TxD0) of the HCS12 to a console configured at 19200
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   812
bauds 8N1, via a Max232 chip to adapt the electrical levels. On Linux,
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   813
you can use minicom. Connecting to a console is useful to read the
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   814
messages, but not required.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   815
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   816
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   817
\subsubsection{Connecting to the CAN network :}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   818
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   819
Connect the port CAN0 (pin PM0, PM1) to the network via a CAN controller.
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   820
On our board, the CAN controller is a PCA82C250 chip.
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   821
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   822
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   823
\subsubsection{starting the node :}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   824
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   825
Press the reset of your HCS12 board.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   826
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   827
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   828
\section{Example and test program:}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   829
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   830
The {}``examples'' directory contains some test program you can
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   831
use as example for your own developments.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   832
560
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   833
\subsection{CANOpenShell}
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   834
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   835
This example provides a node that can execute some user commands through stdin. 
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   836
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   837
With this example you can:
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   838
\begin{enumerate}
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   839
\item scan network (reset all nodes and display node's bootup message)
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   840
\item start / stop /reset a remote node
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   841
\item get informations about a remote node
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   842
\item read / write a specific entry of a remote node
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   843
\end{enumerate}
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   844
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   845
The node can be started as a master node or a slave node. The only difference is 
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   846
that when is started as a master, all nodes on the network are reseted.
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   847
567
8c71fdc46735 update manual
greg
parents: 560
diff changeset
   848
The first command must be the "load" command.
560
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   849
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   850
\begin{verbatim}
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   851
	****************************************************************************
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   852
	*  CANOpenShell                                                            *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   853
	*                                                                          *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   854
  	*   MANDATORY COMMAND (must be the first command)                          *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   855
	*     load#CanLibraryPath,channel,baudrate,nodeid,type (0:slave, 1:master) *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   856
	*                                                                          *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   857
	*   NETWORK: (if nodeid=0x00 : broadcast)                                  *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   858
	*     ssta#nodeid : Start a node                                           *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   859
	*     ssto#nodeid : Stop a node                                            *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   860
	*     srst#nodeid : Reset a node                                           *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   861
	*     scan : Reset all nodes and print message when bootup                 *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   862
	*     wait#seconds : Sleep for n seconds                                   *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   863
	*                                                                          *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   864
	*   SDO: (size in bytes)                                                   *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   865
	*     info#nodeid                                                          *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   866
	*     rsdo#nodeid,index,subindex : read sdo                                *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   867
	*        ex : rsdo#42,1018,01                                              *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   868
	*     wsdo#nodeid,index,subindex,size,data : write sdo                     *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   869
	*        ex : wsdo#42,6200,01,01,FF                                        *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   870
	*                                                                          *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   871
	*   Note: All numbers are hex                                              *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   872
	*                                                                          *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   873
	*     help : Display this menu                                             *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   874
	*     quit : Quit application                                              *
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   875
	****************************************************************************
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   876
\end{verbatim}
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   877
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   878
Minimal launch command :
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   879
\begin{verbatim}
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   880
	./CANOpenShell load#libcanfestival_can_peak_linux.so,32,125K,8,0
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   881
\end{verbatim}
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   882
This command start the node as a slave with nodeid 8 at 125K on channel 32.
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   883
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   884
Advanced launch command :
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   885
\begin{verbatim}
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   886
	./CANOpenShell load#libcanfestival_can_peak_linux.so,32,125K,8,1 \
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   887
	 help \
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   888
	 wait#5 \
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   889
	 wsdo#42,6200,01,01,FF
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   890
\end{verbatim}
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   891
This command starts the node as a master with nodeid 8 at 125K on channel 32, 
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   892
displays help menu, wait 5 seconds for node's NMT bootup, 
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   893
and write FF value at index 6200, subindex 01 to the remote node with id 42.
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   894
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   895
\subsection{TestMasterSlave}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   896
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   897
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   898
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   899
  **************************************************************
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   900
  *  TestMasterSlave                                           *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   901
  *                                                            *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   902
  *  A simple example for PC. It does implement 2 CanOpen      *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   903
  *  nodes in the same process. A master and a slave. Both     *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   904
  *  communicate together, exchanging periodically NMT, SYNC,  *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   905
  *  SDO and PDO. Master configure heartbeat producer time     *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   906
  *  at 1000 ms for slave node-id 0x02 by concise DCF.         *                                  
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   907
  *                                                            *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   908
  *   Usage:                                                   *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   909
  *   ./TestMasterSlave  [OPTIONS]                             *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   910
  *                                                            *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   911
  *   OPTIONS:                                                 *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   912
  *     -l : Can library ["libcanfestival_can_virtual.so"]     *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   913
  *                                                            *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   914
  *    Slave:                                                  *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   915
  *     -s : bus name ["0"]                                    *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   916
  *     -S : 1M,500K,250K,125K,100K,50K,20K,10K,none(disable)  *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   917
  *                                                            *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   918
  *    Master:                                                 *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   919
  *     -m : bus name ["1"]                                    *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   920
  *     -M : 1M,500K,250K,125K,100K,50K,20K,10K,none(disable)  *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   921
  *                                                            *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   922
  **************************************************************
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   923
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   924
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   925
560
0bb927393dd0 Add new example CANOpenShell in manual
greg
parents: 517
diff changeset
   926
Notes aboute use of concise DCF :
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   927
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   928
In this example, Master configure heartbeat producer time
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   929
at 1000 ms for slave node -id 0x02 by concise DCF according DS -302
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   930
profile.
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   931
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   932
Index 0x1F22, sub-index 0x00 of the master OD, correspond
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   933
to the number of entries. This equal to the maximum possible nodeId
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   934
(127). Each sub -index points to the Node -ID of the device, to which
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   935
the configuration belongs.
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   936
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   937
To add more parameters configurations to the slave, the value
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   938
at sub -index 0x02 must be a binary stream (little -endian) following
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   939
this structure :
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   940
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   941
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   942
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   943
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   944
	 (UNS32) nb of entries
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   945
	 (UNS16) index parameter 1
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   946
	 (UNS8) sub -index parameter 1
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   947
	 (UNS32) size data parameter 1
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   948
	 (DOMAIN) data parameter 1
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   949
	 (UNS16) index parameter 2
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   950
	 (UNS8) sub -index parameter 2
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   951
	 (UNS32) size data parameter 2
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   952
	 (DOMAIN) data parameter 2
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   953
	      ....
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   954
	 (UNS16) index parameter n
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   955
	 (UNS8) sub -index parameter n
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   956
	 (UNS32) size data parameter n
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   957
	 (DOMAIN) data parameter n
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   958
	 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   959
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   960
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   961
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   962
So the binary value stream to configure heartbeat producer
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   963
time must be :
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   964
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   965
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   966
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   967
	0100000017100002000000e803
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   968
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   969
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   970
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   971
The slave node is configured just before the Master entering
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   972
in Pre\_operational state.
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   973
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   974
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
   975
\subsection{gene\_SYNC\_HCS12 :}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   976
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   977
This is a simple \canopen node that only send cyclic SYNC message.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   978
It demonstrate implementation on HCS12 based board.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   979
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   980
\bigskip{}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   981
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   982
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   983
391
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 284
diff changeset
   984
\subsection{kerneltest :}
7802a7d5584f Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents: 284
diff changeset
   985
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   986
Example based on TestMasterSlave slightly modified to suit kernel
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   987
space requisites. It will do the same as TestMasterSlave but in kernel
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   988
space sending kernel messages (displayed by dmesg for example). It
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   989
is designed as external kernel module implemented as character device.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   990
There is a shell script called 'insert.sh', which will insert the
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   991
module and create a new device file /dev/canf\_ktest (used to sending
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   992
commands to module). To actual sending commands you can use simple
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   993
console named 'canf\_ktest\_console'. The module is dependent on a
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   994
another separate module 'canfestival.ko' implementing CanOpen stack
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   995
which exports requisite functions. Canfestival.ko module is then dependent
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   996
on CAN card driver module, by default CAN virtual driver will be loaded.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
   997
After installing modules (make install), all dependencies are solved
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   998
automatically by kernel. To run the example type: 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
   999
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1000
	sh run.sh
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1001
\end{verbatim}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1002
It will insert required modules, start console, and after quitting
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1003
console it'll remove modules from kernel.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1004
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1005
\bigskip{}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1006
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1007
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1008
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1009
\subsection{TestMasterMicroMod }
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1010
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1011
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1012
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1013
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1014
  **************************************************************
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1015
  *  TestMasterMicroMod                                        *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1016
  *                                                            *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1017
  *  A simple example for PC.                                  *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1018
  *  A CanOpen master that control a MicroMod module:          *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1019
  *  - setup module TPDO 1 transmit type                       *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1020
  *  - setup module RPDO 1 transmit type                       *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1021
  *  - setup module hearbeatbeat period                        *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1022
  *  - disable others TPDOs                                    *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1023
  *  - set state to operational                                *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1024
  *  - send periodic SYNC                                      *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1025
  *  - send periodic RPDO 1 to Micromod (digital output)       *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1026
  *  - listen Micromod's TPDO 1 (digital input)                *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1027
  *  - Mapping RPDO 1 bit per bit (digital input)              *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1028
  *                                                            *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1029
  *   Usage:                                                   *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1030
  *   ./TestMasterMicroMod  [OPTIONS]                          *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1031
  *                                                            *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1032
  *   OPTIONS:                                                 *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1033
  *     -l : Can library ["libcanfestival_can_virtual.so"]     *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1034
  *                                                            *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1035
  *    Slave:                                                  *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1036
  *     -i : Slave Node id format [0x01 , 0x7F]                *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1037
  *                                                            *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1038
  *    Master:                                                 *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1039
  *     -m : bus name ["1"]                                    *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1040
  *     -M : 1M,500K,250K,125K,100K,50K,20K,10K                *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1041
  *                                                            *
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1042
  **************************************************************
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1043
\end{verbatim}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1044
517
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1045
\subsection{TestMasterSlaveLSS}
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1046
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1047
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1048
\begin{verbatim}
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1049
**************************************************************
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1050
*  TestMasterSlaveLSS                                        *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1051
*                                                            *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1052
*  A LSS example for PC. It does implement 3 CanOpen         *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1053
*  nodes in the same process. A master and 2 slaves. All     *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1054
*  communicate together, exchanging periodically NMT, SYNC,  *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1055
*  SDO and PDO. Master configure heartbeat producer time     *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1056
*  at 1000 ms for the slaves by concise DCF.                 *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1057
*                                                            *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1058
*   Usage:                                                   *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1059
*   ./TestMasterSlaveLSS  [OPTIONS]                          *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1060
*                                                            *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1061
*   OPTIONS:                                                 *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1062
*     -l : Can library ["libcanfestival_can_virtual.so"]     *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1063
*                                                            *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1064
*    SlaveA:                                                 *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1065
*     -a : bus name ["0"]                                    *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1066
*     -A : 1M,500K,250K,125K,100K,50K,20K,10K,none(disable)  *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1067
*                                                            *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1068
*    SlaveB:                                                 *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1069
*     -b : bus name ["1"]                                    *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1070
*     -B : 1M,500K,250K,125K,100K,50K,20K,10K,none(disable)  *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1071
*                                                            *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1072
*    Master:                                                 *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1073
*     -m : bus name ["2"]                                    *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1074
*     -M : 1M,500K,250K,125K,100K,50K,20K,10K,none(disable)  *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1075
*                                                            *
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1076
**************************************************************
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1077
\end{verbatim}
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1078
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1079
The function used to request LSS services is \textit{configNetworkNode}. It works similar to \textit{writeNetworkDict} and its model is the following:
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1080
\begin{verbatim}
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1081
UNS8 configNetworkNode (CO_Data* d, UNS8 command, void *dat1, void* dat2, 
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1082
LSSCallback_t Callback)
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1083
\end{verbatim}
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1084
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1085
\subsection{FastScan}
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1086
FastScan is a special LSS service that allow the dynamically identification of the slave nodes even if they do not have a valid nodeID. This identification is based on the LSS address, composed by vendor ID, product code, revision number and serial number (refer to the DS305 for more information). The LSS address can be partially known or fully unknown. To represent this fact in Canfestival, we use the structure \textit{lss\_fs\_transfer\_t}. The parameter \textit{FS\_LSS\_ID} is an array of four elements which represents the four elements of the LSS address. The other parameter, \textit{FS\_BitChecked}, is also an array and it represents how many bits of each LSS address element are UNKNOWN. The next example is taken from \textit{TestMasterSlaveLSS}, where only the last two digits (8 bits) of vendor ID and product code are unknown and revision number and serial number are totally unknown. 
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1087
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1088
\begin{verbatim}
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1089
lss_fs_transfer_t lss_fs;
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1090
/* The VendorID and ProductCode are partialy known, */
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1091
/* except the last two digits (8 bits). */
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1092
lss_fs.FS_LSS_ID[0]=Vendor_ID;
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1093
lss_fs.FS_BitChecked[0]=8;
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1094
lss_fs.FS_LSS_ID[1]=Product_Code;
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1095
lss_fs.FS_BitChecked[1]=8;
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1096
/* serialNumber and RevisionNumber are unknown, */
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1097
/* i.e. the 8 digits (32bits) are unknown. */
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1098
lss_fs.FS_BitChecked[2]=32;
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1099
lss_fs.FS_BitChecked[3]=32;
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1100
res=configNetworkNode(&d,LSS_IDENT_FASTSCAN,&lss_fs,0,CheckLSSAndContinue);
003679edc437 FastScan review
groke6
parents: 464
diff changeset
  1101
\end{verbatim}
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1102
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1103
\section{Developing a new node}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1104
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1105
Using provided examples as a base for your new node is generally a
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1106
good idea. You can also use the provided {*}.od files as a base for
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1107
your node object dictionary.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1108
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1109
Creating a new \canopen node implies to define the Object Dictionary
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1110
of this node. For that, developer has to provide a C file. This C
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1111
file contains the definition of all dictionary entries, and some kind
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1112
of index table that helps the stack to access some entries directly.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1113
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1114
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1115
\subsection{Using Dictionary Editor GUI}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1116
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1117
The Object Dictionary Editor is a WxPython based GUI that is used
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1118
to create the C file needed to create a new \canopen node.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1119
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1120
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1121
\subsubsection{Installation and usage on Linux}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1122
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1123
You first have to download and install Gnosis XML modules. This is
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1124
automated by a Makefile rule.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1125
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1126
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1127
	cd objdictgen 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1128
	make
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1129
\end{verbatim}
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1130
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1131
Now start the editor.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1132
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1133
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1134
	python objdictedit.py [od files...]
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1135
\end{verbatim}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1136
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1137
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1138
\subsubsection{Installation and usage on Windows}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1139
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1140
Install Python (at least version 2.4) and wxPython (at least version
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1141
2.6.3.2).
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1142
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1143
Cygwin users can install Gnosis XML utils the same as Linux use. Just
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1144
call make.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1145
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1146
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1147
	cd objdictgen
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1148
	make
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1149
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1150
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1151
Others will have to download and install Gnosis XML by hand :
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1152
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1153
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1154
	Gnosis Utils:
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1155
	http://freshmeat.net/projects/gnosisxml/
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1156
	http://www.gnosis.cx/download/
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1157
	Get latest version.
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1158
\end{verbatim}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1159
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1160
Download CanFestival archive and uncompress it. Use windows file explorer
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1161
to go into CanFestival3\textbackslash{}objdicgten, and double -click
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1162
on objdictedit.py.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1163
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1164
\subsubsection{About}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1165
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1166
The Object Dictionary editor GUI is a python application that use
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1167
the Model-View-Controller design pattern. It depends on WxPython to
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1168
display view on any supported platform.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1169
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1170
\begin{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1171
\includegraphics[width=7cm]{Pictures/10000201000001FC000001E5D65E8766} 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1172
\par\end{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1173
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1174
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1175
\subsubsection{Main view}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1176
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1177
Top list let you choose dictionary section, bottom left list is the
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1178
selected index in that dictionary, and bottom right list are edited
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1179
sub -indexes.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1180
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1181
\begin{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1182
\includegraphics[width=12cm]{Pictures/10000201000003E7000001C7B0296577} 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1183
\par\end{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1184
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1185
\begin{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1186
\includegraphics[width=3cm]{Pictures/10000000000000B6000000DF1EDD1E73} 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1187
\par\end{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1188
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1189
\begin{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1190
\includegraphics[width=3cm]{Pictures/10000000000000AC000000C9C3F53FA6} 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1191
\par\end{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1192
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1193
\begin{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1194
\includegraphics[width=3cm]{Pictures/100000000000006D000000A31EC8CB54} 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1195
\par\end{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1196
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1197
\begin{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1198
\includegraphics[width=3cm]{Pictures/10000000000000AA0000006014F74635} 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1199
\par\end{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1200
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1201
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1202
\subsubsection{New node}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1203
440
dfcec7403169 Fixes in manual ( removed Node ID setting in objdiectedit screenshots)
etisserant
parents: 394
diff changeset
  1204
Edit your node name and type. Choose your inherited specific profile.
dfcec7403169 Fixes in manual ( removed Node ID setting in objdiectedit screenshots)
etisserant
parents: 394
diff changeset
  1205
dfcec7403169 Fixes in manual ( removed Node ID setting in objdiectedit screenshots)
etisserant
parents: 394
diff changeset
  1206
\begin{center}
dfcec7403169 Fixes in manual ( removed Node ID setting in objdiectedit screenshots)
etisserant
parents: 394
diff changeset
  1207
\includegraphics[width=11cm]{Pictures/new_node} 
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1208
\par\end{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1209
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1210
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1211
\subsubsection{Node info}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1212
440
dfcec7403169 Fixes in manual ( removed Node ID setting in objdiectedit screenshots)
etisserant
parents: 394
diff changeset
  1213
Edit your node name and type.
dfcec7403169 Fixes in manual ( removed Node ID setting in objdiectedit screenshots)
etisserant
parents: 394
diff changeset
  1214
dfcec7403169 Fixes in manual ( removed Node ID setting in objdiectedit screenshots)
etisserant
parents: 394
diff changeset
  1215
\begin{center}
dfcec7403169 Fixes in manual ( removed Node ID setting in objdiectedit screenshots)
etisserant
parents: 394
diff changeset
  1216
\includegraphics[width=7cm]{Pictures/node_info} 
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1217
\par\end{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1218
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1219
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1220
\subsubsection{Profile editor}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1221
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1222
Chose the used profile to edit.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1223
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1224
\begin{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1225
\includegraphics[width=4cm]{Pictures/10000000000000AB000000C88F594413} 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1226
\par\end{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1227
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1228
Pick up optional chosen profile entries.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1229
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1230
\begin{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1231
\includegraphics[width=11cm]{Pictures/10000201000002DE000001D82D89C224} 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1232
\par\end{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1233
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1234
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1235
\subsubsection{User types}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1236
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1237
Use User Types to implement value boundaries, and string length
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1238
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1239
\begin{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1240
\includegraphics[width=11cm]{Pictures/10000201000001C40000010766961D7F} 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1241
\par\end{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1242
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1243
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1244
\subsubsection{Mapped variable}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1245
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1246
Add your own specific dictionary entries and associated mapped variables.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1247
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1248
\begin{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1249
\includegraphics[width=11cm]{Pictures/10000201000001C4000000DD129D4661} 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1250
\par\end{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1251
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1252
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1253
\subsubsection{Integrated help}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1254
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1255
Using F1 key, you can get context sensitive help.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1256
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1257
\begin{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1258
\includegraphics[width=12cm]{Pictures/10000201000002F30000020B23ED7F67} 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1259
\par\end{center}
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1260
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1261
In order to do that, official 301\_v04000201.pdf file must be placed
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1262
into doc/ directory, and xpdf must be present on your system.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1263
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1264
F2 key open HTML CanFestival help.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1265
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1266
\begin{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1267
\includegraphics[width=12cm]{Pictures/10000201000003440000025ACC3FD2F1} 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1268
\par\end{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1269
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1270
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1271
\subsection{Generating the object Dictionary}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1272
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1273
Once object dictionary has been edited and saved, you have to generate
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1274
object dictionary C code for your CanFestival node.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1275
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1276
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1277
\subsubsection{With GUI}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1278
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1279
Menu entry {}``File/Build Dictionary''.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1280
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1281
\begin{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1282
\includegraphics[width=4cm]{Pictures/10000201000000B7000000C66AF89CD5} 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1283
\par\end{center}
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1284
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1285
Choose C file to create or overwrite. Header file will be also created
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1286
with the same prefix as C file.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1287
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1288
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1289
\subsubsection{With command line}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1290
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1291
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1292
	Usage of objdictgen.py :
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1293
	python objdictgen.py XMLFilePath CfilePath
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1294
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1295
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1296
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1297
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1298
\section{FAQ}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1299
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1300
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1301
\subsection{General}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1302
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1303
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1304
\subsubsection{Does the code compiles on Windows ?}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1305
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1306
Yes, with both Cygwin and Visual Studio C++. 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1307
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1308
Because \canopen layer is coded with C, put a compilation option
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1309
/TC or /TP if you plan to mix C++ files. See the MSDN documentation
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1310
about that.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1311
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1312
448
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
  1313
\subsubsection{How to fit the library to an other microcontr�ler ?}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1314
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1315
First, be sure that you have at least 40K bytes of program memory,
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1316
and about 2k of RAM.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1317
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1318
You have to create target specific interface to HW resources. Take
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1319
model on bundled interfaces provided in drivers/ and create your own
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1320
interface. You also have to update Makefile.in files for target specific
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1321
cflags and options. Choose {--}target= configure switch to compile
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1322
your specific interface.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1323
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1324
You are welcome to contribute -back your own interfaces! Other Canfestival
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1325
users will use it and provide feedback, tests and enhancements.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1326
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1327
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1328
\subsubsection{Is CanFestival3 conform to DS301 v.4.02 ?}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1329
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1330
Thanks to Philippe Foureys (IUT of Valence), a slave node have been
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1331
tested with the National Instrument \canopen Conformance Test. It
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1332
passed the test with success.
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1333
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1334
Some very small unconformity have been found in very unusual situations,
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1335
for example in the SDO code response to wrong messages.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1336
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1337
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1338
\subsection{LINUX}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1339
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1340
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1341
\subsubsection{How to use a Peaksystem CAN board ?}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1342
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1343
Just install peak driver and then compile and install Canfestival.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1344
Peak driver is detected at compile time.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1345
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1346
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1347
\subsubsection{How to use an unsupported CAN board ?}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1348
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1349
You have to install the specific driver on your system, with necessary
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1350
libs and headers.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1351
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1352
Use can\_peak.c/h or can\_virtual.c/h as an example, and adapt it
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1353
to your driver API.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1354
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1355
Execute configure script and choose --can=mydriver
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1356
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1357
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1358
\subsection{Win32}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1359
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1360
Compatibility:
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1361
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1362
\begin{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1363
\item Code was compiled MS VisualStudio 2003.NET and VisualStudio 2005.NET
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1364
for WindowsXP \ with ANSI and UNICODE configurations and for WindowsCE
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1365
5.0. 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1366
\item Some preliminary testing was done, but not enough to be used in mission
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1367
critical projects. 
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1368
\end{enumerate}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1369
Additional Features:
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1370
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1371
\begin{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1372
\item Non -integral integers support implementation UNS24, UNS40, UNS48
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1373
etc. 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1374
\item When enable debug output with DEBUG\_WAR\_CONSOLE\_ON or DEBUG\_ERR\_CONSOLE\_ON,
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1375
you can navigate in CanFestival source code by double clicking at
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1376
diagnostic lines in VisualStudio.NET 200X Debug Output Window. 
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1377
\end{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1378
Custom size integral types such as INTEGER24, UNS40, INTEGER56 etc.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1379
have been defined as 64 bits integers. You will need to replace sizeof(TYPE)
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1380
operators to sizeof\_TYPE definitions in generated code, i.e. replace
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1381
sizeof(UNS40) with sizeof\_UNS40.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1382
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1383
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1384
\subsection{HCS12}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1385
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1386
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1387
\subsubsection{Which board are you using ?}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1388
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1389
A T -board from elektronikladen with a MC9S12DP256 or MC9S12DG256.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1390
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1391
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1392
\subsubsection{Does the code compile with an other compiler than GNU gcc ?}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1394
It is known to work with Metrowerks CodeWarrior. Here are some tips
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1395
from Philippe Foureys. :
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1396
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1397
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1398
\paragraph{Interrupt functions}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1399
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1400
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1401
\subparagraph{Code for GCC:
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1402
}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1403
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1404
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1405
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1406
	// prototype
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1407
	void __attribute__((interrupt))timer3Hdl(void):
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1408
	// function
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1409
	void __attribute__((interrupt))timer3Hdl(void){...}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1410
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1411
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1412
	
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1413
\subparagraph{Code for CodeWarrior
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1414
}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1415
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1416
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1417
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1418
	// protoype
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1419
	void interrupt timer3Hdl(void);
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1420
	// function
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1421
	pragma CODE_SEG__NEAR_SEG_NON_BANKED
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1422
	void interrupt timer3Hdl(void)
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1423
	{...}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1424
	pragma CODE_SEG_DEFAULT\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1425
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1426
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1427
\paragraph{Interrupt lock, unlock
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1428
}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1429
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1430
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1431
\subparagraph{Code for GCC
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1432
}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1433
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1434
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1435
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1436
 void unlock (void)
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1437
 {
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1438
   __asm__ __volatile__("cli");
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1439
 }
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1440
 void lock (void)
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1441
 {
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1442
   unsigned short mask;
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1443
   __asm__ __volatile__("tpa\n\tsei":"=d"(mask));
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1444
 }
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1445
\end{verbatim}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1446
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1447
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1448
\subparagraph{Code for CodeWarrior}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1449
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1450
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1451
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1452
void unlock (void)
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1453
	{
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1454
	  __asm("cli");
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1455
	}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1456
	void lock (void)
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1457
	{
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1458
	  unsigned short mask;
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1459
	  __asm
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1460
	 {
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1461
	  tpa:tsei:"=d"(mask);
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1462
	 }
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1463
	}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1464
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1465
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1466
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1467
\paragraph{Initialize function}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1468
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1469
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1470
\subparagraph{Code for GCC}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1471
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1472
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1473
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1474
void initCanHCS12 (void)
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1475
{  
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1476
  //Init the HCS12 microcontroler for CanOpen 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1477
  initHCS12();
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1478
   // Init the HCS12  CAN driver
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1479
  const canBusInit bi0 = {
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1480
    0,    /* no low power                 */ 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1481
    0,    /* no time stamp                */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1482
    1,    /* enable MSCAN                 */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1483
    0,    /* clock source : oscillator (In fact, it is not used)   */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1484
    0,    /* no loop back                 */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1485
    0,    /* no listen only               */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1486
    0,    /* no low pass filter for wk up */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1487
  CAN_Baudrates[CAN_BAUDRATE_250K],
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1488
    {
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1489
      0x00,    /* Filter on 16 bits.
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1490
                  See Motorola Block Guide V02.14 fig 4-3 */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1491
      0x00, 0xFF, /* filter 0 hight accept all msg      */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1492
      0x00, 0xFF, /* filter 0 low accept all msg        */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1493
      0x00, 0xFF, /* filter 1 hight filter all of  msg  */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1494
      0x00, 0xFF, /* filter 1 low filter all of  msg    */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1495
      0x00, 0xFF, /* filter 2 hight filter most of  msg */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1496
      0x00, 0xFF, /* filter 2 low filter most of  msg   */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1497
      0x00, 0xFF, /* filter 3 hight filter most of  msg */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1498
      0x00, 0xFF, /* filter 3 low filter most of  msg   */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1499
    }
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1500
};
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1501
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1502
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1503
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1504
\subparagraph{Code for CodeWarrior
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1505
}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1506
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1507
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1508
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1509
void initCanHCS12 (void)
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1510
{  
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1511
  //Init the HCS12 microcontroler for CanOpen 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1512
  initHCS12();
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1513
   // Init the HCS12  CAN driver
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1514
  const canBusInit bi0 = {
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1515
    0,    /* no low power                 */ 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1516
    0,    /* no time stamp                */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1517
    1,    /* enable MSCAN                 */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1518
    0,    /* clock source : oscillator (In fact, it is not used)   */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1519
    0,    /* no loop back                 */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1520
    0,    /* no listen only               */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1521
    0,    /* no low pass filter for wk up */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1522
    {
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1523
     1, /* clksrc */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1524
     3, /* brp    */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1525
     0, /* sjw    */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1526
     0, /* samp   */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1527
     1, /* tseg2  */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1528
     12,/* tseg1  */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1529
    },
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1530
    {
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1531
      0x00,    /* Filter on 16 bits.
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1532
                 See Motorola Block Guide V02.14 fig 4-3 */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1533
      0x00, 0xFF, /* filter 0 hight accept all msg      */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1534
      0x00, 0xFF, /* filter 0 low accept all msg        */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1535
      0x00, 0xFF, /* filter 1 hight filter all of  msg  */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1536
      0x00, 0xFF, /* filter 1 low filter all of  msg    */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1537
      0x00, 0xFF, /* filter 2 hight filter most of  msg */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1538
      0x00, 0xFF, /* filter 2 low filter most of  msg   */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1539
      0x00, 0xFF, /* filter 3 hight filter most of  msg */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1540
      0x00, 0xFF, /* filter 3 low filter most of  msg   */
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1541
    }
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1542
};
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1543
\end{verbatim}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1544
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1545
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1546
\subsubsection{Does the code works in banked memory ?}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1547
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1548
No. Today it seems that the port of gcc is bogged for using the banked
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1549
memory. So, unfortunately, we are limited to 48 Kbytes of memory code.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1550
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1551
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1552
\subsubsection{What GCC version are you using ?}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1553
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1554
We are using the stable RPM release 2.2 :
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1555
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1556
\begin{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1557
\item GNU Gcc 3.0.4. Build 20030501 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1558
\item Newlib 1.10.0 Build 20030421 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1559
\item GNU Binutils 2.12.1 Build 20030427 
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1560
\end{enumerate}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1561
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1562
\section{Documentation resources}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1563
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1564
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1565
\subsection{CIA : Can in Automation }
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1566
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1567
\href{http://www.can-cia.de/}{http://www.can -cia.de}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1568
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1569
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1570
\subsection{Resources and training in \canopen 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1571
}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1572
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1573
\href{http://www.esacademy.com/}{http://www.esacademy.com}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1574
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1575
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1576
\subsection{Elektronikladen HCS12 T -board }
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1577
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1578
\href{http://www.elektronikladen.de/en_hcs12tb.html}{http://www.elektronikladen.de/en\_hcs12tb.html}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1579
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1580
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1581
\subsection{Gnu gcc compiler for HC12 }
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1582
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1583
\href{http://m68hc11.serveftp.org/m68hc11_port.php}{http://m68hc11.serveftp.org/m68hc11\_port.php}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1584
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1585
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1586
\subsection{Motorola documentation on HC12 }
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1587
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1588
\href{http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MC9S12DP256}{http://www.freescale.com/webapp/sps/site/prod\_summary.jsp?code=MC9S12DP256}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1589
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1590
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1591
\subsection{Lauterbach debugger for HC12 }
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1592
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1593
\href{http://www.lauterbach.com/}{http://www.lauterbach.com}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1594
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1595
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1596
\subsection{Python language }
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1597
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1598
\href{http://www.python.org/}{http://www.python.org}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1599
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1600
\clearpage{}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1601
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1602
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1603
\section{About the project}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1604
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1605
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1606
\subsection{Contributors }
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1607
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1608
\begin{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1609
\includegraphics[width=10cm]{Pictures/1000020100000258000000832C6FFAB4} 
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1610
\par\end{center}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1611
448
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
  1612
Unit� mixte de recherche INRETS -LCPC
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
  1613
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
  1614
sur les Interractions V�hicule -Infrastructure -Conducteur
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
  1615
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
  1616
14, route de la mini�re
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1617
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1618
78000 Versailles
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1619
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1620
FRANCE
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1621
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1622
Tel : +33 1 40 43 29 01
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1623
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1624
\href{http://www.inrets.fr/ur/livic}{http://www.inrets.fr/ur/livic}
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1625
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1626
\textbf{Contributors :} Francis DUPIN
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1627
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1628
Camille BOSSARD
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1629
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1630
Laurent ROMIEUX
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1631
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1632
\bigskip{}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1633
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1634
\textbf{Contributors :} Edouard TISSERANT (Original author)
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1635
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1636
Laurent BESSARD
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1637
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1638
\bigskip{}
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1639
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1640
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1641
Many thanks to the other contributors for their great work:
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1642
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1643
Raphael ZULLIGER
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1644
448
732c33c2d8a7 CAN over Serial link (TTY) interface, with serial hub software. Thanks to James Steward.
etisserant
parents: 440
diff changeset
  1645
David DUMINY (st� A6R)
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1646
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1647
Zakaria BELAMRI
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1648
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1649
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1650
\subsection{Getting support}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1651
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1652
Send your feedback and bug reports to \href{mailto:canfestival-devel@lists.sourceforge.net}{canfestival-devel@lists.sourceforge.net}.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1653
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1654
\subsection{Contributing}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1655
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1656
You are free to contribute your specific interfaces back to the project.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1657
This way, you can hope to get support from CanFestival users community.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1658
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1659
Please send your patch to \href{mailto:canfestival-devel@lists.sourceforge.net}{canfestival
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1660
-devel@lists.sourceforge.net}.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1661
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1662
Feel free to create some new predefined DS -4xx profiles ({*}.prf)
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1663
in objdictgen/config, as much as possible respectful to the official
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1664
specifications.
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1665
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1666
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1667
\subsection{License}
393
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1668
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1669
All the project is licensed with LGPL. This mean you can link CanFestival
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1670
with any code without being obliged to publish it.
05ad3ba0201d Big cleanup in manual. Used Lyx for that.
etisserant
parents: 392
diff changeset
  1671
394
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1672
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1673
\begin{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1674
#This file is part of CanFestival, a library implementing CanOpen Stack. 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1675
# 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1676
#Copyright (C): Edouard TISSERANT, Francis DUPIN and Laurent BESSARD 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1677
# 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1678
#See COPYING file for copyrights details. 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1679
# 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1680
#This library is free software; you can redistribute it and/or 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1681
#modify it under the terms of the GNU Lesser General Public 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1682
#License as published by the Free Software Foundation; either 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1683
#version 2.1 of the License, or (at your option) any later version. 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1684
# 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1685
#This library is distributed in the hope that it will be useful, 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1686
#but WITHOUT ANY WARRANTY; without even the implied warranty of 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1687
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1688
#Lesser General Public License for more details. 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1689
# 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1690
#You should have received a copy of the GNU Lesser General Public 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1691
#License along with this library; if not, write to the Free Software 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1692
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1693
\end{verbatim}
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1694
b8755668c9e2 Many changes in manual.tex. Now nearly human readable.
etisserant
parents: 393
diff changeset
  1695
208
05d95c45b388 Manual convertion -> latex -> pdf
nico
parents:
diff changeset
  1696
\end{document}