├── .gitignore
├── LICENSE
├── README.md
├── examples
├── LIN_master_background
│ └── LIN_master_background.ino
├── LIN_master_blocking
│ └── LIN_master_blocking.ino
├── LIN_master_callback
│ └── LIN_master_callback.ino
└── LIN_master_dual
│ └── LIN_master_dual.ino
├── extras
├── Doxyfile
├── Library_Manager.md
├── Library_Manager.png
├── Multiple_LIN.md
├── Operation_Modes.md
├── README.md
├── background_operation.png
├── blocking_operation.png
├── dual_LIN.png
├── html
│ ├── Library_Manager.png
│ ├── _l_i_n__background_8ino.html
│ ├── _l_i_n__background_8ino.js
│ ├── _l_i_n__background_8ino_source.html
│ ├── _l_i_n__blocking_8ino.html
│ ├── _l_i_n__blocking_8ino.js
│ ├── _l_i_n__blocking_8ino_source.html
│ ├── _l_i_n__callback_8ino.html
│ ├── _l_i_n__callback_8ino.js
│ ├── _l_i_n__callback_8ino_source.html
│ ├── _l_i_n__master0_8cpp.html
│ ├── _l_i_n__master0_8cpp.js
│ ├── _l_i_n__master0_8cpp_source.html
│ ├── _l_i_n__master0_8h.html
│ ├── _l_i_n__master0_8h.js
│ ├── _l_i_n__master0_8h_source.html
│ ├── _l_i_n__master1_8cpp.html
│ ├── _l_i_n__master1_8cpp.js
│ ├── _l_i_n__master1_8cpp_source.html
│ ├── _l_i_n__master1_8h.html
│ ├── _l_i_n__master1_8h.js
│ ├── _l_i_n__master1_8h_source.html
│ ├── _l_i_n__master2_8cpp.html
│ ├── _l_i_n__master2_8cpp.js
│ ├── _l_i_n__master2_8cpp_source.html
│ ├── _l_i_n__master2_8h.html
│ ├── _l_i_n__master2_8h.js
│ ├── _l_i_n__master2_8h_source.html
│ ├── _l_i_n__master3_8cpp.html
│ ├── _l_i_n__master3_8cpp.js
│ ├── _l_i_n__master3_8cpp_source.html
│ ├── _l_i_n__master3_8h.html
│ ├── _l_i_n__master3_8h.js
│ ├── _l_i_n__master3_8h_source.html
│ ├── _l_i_n__master_8cpp.html
│ ├── _l_i_n__master_8cpp_source.html
│ ├── _l_i_n__master_8h.html
│ ├── _l_i_n__master_8h.js
│ ├── _l_i_n__master_8h_source.html
│ ├── _l_i_n_background_8ino-example.html
│ ├── _l_i_n_blocking_8ino-example.html
│ ├── _l_i_n_callback_8ino-example.html
│ ├── _library___manager_8md_source.html
│ ├── _multiple___l_i_n_8md_source.html
│ ├── _operation___modes_8md_source.html
│ ├── _r_e_a_d_m_e_8md_source.html
│ ├── annotated.html
│ ├── annotated_dup.js
│ ├── background_operation.png
│ ├── bc_s.png
│ ├── bdwn.png
│ ├── blocking_operation.png
│ ├── class_l_i_n___master.html
│ ├── class_l_i_n___master.js
│ ├── class_l_i_n___master.png
│ ├── class_l_i_n___master__0.html
│ ├── class_l_i_n___master__0.js
│ ├── class_l_i_n___master__0.png
│ ├── class_l_i_n___master__1.html
│ ├── class_l_i_n___master__1.js
│ ├── class_l_i_n___master__1.png
│ ├── class_l_i_n___master__2.html
│ ├── class_l_i_n___master__2.js
│ ├── class_l_i_n___master__2.png
│ ├── class_l_i_n___master__3.html
│ ├── class_l_i_n___master__3.js
│ ├── class_l_i_n___master__3.png
│ ├── classes.html
│ ├── closed.png
│ ├── dir_68267d1309a1af8e8297ef4c3efbcdba.html
│ ├── dir_a7b87552a5e39c37a5e9fd9a2b0b7bf9.html
│ ├── dir_ace7945da06dee3b64b589cdc6cd0f21.html
│ ├── dir_d28a4824dc47e487b107a5db32ef43c4.html
│ ├── dir_d6971b0f5112b49742efd355f2158b4f.html
│ ├── dir_f046fe7c893808c2b56ff99d8390475d.html
│ ├── doc.png
│ ├── doxygen.css
│ ├── doxygen.png
│ ├── dual_LIN.png
│ ├── dual___l_i_n_8ino.html
│ ├── dual___l_i_n_8ino.js
│ ├── dual___l_i_n_8ino_source.html
│ ├── dual__l_i_n_8ino-example.html
│ ├── dynsections.js
│ ├── examples.html
│ ├── examples.js
│ ├── files.html
│ ├── files.js
│ ├── folderclosed.png
│ ├── folderopen.png
│ ├── functions.html
│ ├── functions_func.html
│ ├── functions_vars.html
│ ├── globals.html
│ ├── globals_defs.html
│ ├── globals_enum.html
│ ├── globals_eval.html
│ ├── globals_func.html
│ ├── globals_type.html
│ ├── globals_vars.html
│ ├── hierarchy.html
│ ├── hierarchy.js
│ ├── index.html
│ ├── jquery.js
│ ├── logo_LIN.png
│ ├── md__library__manager.html
│ ├── md__multiple__l_i_n.html
│ ├── md__operation__modes.html
│ ├── menu.js
│ ├── menudata.js
│ ├── nav_f.png
│ ├── nav_g.png
│ ├── nav_h.png
│ ├── navtree.css
│ ├── navtree.js
│ ├── navtreedata.js
│ ├── navtreeindex0.js
│ ├── open.png
│ ├── pages.html
│ ├── resize.js
│ ├── search
│ │ ├── all_0.html
│ │ ├── all_0.js
│ │ ├── all_1.html
│ │ ├── all_1.js
│ │ ├── all_2.html
│ │ ├── all_2.js
│ │ ├── all_3.html
│ │ ├── all_3.js
│ │ ├── all_4.html
│ │ ├── all_4.js
│ │ ├── all_5.html
│ │ ├── all_5.js
│ │ ├── all_6.html
│ │ ├── all_6.js
│ │ ├── all_7.html
│ │ ├── all_7.js
│ │ ├── all_8.html
│ │ ├── all_8.js
│ │ ├── all_9.html
│ │ ├── all_9.js
│ │ ├── all_a.html
│ │ ├── all_a.js
│ │ ├── all_b.html
│ │ ├── all_b.js
│ │ ├── all_c.html
│ │ ├── all_c.js
│ │ ├── all_d.html
│ │ ├── all_d.js
│ │ ├── classes_0.html
│ │ ├── classes_0.js
│ │ ├── close.png
│ │ ├── defines_0.html
│ │ ├── defines_0.js
│ │ ├── enums_0.html
│ │ ├── enums_0.js
│ │ ├── enumvalues_0.html
│ │ ├── enumvalues_0.js
│ │ ├── files_0.html
│ │ ├── files_0.js
│ │ ├── files_1.html
│ │ ├── files_1.js
│ │ ├── functions_0.html
│ │ ├── functions_0.js
│ │ ├── functions_1.html
│ │ ├── functions_1.js
│ │ ├── functions_2.html
│ │ ├── functions_2.js
│ │ ├── functions_3.html
│ │ ├── functions_3.js
│ │ ├── functions_4.html
│ │ ├── functions_4.js
│ │ ├── functions_5.html
│ │ ├── functions_5.js
│ │ ├── functions_6.html
│ │ ├── functions_6.js
│ │ ├── functions_7.html
│ │ ├── functions_7.js
│ │ ├── functions_8.html
│ │ ├── functions_8.js
│ │ ├── mag_sel.png
│ │ ├── nomatches.html
│ │ ├── pages_0.html
│ │ ├── pages_0.js
│ │ ├── pages_1.html
│ │ ├── pages_1.js
│ │ ├── pages_2.html
│ │ ├── pages_2.js
│ │ ├── search.css
│ │ ├── search.js
│ │ ├── search_l.png
│ │ ├── search_m.png
│ │ ├── search_r.png
│ │ ├── searchdata.js
│ │ ├── typedefs_0.html
│ │ ├── typedefs_0.js
│ │ ├── variables_0.html
│ │ ├── variables_0.js
│ │ ├── variables_1.html
│ │ ├── variables_1.js
│ │ ├── variables_2.html
│ │ ├── variables_2.js
│ │ ├── variables_3.html
│ │ ├── variables_3.js
│ │ ├── variables_4.html
│ │ ├── variables_4.js
│ │ ├── variables_5.html
│ │ ├── variables_5.js
│ │ ├── variables_6.html
│ │ ├── variables_6.js
│ │ ├── variables_7.html
│ │ ├── variables_7.js
│ │ ├── variables_8.html
│ │ ├── variables_8.js
│ │ ├── variables_9.html
│ │ └── variables_9.js
│ ├── splitbar.png
│ ├── sync_off.png
│ ├── sync_on.png
│ ├── tab_a.png
│ ├── tab_b.png
│ ├── tab_h.png
│ ├── tab_s.png
│ └── tabs.css
├── index.html
└── logo_LIN.png
├── keywords.txt
├── library.properties
└── src
├── LIN_master.cpp
├── LIN_master.h
├── LIN_master0.cpp
├── LIN_master0.h
├── LIN_master1.cpp
├── LIN_master1.h
├── LIN_master2.cpp
├── LIN_master2.h
├── LIN_master3.cpp
└── LIN_master3.h
/.gitignore:
--------------------------------------------------------------------------------
1 | # example how to ignore files
2 | *.apk
3 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Georg Icking-Konert
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | LIN Master Node Emulation
2 | =========================
3 |
4 |
5 | ## This library is no longer actively maintained. It is replaced by [LIN_master_portable_Arduino](https://github.com/gicking/LIN_master_portable_Arduino), which adds more boards and support for [SoftwareSerial](https://docs.arduino.cc/learn/built-in-libraries/software-serial/).
6 |
7 |
8 |
9 | This library implements a Local Interconnect Master node emulation. For an explanation of the LIN bus and protocol e.g. see https://en.wikipedia.org/wiki/Local_Interconnect_Network.
10 |
11 | Supported functionality:
12 | - [blocking and non-blocking operation](../../wiki/Operation-Modes)
13 | - [multiple, simultaneous LIN nodes](../../wiki/Multiple-LIN) with independent baudrates and protocol
14 | - optional callback functions for slave response frames
15 |
16 | For AVR and SAM architectures this library depends on the *Task Scheduler* library for background operation, which is available via the [Arduino IDE library manager](../../wiki/Library-Manager) or directly from https://github.com/kcl93/Tasks. ESP32 and ESP8266 use the built-in *Ticker* library.
17 |
18 | Supported Boards (with additional LIN hardware):
19 | - all boards using the Atmel ATMega328 controller, e.g. Arduino Uno and Nano
20 | - all boards using the Atmel ATMega2560 controller, e.g. Arduino Mega
21 | - all boards using the Atmel SAM3X8E controller, e.g. Arduino Due
22 | - ESP32 and ESP8266 boards
23 |
24 | Notes:
25 | - No device specific tricks are used, so all boards supported by the *Task Scheduler* (AVR, SAM) or *Ticker* (ESP32, ESP8266) libraries should work
26 | - The sender state machine relies on reading back its 1-wire echo. If no LIN or K-Line transceiver is used, connect Rx&Tx (only 1 device!)
27 |
28 | Have fun!, Georg
29 |
--------------------------------------------------------------------------------
/examples/LIN_master_blocking/LIN_master_blocking.ino:
--------------------------------------------------------------------------------
1 | /**
2 | \file LIN_blocking.ino
3 | \example LIN_blocking.ino
4 | \brief Simple LIN master node emulation with blocking operation
5 | \details Simple emulation of a LIN master node via Serial1 (+ LIN transceiver) for DAI MRA2 FED1.0 with blocking operation. Status is printed periodically.
6 | \author Georg Icking-Konert
7 |
8 | \note
9 | The sender state machine relies on reading back its 1-wire echo.
10 | If no LIN or K-Line transceiver is used, connect Rx&Tx (only 1 device!)
11 |
12 | \note
13 | As Serial(0) is generally used for USB/console, boards with only 1 Serial interface, e.g. Uno, may not work due to conflict between USB and LIN.
14 | */
15 |
16 | // include LIN master library
17 | #include "LIN_master1.h"
18 |
19 | // pin to demonstrate background operation
20 | #define PIN_TOGGLE 30
21 |
22 | // pause between LIN frames
23 | #define LIN_PAUSE 250
24 |
25 |
26 | void setup(void)
27 | {
28 | // show background operation
29 | pinMode(PIN_TOGGLE, OUTPUT);
30 |
31 | // for user interaction via console
32 | Serial.begin(115200); while(!Serial);
33 |
34 | // initialize LIN master (blocking operation)
35 | LIN_master1.begin(19200, LIN_V2, false);
36 |
37 | } // setup()
38 |
39 |
40 |
41 | void loop(void)
42 | {
43 | static uint32_t lastCall = LIN_PAUSE;
44 | static uint8_t count = 0;
45 | uint8_t Tx[2] = {0,0};
46 | uint8_t Rx[8];
47 |
48 | // toggle pin to show background operation
49 | digitalWrite(PIN_TOGGLE, !digitalRead(PIN_TOGGLE));
50 |
51 | // simple LIN scheduler
52 | if (millis() - lastCall > LIN_PAUSE) {
53 | lastCall = millis();
54 |
55 | // send master request
56 | if (count == 0) {
57 | count++;
58 |
59 | // dummy master request (blocking)
60 | LIN_master1.sendMasterRequest(0x3B, 2, Tx);
61 |
62 | } // count == 0
63 |
64 | // receive slave response
65 | else {
66 | count=0;
67 |
68 | // receive slave response (blocking)
69 | LIN_master1.receiveSlaveResponse(0x1B, 8, Rx);
70 |
71 | // print status and data
72 | Serial.print(millis()); Serial.println("ms");
73 | Serial.print("error: "); Serial.println(LIN_master1.error);
74 | Serial.println("data:");
75 | for (uint8_t i=0; i<8; i++)
76 | {
77 | Serial.print(" "); Serial.print(i); Serial.print("\t0x"); Serial.println(Rx[i], HEX);
78 | }
79 | Serial.println();
80 |
81 | // clear pending error and flag for received data
82 | LIN_master1.error = LIN_SUCCESS;
83 |
84 | } // count == 1
85 |
86 | } // scheduler
87 |
88 | } // loop()
89 |
--------------------------------------------------------------------------------
/examples/LIN_master_dual/LIN_master_dual.ino:
--------------------------------------------------------------------------------
1 | /**
2 | \file dual_LIN.ino
3 | \example dual_LIN.ino
4 | \brief Dual LIN master node emulation
5 | \details Simple emulation of two LIN master nodes via Serial1 (19.2kBaud) & Serial2 (9.6kBaud). Only master request frames are sent
6 | \author Georg Icking-Konert
7 |
8 | \note
9 | The sender state machine relies on reading back its 1-wire echo.
10 | If no LIN or K-Line transceiver is used, connect Rx&Tx (only 1 device!)
11 |
12 | \note
13 | As Serial(0) is generally used for USB/console, boards with 2 Serial interfaces, may not work due to conflict between USB and LIN.
14 | */
15 |
16 | // include LIN master library
17 | #include "LIN_master1.h"
18 | #include "LIN_master2.h"
19 |
20 | // task scheduler library. Either "Task Scheduler" library (AVR, SAM), or Ticker (ESP32, ESP8266)
21 | #if defined(__AVR__) || defined(__SAM3X8E__)
22 | #include "Tasks.h"
23 | #elif defined(ESP32) || defined(ESP8266)
24 | #include "Ticker.h"
25 | Ticker ticker_LIN1;
26 | Ticker ticker_LIN2;
27 | #else
28 | #error no supported task library found. Install either "Task Scheduler" library (AVR, SAM), or Ticker (ESP32, ESP8266)
29 | #endif
30 |
31 |
32 | // pin to demonstrate background operation
33 | #define PIN_TOGGLE 30
34 |
35 | // task scheduler periods [ms]
36 | #define LIN1_PERIOD 20
37 | #define LIN2_PERIOD 20
38 |
39 |
40 | void setup(void)
41 | {
42 | // show background operation
43 | pinMode(PIN_TOGGLE, OUTPUT);
44 |
45 | // for debug
46 | Serial.begin(115200); while(!Serial);
47 |
48 | // initialize LIN master (background operation)
49 | LIN_master1.begin(19200, LIN_V2, true);
50 | LIN_master2.begin(9600, LIN_V1, true);
51 |
52 | // init task scheduler (also required for LIN master emulation!)
53 | #if defined(__AVR__) || defined(__SAM3X8E__)
54 | Tasks_Init();
55 | Tasks_Add((Task) sendMasterRequest1, LIN1_PERIOD, 0);
56 | Tasks_Add((Task) sendMasterRequest2, LIN2_PERIOD, LIN1_PERIOD/2);
57 | Tasks_Start();
58 | #else // ESP32 / ESP8266
59 | ticker_LIN1.attach_ms(LIN1_PERIOD, sendMasterRequest1);
60 | delay(LIN1_PERIOD/2);
61 | ticker_LIN2.attach_ms(LIN2_PERIOD, sendMasterRequest2);
62 | #endif
63 |
64 | } // setup()
65 |
66 |
67 |
68 | void loop(void)
69 | {
70 | // toggle pin to show background operation
71 | digitalWrite(PIN_TOGGLE, !digitalRead(PIN_TOGGLE));
72 |
73 | } // loop()
74 |
75 |
76 |
77 | // send master request via Serial1
78 | void sendMasterRequest1(void)
79 | {
80 | // assert that LIN state is idle
81 | if (LIN_master1.getState() != LIN_STATE_IDLE)
82 | return;
83 |
84 | // assemble frame data
85 | static uint8_t count=0;
86 | uint8_t id = 0x05;
87 | uint8_t lenData = 8;
88 | uint8_t data[8];
89 | memset(data, count++, lenData);
90 |
91 | // send master request
92 | LIN_master1.sendMasterRequest(id, lenData, data);
93 |
94 | } // sendMasterRequest1()
95 |
96 |
97 |
98 | // send master request via Serial2
99 | void sendMasterRequest2(void)
100 | {
101 | // assert that LIN state is idle
102 | if (LIN_master2.getState() != LIN_STATE_IDLE)
103 | return;
104 |
105 | // assemble frame data
106 | static uint8_t count=127;
107 | uint8_t id = 0x11;
108 | uint8_t lenData = 8;
109 | uint8_t data[8];
110 | memset(data, count++, lenData);
111 |
112 | // send master request
113 | LIN_master2.sendMasterRequest(id, lenData, data);
114 |
115 | } // sendMasterRequest2()
116 |
--------------------------------------------------------------------------------
/extras/Library_Manager.md:
--------------------------------------------------------------------------------
1 | Library Manager
2 | ====================
3 |
4 | 
5 |
--------------------------------------------------------------------------------
/extras/Library_Manager.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/Library_Manager.png
--------------------------------------------------------------------------------
/extras/Multiple_LIN.md:
--------------------------------------------------------------------------------
1 | Multiple LIN
2 | ====================
3 |
4 | The below trace shows the LIN pins for 2 master nodes (V1 @ 9.6kBaud and V2 @ 19.2kBaud), and a test pin which is toggled in *loop()* to indicate the CPU load.
5 | The example was run on on an Arduino Mega 2560 @ 16MHz.
6 |
7 |
8 | 
9 |
--------------------------------------------------------------------------------
/extras/Operation_Modes.md:
--------------------------------------------------------------------------------
1 | Operation Modes
2 | ====================
3 |
4 | The below traces show the LIN pin for a master request (2 data bytes) and slave respone (8 data bytes), and a test pin which is toggled in *loop()* to indicate the CPU load.
5 | The examples were run on on an Arduino Mega 2560 @ 16MHz.
6 |
7 |
8 | Background Operation
9 | --------------------
10 |
11 | 
12 |
13 | ====================================
14 |
15 | Blocking Operation
16 | ------------------
17 |
18 | 
19 |
--------------------------------------------------------------------------------
/extras/README.md:
--------------------------------------------------------------------------------
1 | LIN Master Node Emulation
2 | =========================
3 |
4 | This library implements a Local Interconnect Master node emulation. For an explanation of the LIN bus and protocol e.g. see https://en.wikipedia.org/wiki/Local_Interconnect_Network.
5 |
6 | Supported functionality:
7 | - [blocking and non-blocking operation](Operation_Modes.md)
8 | - [multiple, simultaneous LIN nodes](Multiple_LIN.md) with independent baudrates and protocol
9 | - optional callback functions for slave response frames
10 |
11 | This library depends on the *Task Scheduler* library for background operation, which is available via the [Arduino IDE library manager](Library_Manager.md) or directly from https://github.com/kcl93/Tasks
12 |
13 | Supported Boards (with additional LIN hardware):
14 | - all boards using the Atmel ATMega328 controller, e.g. Arduino Uno and Nano
15 | - all boards using the Atmel ATMega2560 controller, e.g. Arduino Mega
16 | - all boards using the Atmel SAM3X8E controller, e.g. Arduino Due
17 |
18 | As no device specific tricks are used, other boards should also work, if they are supported by the *Task Scheduler* library.
19 |
20 | Have fun, Georg
--------------------------------------------------------------------------------
/extras/background_operation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/background_operation.png
--------------------------------------------------------------------------------
/extras/blocking_operation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/blocking_operation.png
--------------------------------------------------------------------------------
/extras/dual_LIN.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/dual_LIN.png
--------------------------------------------------------------------------------
/extras/html/Library_Manager.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/Library_Manager.png
--------------------------------------------------------------------------------
/extras/html/_l_i_n__background_8ino.js:
--------------------------------------------------------------------------------
1 | var _l_i_n__background_8ino =
2 | [
3 | [ "LIN_PERIOD", "_l_i_n__background_8ino.html#aaa57eecaf12b9dd7d451ce692bfdfc6b", null ],
4 | [ "PIN_TOGGLE", "_l_i_n__background_8ino.html#aa1d7d3fe7a3b1fd2599b4b672813cdb5", null ],
5 | [ "PRINT_PERIOD", "_l_i_n__background_8ino.html#ab8fb7d5aecd38e0e7d6106a400e10388", null ],
6 | [ "LIN_scheduler", "_l_i_n__background_8ino.html#a73642116bce660063e2d2fe84de3512b", null ],
7 | [ "loop", "_l_i_n__background_8ino.html#a0b33edabd7f1c4e4a0bf32c67269be2f", null ],
8 | [ "printStatus", "_l_i_n__background_8ino.html#aaf090dbb73ff05ddbd763653427c49ee", null ],
9 | [ "setup", "_l_i_n__background_8ino.html#a7dfd9b79bc5a37d7df40207afbc5431f", null ],
10 | [ "Rx", "_l_i_n__background_8ino.html#ae2ae0524e9a6b2974127c932e4bb9a08", null ]
11 | ];
--------------------------------------------------------------------------------
/extras/html/_l_i_n__blocking_8ino.js:
--------------------------------------------------------------------------------
1 | var _l_i_n__blocking_8ino =
2 | [
3 | [ "LIN_PAUSE", "_l_i_n__blocking_8ino.html#acb6327ed4a1c3b8b716cb5517956b708", null ],
4 | [ "PIN_TOGGLE", "_l_i_n__blocking_8ino.html#aa1d7d3fe7a3b1fd2599b4b672813cdb5", null ],
5 | [ "loop", "_l_i_n__blocking_8ino.html#a0b33edabd7f1c4e4a0bf32c67269be2f", null ],
6 | [ "setup", "_l_i_n__blocking_8ino.html#a7dfd9b79bc5a37d7df40207afbc5431f", null ]
7 | ];
--------------------------------------------------------------------------------
/extras/html/_l_i_n__callback_8ino.js:
--------------------------------------------------------------------------------
1 | var _l_i_n__callback_8ino =
2 | [
3 | [ "LIN_PERIOD", "_l_i_n__callback_8ino.html#aaa57eecaf12b9dd7d451ce692bfdfc6b", null ],
4 | [ "PIN_TOGGLE", "_l_i_n__callback_8ino.html#aa1d7d3fe7a3b1fd2599b4b672813cdb5", null ],
5 | [ "PRINT_PERIOD", "_l_i_n__callback_8ino.html#ab8fb7d5aecd38e0e7d6106a400e10388", null ],
6 | [ "LIN_scheduler", "_l_i_n__callback_8ino.html#a73642116bce660063e2d2fe84de3512b", null ],
7 | [ "loop", "_l_i_n__callback_8ino.html#a0b33edabd7f1c4e4a0bf32c67269be2f", null ],
8 | [ "printStatus", "_l_i_n__callback_8ino.html#aaf090dbb73ff05ddbd763653427c49ee", null ],
9 | [ "setup", "_l_i_n__callback_8ino.html#a7dfd9b79bc5a37d7df40207afbc5431f", null ],
10 | [ "statusDecode", "_l_i_n__callback_8ino.html#a6683a8e9bed6decdf21ad71cf16c5862", null ],
11 | [ "CoolFan_Blocking_Stat", "_l_i_n__callback_8ino.html#a0b06b4b3c387e6e9399ffe5c7b7a4100", null ],
12 | [ "CoolFan_cur_Temp", "_l_i_n__callback_8ino.html#a52266875296a2a20d98dd1f9172fc14e", null ],
13 | [ "CoolFan_Current_Avg", "_l_i_n__callback_8ino.html#a5d24ae2caf51680f6140508eb409ecb0", null ],
14 | [ "CoolFan_Electr_Err", "_l_i_n__callback_8ino.html#a8ccb945a4842dacc2bd70dc5ac744b53", null ],
15 | [ "CoolFan_EmAct_Stat", "_l_i_n__callback_8ino.html#ae605b5616ee9c3129bf3fc883696a8e3", null ],
16 | [ "CoolFan_Err_Group_ERR_Stat", "_l_i_n__callback_8ino.html#a95bddd4a8f90fb508f6f8e83867fe0bd", null ],
17 | [ "CoolFan_Err_Group_SNA_Stat", "_l_i_n__callback_8ino.html#ac5233206ae08e5188415ff6ed0f852f5", null ],
18 | [ "CoolFan_Mech_Err", "_l_i_n__callback_8ino.html#a0b6b6f3516bfb6edc14fdd4c6295581b", null ],
19 | [ "CoolFan_OvrTemp_Err", "_l_i_n__callback_8ino.html#ae284558de1dff637e50a224ad896c866", null ],
20 | [ "CoolFan_OvrVolt_Stat", "_l_i_n__callback_8ino.html#ab281546102d1b209a07c9ce13d70b8e4", null ],
21 | [ "CoolFan_RPM", "_l_i_n__callback_8ino.html#a8d1af40dc2513e23f5871459391ca0dd", null ],
22 | [ "CoolFan_RPM_Ack", "_l_i_n__callback_8ino.html#a8b642aae22ac93221e7e6671a747ffe0", null ],
23 | [ "CoolFan_RPM_Avg", "_l_i_n__callback_8ino.html#af27db14eccf7b205cd1fcad0c4a2a514", null ],
24 | [ "CoolFan_Stiff_Stat", "_l_i_n__callback_8ino.html#ab313efe5c95e21d6a12db8c29a9ad6ad", null ],
25 | [ "CoolFan_TempDerat_Stat", "_l_i_n__callback_8ino.html#a1524d8e5cdd541de3f1b85c8b331d7c2", null ],
26 | [ "CoolFan_Type", "_l_i_n__callback_8ino.html#a7410cf7cae74af10549d73c788e31c3b", null ],
27 | [ "CoolFan_UnderVolt_Stat", "_l_i_n__callback_8ino.html#a27a86df5b053591f8ab040b0f472bd8a", null ],
28 | [ "CoolFan_Voltage_Avg", "_l_i_n__callback_8ino.html#ae7a6796a8dd87005c56e3d08c0c2a2d1", null ],
29 | [ "CoolFan_VoltDerat_Stat", "_l_i_n__callback_8ino.html#ab595dbc3249d50fad67c862b52d34502", null ],
30 | [ "RsErr_CF", "_l_i_n__callback_8ino.html#a970c23327d402c6916a498018d456fd5", null ],
31 | [ "WakeupStat_CF", "_l_i_n__callback_8ino.html#a1fd01f82c2ee0ca5da4d30be5ed8f949", null ]
32 | ];
--------------------------------------------------------------------------------
/extras/html/_l_i_n__master0_8cpp.js:
--------------------------------------------------------------------------------
1 | var _l_i_n__master0_8cpp =
2 | [
3 | [ "LIN_master0_copy", "_l_i_n__master0_8cpp.html#ae0896b8a1edd32b42f1fc88e54f0bab1", null ],
4 | [ "LIN_master0_receive", "_l_i_n__master0_8cpp.html#a7cdad4685cb5cc388e70f05435399dd0", null ],
5 | [ "LIN_master0_send", "_l_i_n__master0_8cpp.html#afb9f8cffb98d27e814ba538ceecc08cb", null ],
6 | [ "LIN_master0", "_l_i_n__master0_8cpp.html#ac39aac4c85ad44c2295a960af1887314", null ]
7 | ];
--------------------------------------------------------------------------------
/extras/html/_l_i_n__master0_8h.js:
--------------------------------------------------------------------------------
1 | var _l_i_n__master0_8h =
2 | [
3 | [ "LIN_Master_0", "class_l_i_n___master__0.html", "class_l_i_n___master__0" ],
4 | [ "LIN_master0_copy", "_l_i_n__master0_8h.html#ae0896b8a1edd32b42f1fc88e54f0bab1", null ],
5 | [ "LIN_master0_receive", "_l_i_n__master0_8h.html#a7cdad4685cb5cc388e70f05435399dd0", null ],
6 | [ "LIN_master0_send", "_l_i_n__master0_8h.html#afb9f8cffb98d27e814ba538ceecc08cb", null ],
7 | [ "LIN_master0", "_l_i_n__master0_8h.html#ac39aac4c85ad44c2295a960af1887314", null ]
8 | ];
--------------------------------------------------------------------------------
/extras/html/_l_i_n__master1_8cpp.js:
--------------------------------------------------------------------------------
1 | var _l_i_n__master1_8cpp =
2 | [
3 | [ "LIN_master1_copy", "_l_i_n__master1_8cpp.html#a9ef046b6c52ebc36a6f9f039f673ac85", null ],
4 | [ "LIN_master1_receive", "_l_i_n__master1_8cpp.html#a3e25c19e01e41ac4fabb29a7b7af8cd5", null ],
5 | [ "LIN_master1_send", "_l_i_n__master1_8cpp.html#abe737fa0dd0f58a2e9a5db7993abecd0", null ],
6 | [ "LIN_master1", "_l_i_n__master1_8cpp.html#a8f49bda42871b7605cacb83dafd0e4ca", null ]
7 | ];
--------------------------------------------------------------------------------
/extras/html/_l_i_n__master1_8h.js:
--------------------------------------------------------------------------------
1 | var _l_i_n__master1_8h =
2 | [
3 | [ "LIN_Master_1", "class_l_i_n___master__1.html", "class_l_i_n___master__1" ],
4 | [ "LIN_master1_copy", "_l_i_n__master1_8h.html#a9ef046b6c52ebc36a6f9f039f673ac85", null ],
5 | [ "LIN_master1_receive", "_l_i_n__master1_8h.html#a3e25c19e01e41ac4fabb29a7b7af8cd5", null ],
6 | [ "LIN_master1_send", "_l_i_n__master1_8h.html#abe737fa0dd0f58a2e9a5db7993abecd0", null ],
7 | [ "LIN_master1", "_l_i_n__master1_8h.html#a8f49bda42871b7605cacb83dafd0e4ca", null ]
8 | ];
--------------------------------------------------------------------------------
/extras/html/_l_i_n__master2_8cpp.js:
--------------------------------------------------------------------------------
1 | var _l_i_n__master2_8cpp =
2 | [
3 | [ "LIN_master2_copy", "_l_i_n__master2_8cpp.html#a5772db910b0d8b9d93dcee85211b5a4e", null ],
4 | [ "LIN_master2_receive", "_l_i_n__master2_8cpp.html#a0f1e230b8bc4d2014b846fae97b6e012", null ],
5 | [ "LIN_master2_send", "_l_i_n__master2_8cpp.html#a8a61f3290d3f816cd1054ffe763b95a6", null ],
6 | [ "LIN_master2", "_l_i_n__master2_8cpp.html#ae06038c2dba5ba500d220e830d80cd5b", null ]
7 | ];
--------------------------------------------------------------------------------
/extras/html/_l_i_n__master2_8h.js:
--------------------------------------------------------------------------------
1 | var _l_i_n__master2_8h =
2 | [
3 | [ "LIN_Master_2", "class_l_i_n___master__2.html", "class_l_i_n___master__2" ],
4 | [ "LIN_master2_copy", "_l_i_n__master2_8h.html#a5772db910b0d8b9d93dcee85211b5a4e", null ],
5 | [ "LIN_master2_receive", "_l_i_n__master2_8h.html#a0f1e230b8bc4d2014b846fae97b6e012", null ],
6 | [ "LIN_master2_send", "_l_i_n__master2_8h.html#a8a61f3290d3f816cd1054ffe763b95a6", null ],
7 | [ "LIN_master2", "_l_i_n__master2_8h.html#ae06038c2dba5ba500d220e830d80cd5b", null ]
8 | ];
--------------------------------------------------------------------------------
/extras/html/_l_i_n__master3_8cpp.js:
--------------------------------------------------------------------------------
1 | var _l_i_n__master3_8cpp =
2 | [
3 | [ "LIN_master3_copy", "_l_i_n__master3_8cpp.html#a739aec5018522aa94a63fcaab0cbbd35", null ],
4 | [ "LIN_master3_receive", "_l_i_n__master3_8cpp.html#a91c2a1f0f8f4b3c0e2cb690b66fb998c", null ],
5 | [ "LIN_master3_send", "_l_i_n__master3_8cpp.html#acca9ceb9aacbde72e51f5a98aaf90f9f", null ],
6 | [ "LIN_master3", "_l_i_n__master3_8cpp.html#a2cfb68ff1972539800fa2e61a988ded4", null ]
7 | ];
--------------------------------------------------------------------------------
/extras/html/_l_i_n__master3_8h.js:
--------------------------------------------------------------------------------
1 | var _l_i_n__master3_8h =
2 | [
3 | [ "LIN_Master_3", "class_l_i_n___master__3.html", "class_l_i_n___master__3" ],
4 | [ "LIN_master3_copy", "_l_i_n__master3_8h.html#a739aec5018522aa94a63fcaab0cbbd35", null ],
5 | [ "LIN_master3_receive", "_l_i_n__master3_8h.html#a91c2a1f0f8f4b3c0e2cb690b66fb998c", null ],
6 | [ "LIN_master3_send", "_l_i_n__master3_8h.html#acca9ceb9aacbde72e51f5a98aaf90f9f", null ],
7 | [ "LIN_master3", "_l_i_n__master3_8h.html#a2cfb68ff1972539800fa2e61a988ded4", null ]
8 | ];
--------------------------------------------------------------------------------
/extras/html/_l_i_n__master_8h.js:
--------------------------------------------------------------------------------
1 | var _l_i_n__master_8h =
2 | [
3 | [ "LIN_Master", "class_l_i_n___master.html", "class_l_i_n___master" ],
4 | [ "LIN_DEBUG_LEVEL", "_l_i_n__master_8h.html#a0fbe1a3d7a57e4c454c5edb9c8d3b589", null ],
5 | [ "LIN_DEBUG_SERIAL", "_l_i_n__master_8h.html#a623b94c96f1a4ce4f486b8fc8fe9eca3", null ],
6 | [ "decoder_t", "_l_i_n__master_8h.html#addd910faf05c9e05b99a74296c256b5d", null ],
7 | [ "LIN_error_t", "_l_i_n__master_8h.html#a6d33f951db594969c82d91e4ce793b82", [
8 | [ "LIN_SUCCESS", "_l_i_n__master_8h.html#a6d33f951db594969c82d91e4ce793b82a010afccb5aaad11212ae8dac6dfa8dba", null ],
9 | [ "LIN_ERROR_STATE", "_l_i_n__master_8h.html#a6d33f951db594969c82d91e4ce793b82a97ab0e3ea0591d39bc87226901d02631", null ],
10 | [ "LIN_ERROR_ECHO", "_l_i_n__master_8h.html#a6d33f951db594969c82d91e4ce793b82a1c0c655b966de71875c5478717ca14a2", null ],
11 | [ "LIN_ERROR_TIMEOUT", "_l_i_n__master_8h.html#a6d33f951db594969c82d91e4ce793b82a4ca746a3a0f8da2a50f333302d83f5be", null ],
12 | [ "LIN_ERROR_CHK", "_l_i_n__master_8h.html#a6d33f951db594969c82d91e4ce793b82aef44ca97d5ffb77a6481fed83b4e5985", null ],
13 | [ "LIN_ERROR_MISC", "_l_i_n__master_8h.html#a6d33f951db594969c82d91e4ce793b82a3c7b058a398e8f04a617b9cf8375670f", null ]
14 | ] ],
15 | [ "LIN_frame_t", "_l_i_n__master_8h.html#aacaac6776bc917200d73dd6879ae75c9", [
16 | [ "LIN_MASTER_REQUEST", "_l_i_n__master_8h.html#aacaac6776bc917200d73dd6879ae75c9a4fce02374593f5987c183b1c78cca358", null ],
17 | [ "LIN_SLAVE_RESPONSE", "_l_i_n__master_8h.html#aacaac6776bc917200d73dd6879ae75c9a725438a2997419584635a330d5822004", null ]
18 | ] ],
19 | [ "LIN_status_t", "_l_i_n__master_8h.html#a34ad22d0b15300d9309c806433a4fc4e", [
20 | [ "LIN_STATE_OFF", "_l_i_n__master_8h.html#a34ad22d0b15300d9309c806433a4fc4eae5e8d34cb75b59211410a4ac45675462", null ],
21 | [ "LIN_STATE_IDLE", "_l_i_n__master_8h.html#a34ad22d0b15300d9309c806433a4fc4ea913fda3508d7a9ae23f417ebdc324ec9", null ],
22 | [ "LIN_STATE_BREAK", "_l_i_n__master_8h.html#a34ad22d0b15300d9309c806433a4fc4ea15a306cd9878520342fbd26a4518625b", null ],
23 | [ "LIN_STATE_FRAME", "_l_i_n__master_8h.html#a34ad22d0b15300d9309c806433a4fc4ea58b8570ab5a7e878e09d05ff801f0ed6", null ]
24 | ] ],
25 | [ "LIN_version_t", "_l_i_n__master_8h.html#a427c734468913aa0f13d50a58117893b", [
26 | [ "LIN_V1", "_l_i_n__master_8h.html#a427c734468913aa0f13d50a58117893ba18a7a808bc54a5e6f3f9a46ad75e195e", null ],
27 | [ "LIN_V2", "_l_i_n__master_8h.html#a427c734468913aa0f13d50a58117893badaafb18f79967a0b12868b40cf345ed8", null ]
28 | ] ]
29 | ];
--------------------------------------------------------------------------------
/extras/html/_library___manager_8md_source.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | LIN_master: Library_Manager.md Source File
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | LIN_master
33 | 0.1
34 |
35 | Arduino LIN master emulation with preemptive background operation
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
46 |
47 |
48 |
54 |
55 |
56 |
66 |
69 |
70 |
71 |
75 |
76 |
77 |
78 |
79 |
82 |
83 |
84 |
88 |
89 |
4 
90 |
91 |
92 |
93 |
94 | Library_Manager.md
95 |
98 |
99 |
100 |
101 |
102 |
--------------------------------------------------------------------------------
/extras/html/annotated_dup.js:
--------------------------------------------------------------------------------
1 | var annotated_dup =
2 | [
3 | [ "LIN_Master", "class_l_i_n___master.html", "class_l_i_n___master" ],
4 | [ "LIN_Master_0", "class_l_i_n___master__0.html", "class_l_i_n___master__0" ],
5 | [ "LIN_Master_1", "class_l_i_n___master__1.html", "class_l_i_n___master__1" ],
6 | [ "LIN_Master_2", "class_l_i_n___master__2.html", "class_l_i_n___master__2" ],
7 | [ "LIN_Master_3", "class_l_i_n___master__3.html", "class_l_i_n___master__3" ]
8 | ];
--------------------------------------------------------------------------------
/extras/html/background_operation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/background_operation.png
--------------------------------------------------------------------------------
/extras/html/bc_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/bc_s.png
--------------------------------------------------------------------------------
/extras/html/bdwn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/bdwn.png
--------------------------------------------------------------------------------
/extras/html/blocking_operation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/blocking_operation.png
--------------------------------------------------------------------------------
/extras/html/class_l_i_n___master.js:
--------------------------------------------------------------------------------
1 | var class_l_i_n___master =
2 | [
3 | [ "begin", "class_l_i_n___master.html#aed83f496028e02bf528d400f0a43a34c", null ],
4 | [ "checksum", "class_l_i_n___master.html#a7fc6731a40815396cabf732ae16b0796", null ],
5 | [ "defaultCallback", "class_l_i_n___master.html#aa2fcef7c3c5153826b678e3769b2d2c9", null ],
6 | [ "end", "class_l_i_n___master.html#a00fd4fce48f6237cea87825e937aa688", null ],
7 | [ "handlerReceive", "class_l_i_n___master.html#ab6bb1a6aeff905ec97ab0b82de76d528", null ],
8 | [ "handlerSend", "class_l_i_n___master.html#ac71e26533db11256cffae3588dd94071", null ],
9 | [ "protectID", "class_l_i_n___master.html#a82ff96ca4e2f2a2632419336cd5ed3df", null ],
10 | [ "receiveSlaveResponse", "class_l_i_n___master.html#ae1d1f965294aa35dbc722e7393a77315", null ],
11 | [ "receiveSlaveResponse", "class_l_i_n___master.html#af0fdc1f5516feafe02e03a44167383c4", null ],
12 | [ "sendMasterRequest", "class_l_i_n___master.html#a4cf186b50edda679927471ef1c47efaf", null ],
13 | [ "background", "class_l_i_n___master.html#ac5bdc52e6924094e821cfc23ffb7344b", null ],
14 | [ "baudrate", "class_l_i_n___master.html#a9a7b5c9604d002f1ca9214e9e0db4d31", null ],
15 | [ "bufRx", "class_l_i_n___master.html#a190a766767fab1821783d85ba91ab3e7", null ],
16 | [ "bufTx", "class_l_i_n___master.html#ae0ffa16776d32ef81e3801a0526834cb", null ],
17 | [ "dataPtr", "class_l_i_n___master.html#aa57d23aad8583a8a0c7e93ba995e3bbc", null ],
18 | [ "durationBreak", "class_l_i_n___master.html#a6032c445b26138423510da70f568c8ab", null ],
19 | [ "durationFrame", "class_l_i_n___master.html#a2f98698c7cfd4ebdb320604606bffea2", null ],
20 | [ "error", "class_l_i_n___master.html#a136305d6a96d707caa11698f9cc813a0", null ],
21 | [ "flagRxComplete", "class_l_i_n___master.html#a551d6040e9de16538aa5340325af8a0a", null ],
22 | [ "flagTxComplete", "class_l_i_n___master.html#aa36aa22315b364f7f0fecec6f37f2212", null ],
23 | [ "frameType", "class_l_i_n___master.html#ad21f2a01f28142ce4ec039f1da3f72aa", null ],
24 | [ "lenRx", "class_l_i_n___master.html#ab5068b1197d717b16d63d36e6ed59f76", null ],
25 | [ "lenTx", "class_l_i_n___master.html#a548cb1ad18cf4c509de0217dba9aa044", null ],
26 | [ "pSerial", "class_l_i_n___master.html#a0fcdb86f5ff745116638731630e588a1", null ],
27 | [ "rx_handler", "class_l_i_n___master.html#ae393334505b9c28d6a1fdedc4b5b3560", null ],
28 | [ "state", "class_l_i_n___master.html#a7369d1273bb45d8d1cee372bb32a97df", null ],
29 | [ "version", "class_l_i_n___master.html#ac9bf76b671f32f5f18c41585e7b06abe", null ],
30 | [ "wrapperDefaultCallback", "class_l_i_n___master.html#aec46720f74bc65b61f58520c6b75a7ab", null ],
31 | [ "wrapperReceive", "class_l_i_n___master.html#a93c6225aa9bcc2701b4d918d6be3ab85", null ],
32 | [ "wrapperSend", "class_l_i_n___master.html#a3da83c78312e160d6d74ad76ff4e276c", null ]
33 | ];
--------------------------------------------------------------------------------
/extras/html/class_l_i_n___master.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/class_l_i_n___master.png
--------------------------------------------------------------------------------
/extras/html/class_l_i_n___master__0.js:
--------------------------------------------------------------------------------
1 | var class_l_i_n___master__0 =
2 | [
3 | [ "LIN_Master_0", "class_l_i_n___master__0.html#a5090c80837e719bf02bbdcd733452539", null ]
4 | ];
--------------------------------------------------------------------------------
/extras/html/class_l_i_n___master__0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/class_l_i_n___master__0.png
--------------------------------------------------------------------------------
/extras/html/class_l_i_n___master__1.js:
--------------------------------------------------------------------------------
1 | var class_l_i_n___master__1 =
2 | [
3 | [ "LIN_Master_1", "class_l_i_n___master__1.html#aa77c5bc5b170c5183ccda5a7fce3414c", null ]
4 | ];
--------------------------------------------------------------------------------
/extras/html/class_l_i_n___master__1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/class_l_i_n___master__1.png
--------------------------------------------------------------------------------
/extras/html/class_l_i_n___master__2.js:
--------------------------------------------------------------------------------
1 | var class_l_i_n___master__2 =
2 | [
3 | [ "LIN_Master_2", "class_l_i_n___master__2.html#a017431162425068a7172b66837da983e", null ]
4 | ];
--------------------------------------------------------------------------------
/extras/html/class_l_i_n___master__2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/class_l_i_n___master__2.png
--------------------------------------------------------------------------------
/extras/html/class_l_i_n___master__3.js:
--------------------------------------------------------------------------------
1 | var class_l_i_n___master__3 =
2 | [
3 | [ "LIN_Master_3", "class_l_i_n___master__3.html#a400627c49e6cbb787beb4303b69f6883", null ]
4 | ];
--------------------------------------------------------------------------------
/extras/html/class_l_i_n___master__3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/class_l_i_n___master__3.png
--------------------------------------------------------------------------------
/extras/html/closed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/closed.png
--------------------------------------------------------------------------------
/extras/html/dir_a7b87552a5e39c37a5e9fd9a2b0b7bf9.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | LIN_master: dual_LIN Directory Reference
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | LIN_master
33 | 0.1
34 |
35 | Arduino LIN master emulation with preemptive background operation
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
46 |
47 |
48 |
54 |
55 |
56 |
66 |
69 |
70 |
71 |
75 |
76 |
77 |
78 |
79 |
82 |
83 |
84 |
88 |
96 |
97 |
98 |
106 |
107 |
108 |
--------------------------------------------------------------------------------
/extras/html/dir_ace7945da06dee3b64b589cdc6cd0f21.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | LIN_master: LIN_background Directory Reference
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | LIN_master
33 | 0.1
34 |
35 | Arduino LIN master emulation with preemptive background operation
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
46 |
47 |
48 |
54 |
55 |
56 |
66 |
69 |
70 |
71 |
75 |
76 |
77 |
78 |
79 |
82 |
83 |
84 |
88 |
96 |
97 |
98 |
106 |
107 |
108 |
--------------------------------------------------------------------------------
/extras/html/dir_d28a4824dc47e487b107a5db32ef43c4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | LIN_master: examples Directory Reference
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | LIN_master
33 | 0.1
34 |
35 | Arduino LIN master emulation with preemptive background operation
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
46 |
47 |
48 |
54 |
55 |
56 |
66 |
69 |
70 |
71 |
75 |
76 |
77 |
78 |
79 |
82 |
83 |
84 |
88 |
94 |
95 |
96 |
104 |
105 |
106 |
--------------------------------------------------------------------------------
/extras/html/dir_d6971b0f5112b49742efd355f2158b4f.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | LIN_master: LIN_blocking Directory Reference
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | LIN_master
33 | 0.1
34 |
35 | Arduino LIN master emulation with preemptive background operation
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
46 |
47 |
48 |
54 |
55 |
56 |
66 |
69 |
70 |
71 |
75 |
76 |
77 |
78 |
79 |
82 |
83 |
84 |
88 |
96 |
97 |
98 |
106 |
107 |
108 |
--------------------------------------------------------------------------------
/extras/html/dir_f046fe7c893808c2b56ff99d8390475d.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | LIN_master: LIN_callback Directory Reference
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | LIN_master
33 | 0.1
34 |
35 | Arduino LIN master emulation with preemptive background operation
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
46 |
47 |
48 |
54 |
55 |
56 |
66 |
69 |
70 |
71 |
75 |
76 |
77 |
78 |
79 |
82 |
83 |
84 |
88 |
96 |
97 |
98 |
106 |
107 |
108 |
--------------------------------------------------------------------------------
/extras/html/doc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/doc.png
--------------------------------------------------------------------------------
/extras/html/doxygen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/doxygen.png
--------------------------------------------------------------------------------
/extras/html/dual_LIN.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/dual_LIN.png
--------------------------------------------------------------------------------
/extras/html/dual___l_i_n_8ino.js:
--------------------------------------------------------------------------------
1 | var dual___l_i_n_8ino =
2 | [
3 | [ "LIN1_PERIOD", "dual___l_i_n_8ino.html#adf343e27255808cbe40ebb40bd2d122c", null ],
4 | [ "LIN2_PERIOD", "dual___l_i_n_8ino.html#a3de3348ec7cede9d03017042e529c0c0", null ],
5 | [ "PIN_TOGGLE", "dual___l_i_n_8ino.html#aa1d7d3fe7a3b1fd2599b4b672813cdb5", null ],
6 | [ "loop", "dual___l_i_n_8ino.html#a0b33edabd7f1c4e4a0bf32c67269be2f", null ],
7 | [ "sendMasterRequest1", "dual___l_i_n_8ino.html#a416e09a0eaa1dbbc86909006b3f2ea2c", null ],
8 | [ "sendMasterRequest2", "dual___l_i_n_8ino.html#aaf7dae8b7c65528fd81d26b8169609a1", null ],
9 | [ "setup", "dual___l_i_n_8ino.html#a7dfd9b79bc5a37d7df40207afbc5431f", null ]
10 | ];
--------------------------------------------------------------------------------
/extras/html/dynsections.js:
--------------------------------------------------------------------------------
1 | function toggleVisibility(linkObj)
2 | {
3 | var base = $(linkObj).attr('id');
4 | var summary = $('#'+base+'-summary');
5 | var content = $('#'+base+'-content');
6 | var trigger = $('#'+base+'-trigger');
7 | var src=$(trigger).attr('src');
8 | if (content.is(':visible')===true) {
9 | content.hide();
10 | summary.show();
11 | $(linkObj).addClass('closed').removeClass('opened');
12 | $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
13 | } else {
14 | content.show();
15 | summary.hide();
16 | $(linkObj).removeClass('closed').addClass('opened');
17 | $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
18 | }
19 | return false;
20 | }
21 |
22 | function updateStripes()
23 | {
24 | $('table.directory tr').
25 | removeClass('even').filter(':visible:even').addClass('even');
26 | }
27 |
28 | function toggleLevel(level)
29 | {
30 | $('table.directory tr').each(function() {
31 | var l = this.id.split('_').length-1;
32 | var i = $('#img'+this.id.substring(3));
33 | var a = $('#arr'+this.id.substring(3));
34 | if (l
2 |
3 |
4 |
5 |
6 |
7 |
8 | LIN_master: Examples
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | LIN_master
33 | 0.1
34 |
35 | Arduino LIN master emulation with preemptive background operation
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
46 |
47 |
48 |
54 |
55 |
56 |
66 |
69 |
70 |
71 |
75 |
76 |
77 |
78 |
79 |
82 |
83 |
84 |
88 |
89 |
Here is a list of all examples:
99 |
100 |
101 |
102 |
109 |
110 |
111 |
--------------------------------------------------------------------------------
/extras/html/examples.js:
--------------------------------------------------------------------------------
1 | var examples =
2 | [
3 | [ "dual_LIN.ino", "dual__l_i_n_8ino-example.html", null ],
4 | [ "LIN_background.ino", "_l_i_n_background_8ino-example.html", null ],
5 | [ "LIN_blocking.ino", "_l_i_n_blocking_8ino-example.html", null ],
6 | [ "LIN_callback.ino", "_l_i_n_callback_8ino-example.html", null ]
7 | ];
--------------------------------------------------------------------------------
/extras/html/files.js:
--------------------------------------------------------------------------------
1 | var files =
2 | [
3 | [ "dual_LIN.ino", "dual___l_i_n_8ino.html", "dual___l_i_n_8ino" ],
4 | [ "LIN_background.ino", "_l_i_n__background_8ino.html", "_l_i_n__background_8ino" ],
5 | [ "LIN_blocking.ino", "_l_i_n__blocking_8ino.html", "_l_i_n__blocking_8ino" ],
6 | [ "LIN_callback.ino", "_l_i_n__callback_8ino.html", "_l_i_n__callback_8ino" ],
7 | [ "LIN_master.cpp", "_l_i_n__master_8cpp.html", null ],
8 | [ "LIN_master.h", "_l_i_n__master_8h.html", "_l_i_n__master_8h" ],
9 | [ "LIN_master0.cpp", "_l_i_n__master0_8cpp.html", "_l_i_n__master0_8cpp" ],
10 | [ "LIN_master0.h", "_l_i_n__master0_8h.html", "_l_i_n__master0_8h" ],
11 | [ "LIN_master1.cpp", "_l_i_n__master1_8cpp.html", "_l_i_n__master1_8cpp" ],
12 | [ "LIN_master1.h", "_l_i_n__master1_8h.html", "_l_i_n__master1_8h" ],
13 | [ "LIN_master2.cpp", "_l_i_n__master2_8cpp.html", "_l_i_n__master2_8cpp" ],
14 | [ "LIN_master2.h", "_l_i_n__master2_8h.html", "_l_i_n__master2_8h" ],
15 | [ "LIN_master3.cpp", "_l_i_n__master3_8cpp.html", "_l_i_n__master3_8cpp" ],
16 | [ "LIN_master3.h", "_l_i_n__master3_8h.html", "_l_i_n__master3_8h" ]
17 | ];
--------------------------------------------------------------------------------
/extras/html/folderclosed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/folderclosed.png
--------------------------------------------------------------------------------
/extras/html/folderopen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/folderopen.png
--------------------------------------------------------------------------------
/extras/html/globals_defs.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | LIN_master: Globals
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | LIN_master
33 | 0.1
34 |
35 | Arduino LIN master emulation with preemptive background operation
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
46 |
47 |
48 |
54 |
55 |
56 |
66 |
69 |
70 |
71 |
75 |
76 |
77 |
78 |
79 |
82 |
83 |
84 |
94 |
95 |
96 |
103 |
104 |
105 |
--------------------------------------------------------------------------------
/extras/html/globals_enum.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | LIN_master: Globals
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | LIN_master
33 | 0.1
34 |
35 | Arduino LIN master emulation with preemptive background operation
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
46 |
47 |
48 |
54 |
55 |
56 |
66 |
69 |
70 |
71 |
75 |
76 |
77 |
78 |
79 |
82 |
83 |
84 |
100 |
101 |
102 |
109 |
110 |
111 |
--------------------------------------------------------------------------------
/extras/html/globals_type.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | LIN_master: Globals
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | LIN_master
33 | 0.1
34 |
35 | Arduino LIN master emulation with preemptive background operation
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
46 |
47 |
48 |
54 |
55 |
56 |
66 |
69 |
70 |
71 |
75 |
76 |
77 |
78 |
79 |
82 |
83 |
84 |
91 |
92 |
93 |
100 |
101 |
102 |
--------------------------------------------------------------------------------
/extras/html/hierarchy.js:
--------------------------------------------------------------------------------
1 | var hierarchy =
2 | [
3 | [ "LIN_Master", "class_l_i_n___master.html", [
4 | [ "LIN_Master_0", "class_l_i_n___master__0.html", null ],
5 | [ "LIN_Master_1", "class_l_i_n___master__1.html", null ],
6 | [ "LIN_Master_2", "class_l_i_n___master__2.html", null ],
7 | [ "LIN_Master_3", "class_l_i_n___master__3.html", null ]
8 | ] ]
9 | ];
--------------------------------------------------------------------------------
/extras/html/logo_LIN.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/logo_LIN.png
--------------------------------------------------------------------------------
/extras/html/md__library__manager.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | LIN_master: Library Manager
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | LIN_master
33 | 0.1
34 |
35 | Arduino LIN master emulation with preemptive background operation
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
46 |
47 |
48 |
54 |
55 |
56 |
66 |
69 |
70 |
71 |
75 |
76 |
77 |
78 |
79 |
82 |
83 |
84 |
88 |
89 |
90 |
91 |
92 | "Task Scheduler" in Arduino IDE library manager
93 |
94 |
95 |
96 |
103 |
104 |
105 |
--------------------------------------------------------------------------------
/extras/html/md__multiple__l_i_n.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | LIN_master: Multiple LIN
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | LIN_master
33 | 0.1
34 |
35 | Arduino LIN master emulation with preemptive background operation
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
46 |
47 |
48 |
54 |
55 |
56 |
66 |
69 |
70 |
71 |
75 |
76 |
77 |
78 |
79 |
82 |
83 |
84 |
88 |
89 |
The below trace shows the LIN pins for 2 master nodes (V1 @ 9.6kBaud and V2 @ 19.2kBaud), and a test pin which is toggled in loop() to indicate the CPU load. The example was run on on an Arduino Mega 2560 @ 16MHz.
90 |
91 |
92 |
93 |
94 |
95 |
96 |
103 |
104 |
105 |
--------------------------------------------------------------------------------
/extras/html/md__operation__modes.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | LIN_master: Operation Modes
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | LIN_master
33 | 0.1
34 |
35 | Arduino LIN master emulation with preemptive background operation
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
46 |
47 |
48 |
54 |
55 |
56 |
66 |
69 |
70 |
71 |
75 |
76 |
77 |
78 |
79 |
82 |
83 |
84 |
88 |
89 |
The below traces show the LIN pin for a master request (2 data bytes) and slave respone (8 data bytes), and a test pin which is toggled in loop() to indicate the CPU load. The examples were run on on an Arduino Mega 2560 @ 16MHz.
90 |
Background Operation
91 |
92 |
93 |
94 |
95 |
Blocking Operation
96 |
97 |
98 |
99 |
100 |
101 |
102 |
109 |
110 |
111 |
--------------------------------------------------------------------------------
/extras/html/menu.js:
--------------------------------------------------------------------------------
1 | function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
2 | function makeTree(data,relPath) {
3 | var result='';
4 | if ('children' in data) {
5 | result+='';
12 | }
13 | return result;
14 | }
15 |
16 | $('#main-nav').append(makeTree(menudata,relPath));
17 | $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
18 | if (searchEnabled) {
19 | if (serverSide) {
20 | $('#main-menu').append(' ');
21 | } else {
22 | $('#main-menu').append(' ');
23 | }
24 | }
25 | $('#main-menu').smartmenus();
26 | }
27 |
--------------------------------------------------------------------------------
/extras/html/menudata.js:
--------------------------------------------------------------------------------
1 | var menudata={children:[
2 | {text:"Main Page",url:"index.html"},
3 | {text:"Related Pages",url:"pages.html"},
4 | {text:"Data Structures",url:"annotated.html",children:[
5 | {text:"Data Structures",url:"annotated.html"},
6 | {text:"Data Structure Index",url:"classes.html"},
7 | {text:"Class Hierarchy",url:"hierarchy.html"},
8 | {text:"Data Fields",url:"functions.html",children:[
9 | {text:"All",url:"functions.html",children:[
10 | {text:"b",url:"functions.html#index_b"},
11 | {text:"c",url:"functions.html#index_c"},
12 | {text:"d",url:"functions.html#index_d"},
13 | {text:"e",url:"functions.html#index_e"},
14 | {text:"f",url:"functions.html#index_f"},
15 | {text:"h",url:"functions.html#index_h"},
16 | {text:"l",url:"functions.html#index_l"},
17 | {text:"p",url:"functions.html#index_p"},
18 | {text:"r",url:"functions.html#index_r"},
19 | {text:"s",url:"functions.html#index_s"},
20 | {text:"v",url:"functions.html#index_v"},
21 | {text:"w",url:"functions.html#index_w"}]},
22 | {text:"Functions",url:"functions_func.html"},
23 | {text:"Variables",url:"functions_vars.html"}]}]},
24 | {text:"Files",url:"files.html",children:[
25 | {text:"File List",url:"files.html"},
26 | {text:"Globals",url:"globals.html",children:[
27 | {text:"All",url:"globals.html",children:[
28 | {text:"d",url:"globals.html#index_d"},
29 | {text:"l",url:"globals.html#index_l"}]},
30 | {text:"Functions",url:"globals_func.html"},
31 | {text:"Variables",url:"globals_vars.html"},
32 | {text:"Typedefs",url:"globals_type.html"},
33 | {text:"Enumerations",url:"globals_enum.html"},
34 | {text:"Enumerator",url:"globals_eval.html"},
35 | {text:"Macros",url:"globals_defs.html"}]}]},
36 | {text:"Examples",url:"examples.html"}]}
37 |
--------------------------------------------------------------------------------
/extras/html/nav_f.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/nav_f.png
--------------------------------------------------------------------------------
/extras/html/nav_g.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/nav_g.png
--------------------------------------------------------------------------------
/extras/html/nav_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/nav_h.png
--------------------------------------------------------------------------------
/extras/html/navtree.css:
--------------------------------------------------------------------------------
1 | #nav-tree .children_ul {
2 | margin:0;
3 | padding:4px;
4 | }
5 |
6 | #nav-tree ul {
7 | list-style:none outside none;
8 | margin:0px;
9 | padding:0px;
10 | }
11 |
12 | #nav-tree li {
13 | white-space:nowrap;
14 | margin:0px;
15 | padding:0px;
16 | }
17 |
18 | #nav-tree .plus {
19 | margin:0px;
20 | }
21 |
22 | #nav-tree .selected {
23 | background-image: url('tab_a.png');
24 | background-repeat:repeat-x;
25 | color: #fff;
26 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
27 | }
28 |
29 | #nav-tree img {
30 | margin:0px;
31 | padding:0px;
32 | border:0px;
33 | vertical-align: middle;
34 | }
35 |
36 | #nav-tree a {
37 | text-decoration:none;
38 | padding:0px;
39 | margin:0px;
40 | outline:none;
41 | }
42 |
43 | #nav-tree .label {
44 | margin:0px;
45 | padding:0px;
46 | font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
47 | }
48 |
49 | #nav-tree .label a {
50 | padding:2px;
51 | }
52 |
53 | #nav-tree .selected a {
54 | text-decoration:none;
55 | color:#fff;
56 | }
57 |
58 | #nav-tree .children_ul {
59 | margin:0px;
60 | padding:0px;
61 | }
62 |
63 | #nav-tree .item {
64 | margin:0px;
65 | padding:0px;
66 | }
67 |
68 | #nav-tree {
69 | padding: 0px 0px;
70 | background-color: #FAFAFF;
71 | font-size:14px;
72 | overflow:auto;
73 | }
74 |
75 | #doc-content {
76 | overflow:auto;
77 | display:block;
78 | padding:0px;
79 | margin:0px;
80 | -webkit-overflow-scrolling : touch; /* iOS 5+ */
81 | }
82 |
83 | #side-nav {
84 | padding:0 6px 0 0;
85 | margin: 0px;
86 | display:block;
87 | position: absolute;
88 | left: 0px;
89 | width: 250px;
90 | }
91 |
92 | .ui-resizable .ui-resizable-handle {
93 | display:block;
94 | }
95 |
96 | .ui-resizable-e {
97 | background-image:url("splitbar.png");
98 | background-size:100%;
99 | background-repeat:no-repeat;
100 | background-attachment: scroll;
101 | cursor:ew-resize;
102 | height:100%;
103 | right:0;
104 | top:0;
105 | width:6px;
106 | }
107 |
108 | .ui-resizable-handle {
109 | display:none;
110 | font-size:0.1px;
111 | position:absolute;
112 | z-index:1;
113 | }
114 |
115 | #nav-tree-contents {
116 | margin: 6px 0px 0px 0px;
117 | }
118 |
119 | #nav-tree {
120 | background-image:url('nav_h.png');
121 | background-repeat:repeat-x;
122 | background-color: #F9FAFC;
123 | -webkit-overflow-scrolling : touch; /* iOS 5+ */
124 | }
125 |
126 | #nav-sync {
127 | position:absolute;
128 | top:5px;
129 | right:24px;
130 | z-index:0;
131 | }
132 |
133 | #nav-sync img {
134 | opacity:0.3;
135 | }
136 |
137 | #nav-sync img:hover {
138 | opacity:0.9;
139 | }
140 |
141 | @media print
142 | {
143 | #nav-tree { display: none; }
144 | div.ui-resizable-handle { display: none; position: relative; }
145 | }
146 |
147 |
--------------------------------------------------------------------------------
/extras/html/navtreedata.js:
--------------------------------------------------------------------------------
1 | var NAVTREE =
2 | [
3 | [ "LIN_master", "index.html", [
4 | [ "LIN Master Node Emulation", "index.html", null ],
5 | [ "Library Manager", "md__library__manager.html", null ],
6 | [ "Multiple LIN", "md__multiple__l_i_n.html", null ],
7 | [ "Operation Modes", "md__operation__modes.html", null ],
8 | [ "Data Structures", "annotated.html", [
9 | [ "Data Structures", "annotated.html", "annotated_dup" ],
10 | [ "Data Structure Index", "classes.html", null ],
11 | [ "Class Hierarchy", "hierarchy.html", "hierarchy" ],
12 | [ "Data Fields", "functions.html", [
13 | [ "All", "functions.html", null ],
14 | [ "Functions", "functions_func.html", null ],
15 | [ "Variables", "functions_vars.html", null ]
16 | ] ]
17 | ] ],
18 | [ "Files", null, [
19 | [ "File List", "files.html", "files" ],
20 | [ "Globals", "globals.html", [
21 | [ "All", "globals.html", null ],
22 | [ "Functions", "globals_func.html", null ],
23 | [ "Variables", "globals_vars.html", null ],
24 | [ "Typedefs", "globals_type.html", null ],
25 | [ "Enumerations", "globals_enum.html", null ],
26 | [ "Enumerator", "globals_eval.html", null ],
27 | [ "Macros", "globals_defs.html", null ]
28 | ] ]
29 | ] ],
30 | [ "Examples", "examples.html", "examples" ]
31 | ] ]
32 | ];
33 |
34 | var NAVTREEINDEX =
35 | [
36 | "_l_i_n__background_8ino.html"
37 | ];
38 |
39 | var SYNCONMSG = 'click to disable panel synchronisation';
40 | var SYNCOFFMSG = 'click to enable panel synchronisation';
--------------------------------------------------------------------------------
/extras/html/open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/open.png
--------------------------------------------------------------------------------
/extras/html/pages.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | LIN_master: Related Pages
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | LIN_master
33 | 0.1
34 |
35 | Arduino LIN master emulation with preemptive background operation
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
46 |
47 |
48 |
54 |
55 |
56 |
66 |
69 |
70 |
71 |
75 |
76 |
77 |
78 |
79 |
82 |
83 |
84 |
88 |
89 |
Here is a list of all related documentation pages:
96 |
97 |
98 |
99 |
106 |
107 |
108 |
--------------------------------------------------------------------------------
/extras/html/resize.js:
--------------------------------------------------------------------------------
1 | function initResizable()
2 | {
3 | var cookie_namespace = 'doxygen';
4 | var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight;
5 |
6 | function readCookie(cookie)
7 | {
8 | var myCookie = cookie_namespace+"_"+cookie+"=";
9 | if (document.cookie) {
10 | var index = document.cookie.indexOf(myCookie);
11 | if (index != -1) {
12 | var valStart = index + myCookie.length;
13 | var valEnd = document.cookie.indexOf(";", valStart);
14 | if (valEnd == -1) {
15 | valEnd = document.cookie.length;
16 | }
17 | var val = document.cookie.substring(valStart, valEnd);
18 | return val;
19 | }
20 | }
21 | return 0;
22 | }
23 |
24 | function writeCookie(cookie, val, expiration)
25 | {
26 | if (val==undefined) return;
27 | if (expiration == null) {
28 | var date = new Date();
29 | date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
30 | expiration = date.toGMTString();
31 | }
32 | document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/";
33 | }
34 |
35 | function resizeWidth()
36 | {
37 | var windowWidth = $(window).width() + "px";
38 | var sidenavWidth = $(sidenav).outerWidth();
39 | content.css({marginLeft:parseInt(sidenavWidth)+"px"});
40 | writeCookie('width',sidenavWidth-barWidth, null);
41 | }
42 |
43 | function restoreWidth(navWidth)
44 | {
45 | var windowWidth = $(window).width() + "px";
46 | content.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
47 | sidenav.css({width:navWidth + "px"});
48 | }
49 |
50 | function resizeHeight()
51 | {
52 | var headerHeight = header.outerHeight();
53 | var footerHeight = footer.outerHeight();
54 | var windowHeight = $(window).height() - headerHeight - footerHeight;
55 | content.css({height:windowHeight + "px"});
56 | navtree.css({height:windowHeight + "px"});
57 | sidenav.css({height:windowHeight + "px"});
58 | var width=$(window).width();
59 | if (width!=collapsedWidth) {
60 | if (width=desktop_vp) {
61 | if (!collapsed) {
62 | collapseExpand();
63 | }
64 | } else if (width>desktop_vp && collapsedWidth0) {
76 | restoreWidth(0);
77 | collapsed=true;
78 | }
79 | else {
80 | var width = readCookie('width');
81 | if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); }
82 | collapsed=false;
83 | }
84 | }
85 |
86 | header = $("#top");
87 | sidenav = $("#side-nav");
88 | content = $("#doc-content");
89 | navtree = $("#nav-tree");
90 | footer = $("#nav-path");
91 | $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
92 | $(sidenav).resizable({ minWidth: 0 });
93 | $(window).resize(function() { resizeHeight(); });
94 | var device = navigator.userAgent.toLowerCase();
95 | var touch_device = device.match(/(iphone|ipod|ipad|android)/);
96 | if (touch_device) { /* wider split bar for touch only devices */
97 | $(sidenav).css({ paddingRight:'20px' });
98 | $('.ui-resizable-e').css({ width:'20px' });
99 | $('#nav-sync').css({ right:'34px' });
100 | barWidth=20;
101 | }
102 | var width = readCookie('width');
103 | if (width) { restoreWidth(width); } else { resizeWidth(); }
104 | resizeHeight();
105 | var url = location.href;
106 | var i=url.indexOf("#");
107 | if (i>=0) window.location.hash=url.substr(i);
108 | var _preventDefault = function(evt) { evt.preventDefault(); };
109 | $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
110 | $(".ui-resizable-handle").dblclick(collapseExpand);
111 | $(window).load(resizeHeight);
112 | }
113 |
114 |
115 |
--------------------------------------------------------------------------------
/extras/html/search/all_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/all_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['background',['background',['../class_l_i_n___master.html#ac5bdc52e6924094e821cfc23ffb7344b',1,'LIN_Master']]],
4 | ['baudrate',['baudrate',['../class_l_i_n___master.html#a9a7b5c9604d002f1ca9214e9e0db4d31',1,'LIN_Master']]],
5 | ['begin',['begin',['../class_l_i_n___master.html#aed83f496028e02bf528d400f0a43a34c',1,'LIN_Master']]],
6 | ['bufrx',['bufRx',['../class_l_i_n___master.html#a190a766767fab1821783d85ba91ab3e7',1,'LIN_Master']]],
7 | ['buftx',['bufTx',['../class_l_i_n___master.html#ae0ffa16776d32ef81e3801a0526834cb',1,'LIN_Master']]]
8 | ];
9 |
--------------------------------------------------------------------------------
/extras/html/search/all_1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/all_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['checksum',['checksum',['../class_l_i_n___master.html#a7fc6731a40815396cabf732ae16b0796',1,'LIN_Master']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/all_2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/all_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['dataptr',['dataPtr',['../class_l_i_n___master.html#aa57d23aad8583a8a0c7e93ba995e3bbc',1,'LIN_Master']]],
4 | ['decoder_5ft',['decoder_t',['../_l_i_n__master_8h.html#addd910faf05c9e05b99a74296c256b5d',1,'LIN_master.h']]],
5 | ['defaultcallback',['defaultCallback',['../class_l_i_n___master.html#aa2fcef7c3c5153826b678e3769b2d2c9',1,'LIN_Master']]],
6 | ['dual_5flin_2eino',['dual_LIN.ino',['../dual___l_i_n_8ino.html',1,'']]],
7 | ['durationbreak',['durationBreak',['../class_l_i_n___master.html#a6032c445b26138423510da70f568c8ab',1,'LIN_Master']]],
8 | ['durationframe',['durationFrame',['../class_l_i_n___master.html#a2f98698c7cfd4ebdb320604606bffea2',1,'LIN_Master']]]
9 | ];
10 |
--------------------------------------------------------------------------------
/extras/html/search/all_3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/all_3.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['end',['end',['../class_l_i_n___master.html#a00fd4fce48f6237cea87825e937aa688',1,'LIN_Master']]],
4 | ['error',['error',['../class_l_i_n___master.html#a136305d6a96d707caa11698f9cc813a0',1,'LIN_Master']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/extras/html/search/all_4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/all_4.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['flagrxcomplete',['flagRxComplete',['../class_l_i_n___master.html#a551d6040e9de16538aa5340325af8a0a',1,'LIN_Master']]],
4 | ['flagtxcomplete',['flagTxComplete',['../class_l_i_n___master.html#aa36aa22315b364f7f0fecec6f37f2212',1,'LIN_Master']]],
5 | ['frametype',['frameType',['../class_l_i_n___master.html#ad21f2a01f28142ce4ec039f1da3f72aa',1,'LIN_Master']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/extras/html/search/all_5.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/all_5.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['handlerreceive',['handlerReceive',['../class_l_i_n___master.html#ab6bb1a6aeff905ec97ab0b82de76d528',1,'LIN_Master']]],
4 | ['handlersend',['handlerSend',['../class_l_i_n___master.html#ac71e26533db11256cffae3588dd94071',1,'LIN_Master']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/extras/html/search/all_6.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/all_7.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/all_7.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['multiple_20lin',['Multiple LIN',['../md__multiple__l_i_n.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/all_8.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/all_8.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['operation_20modes',['Operation Modes',['../md__operation__modes.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/all_9.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/all_9.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['protectid',['protectID',['../class_l_i_n___master.html#a82ff96ca4e2f2a2632419336cd5ed3df',1,'LIN_Master']]],
4 | ['pserial',['pSerial',['../class_l_i_n___master.html#a0fcdb86f5ff745116638731630e588a1',1,'LIN_Master']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/extras/html/search/all_a.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/all_a.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['receiveslaveresponse',['receiveSlaveResponse',['../class_l_i_n___master.html#ae1d1f965294aa35dbc722e7393a77315',1,'LIN_Master::receiveSlaveResponse(uint8_t id, uint8_t numData, void(*Rx_handler)(uint8_t, uint8_t *))'],['../class_l_i_n___master.html#af0fdc1f5516feafe02e03a44167383c4',1,'LIN_Master::receiveSlaveResponse(uint8_t id, uint8_t numData, uint8_t *data)']]],
4 | ['rx_5fhandler',['rx_handler',['../class_l_i_n___master.html#ae393334505b9c28d6a1fdedc4b5b3560',1,'LIN_Master']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/extras/html/search/all_b.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/all_b.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['sendmasterrequest',['sendMasterRequest',['../class_l_i_n___master.html#a4cf186b50edda679927471ef1c47efaf',1,'LIN_Master']]],
4 | ['state',['state',['../class_l_i_n___master.html#a7369d1273bb45d8d1cee372bb32a97df',1,'LIN_Master']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/extras/html/search/all_c.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/all_c.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['version',['version',['../class_l_i_n___master.html#ac9bf76b671f32f5f18c41585e7b06abe',1,'LIN_Master']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/all_d.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/all_d.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['wrapperdefaultcallback',['wrapperDefaultCallback',['../class_l_i_n___master.html#aec46720f74bc65b61f58520c6b75a7ab',1,'LIN_Master']]],
4 | ['wrapperreceive',['wrapperReceive',['../class_l_i_n___master.html#a93c6225aa9bcc2701b4d918d6be3ab85',1,'LIN_Master']]],
5 | ['wrappersend',['wrapperSend',['../class_l_i_n___master.html#a3da83c78312e160d6d74ad76ff4e276c',1,'LIN_Master']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/extras/html/search/classes_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/classes_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['lin_5fmaster',['LIN_Master',['../class_l_i_n___master.html',1,'']]],
4 | ['lin_5fmaster_5f0',['LIN_Master_0',['../class_l_i_n___master__0.html',1,'']]],
5 | ['lin_5fmaster_5f1',['LIN_Master_1',['../class_l_i_n___master__1.html',1,'']]],
6 | ['lin_5fmaster_5f2',['LIN_Master_2',['../class_l_i_n___master__2.html',1,'']]],
7 | ['lin_5fmaster_5f3',['LIN_Master_3',['../class_l_i_n___master__3.html',1,'']]]
8 | ];
9 |
--------------------------------------------------------------------------------
/extras/html/search/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/search/close.png
--------------------------------------------------------------------------------
/extras/html/search/defines_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/defines_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['lin_5fdebug_5flevel',['LIN_DEBUG_LEVEL',['../_l_i_n__master_8h.html#a0fbe1a3d7a57e4c454c5edb9c8d3b589',1,'LIN_master.h']]],
4 | ['lin_5fdebug_5fserial',['LIN_DEBUG_SERIAL',['../_l_i_n__master_8h.html#a623b94c96f1a4ce4f486b8fc8fe9eca3',1,'LIN_master.h']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/extras/html/search/enums_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/enums_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['lin_5ferror_5ft',['LIN_error_t',['../_l_i_n__master_8h.html#a6d33f951db594969c82d91e4ce793b82',1,'LIN_master.h']]],
4 | ['lin_5fframe_5ft',['LIN_frame_t',['../_l_i_n__master_8h.html#aacaac6776bc917200d73dd6879ae75c9',1,'LIN_master.h']]],
5 | ['lin_5fstatus_5ft',['LIN_status_t',['../_l_i_n__master_8h.html#a34ad22d0b15300d9309c806433a4fc4e',1,'LIN_master.h']]],
6 | ['lin_5fversion_5ft',['LIN_version_t',['../_l_i_n__master_8h.html#a427c734468913aa0f13d50a58117893b',1,'LIN_master.h']]]
7 | ];
8 |
--------------------------------------------------------------------------------
/extras/html/search/enumvalues_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/enumvalues_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['lin_5ferror_5fchk',['LIN_ERROR_CHK',['../_l_i_n__master_8h.html#a6d33f951db594969c82d91e4ce793b82aef44ca97d5ffb77a6481fed83b4e5985',1,'LIN_master.h']]],
4 | ['lin_5ferror_5fecho',['LIN_ERROR_ECHO',['../_l_i_n__master_8h.html#a6d33f951db594969c82d91e4ce793b82a1c0c655b966de71875c5478717ca14a2',1,'LIN_master.h']]],
5 | ['lin_5ferror_5fmisc',['LIN_ERROR_MISC',['../_l_i_n__master_8h.html#a6d33f951db594969c82d91e4ce793b82a3c7b058a398e8f04a617b9cf8375670f',1,'LIN_master.h']]],
6 | ['lin_5ferror_5fstate',['LIN_ERROR_STATE',['../_l_i_n__master_8h.html#a6d33f951db594969c82d91e4ce793b82a97ab0e3ea0591d39bc87226901d02631',1,'LIN_master.h']]],
7 | ['lin_5ferror_5ftimeout',['LIN_ERROR_TIMEOUT',['../_l_i_n__master_8h.html#a6d33f951db594969c82d91e4ce793b82a4ca746a3a0f8da2a50f333302d83f5be',1,'LIN_master.h']]],
8 | ['lin_5fmaster_5frequest',['LIN_MASTER_REQUEST',['../_l_i_n__master_8h.html#aacaac6776bc917200d73dd6879ae75c9a4fce02374593f5987c183b1c78cca358',1,'LIN_master.h']]],
9 | ['lin_5fslave_5fresponse',['LIN_SLAVE_RESPONSE',['../_l_i_n__master_8h.html#aacaac6776bc917200d73dd6879ae75c9a725438a2997419584635a330d5822004',1,'LIN_master.h']]],
10 | ['lin_5fstate_5fbreak',['LIN_STATE_BREAK',['../_l_i_n__master_8h.html#a34ad22d0b15300d9309c806433a4fc4ea15a306cd9878520342fbd26a4518625b',1,'LIN_master.h']]],
11 | ['lin_5fstate_5fframe',['LIN_STATE_FRAME',['../_l_i_n__master_8h.html#a34ad22d0b15300d9309c806433a4fc4ea58b8570ab5a7e878e09d05ff801f0ed6',1,'LIN_master.h']]],
12 | ['lin_5fstate_5fidle',['LIN_STATE_IDLE',['../_l_i_n__master_8h.html#a34ad22d0b15300d9309c806433a4fc4ea913fda3508d7a9ae23f417ebdc324ec9',1,'LIN_master.h']]],
13 | ['lin_5fstate_5foff',['LIN_STATE_OFF',['../_l_i_n__master_8h.html#a34ad22d0b15300d9309c806433a4fc4eae5e8d34cb75b59211410a4ac45675462',1,'LIN_master.h']]],
14 | ['lin_5fsuccess',['LIN_SUCCESS',['../_l_i_n__master_8h.html#a6d33f951db594969c82d91e4ce793b82a010afccb5aaad11212ae8dac6dfa8dba',1,'LIN_master.h']]],
15 | ['lin_5fv1',['LIN_V1',['../_l_i_n__master_8h.html#a427c734468913aa0f13d50a58117893ba18a7a808bc54a5e6f3f9a46ad75e195e',1,'LIN_master.h']]],
16 | ['lin_5fv2',['LIN_V2',['../_l_i_n__master_8h.html#a427c734468913aa0f13d50a58117893badaafb18f79967a0b12868b40cf345ed8',1,'LIN_master.h']]]
17 | ];
18 |
--------------------------------------------------------------------------------
/extras/html/search/files_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/files_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['dual_5flin_2eino',['dual_LIN.ino',['../dual___l_i_n_8ino.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/files_1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/files_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['lin_5fbackground_2eino',['LIN_background.ino',['../_l_i_n__background_8ino.html',1,'']]],
4 | ['lin_5fblocking_2eino',['LIN_blocking.ino',['../_l_i_n__blocking_8ino.html',1,'']]],
5 | ['lin_5fcallback_2eino',['LIN_callback.ino',['../_l_i_n__callback_8ino.html',1,'']]],
6 | ['lin_5fmaster_2ecpp',['LIN_master.cpp',['../_l_i_n__master_8cpp.html',1,'']]],
7 | ['lin_5fmaster_2eh',['LIN_master.h',['../_l_i_n__master_8h.html',1,'']]],
8 | ['lin_5fmaster0_2ecpp',['LIN_master0.cpp',['../_l_i_n__master0_8cpp.html',1,'']]],
9 | ['lin_5fmaster0_2eh',['LIN_master0.h',['../_l_i_n__master0_8h.html',1,'']]],
10 | ['lin_5fmaster1_2ecpp',['LIN_master1.cpp',['../_l_i_n__master1_8cpp.html',1,'']]],
11 | ['lin_5fmaster1_2eh',['LIN_master1.h',['../_l_i_n__master1_8h.html',1,'']]],
12 | ['lin_5fmaster2_2ecpp',['LIN_master2.cpp',['../_l_i_n__master2_8cpp.html',1,'']]],
13 | ['lin_5fmaster2_2eh',['LIN_master2.h',['../_l_i_n__master2_8h.html',1,'']]],
14 | ['lin_5fmaster3_2ecpp',['LIN_master3.cpp',['../_l_i_n__master3_8cpp.html',1,'']]],
15 | ['lin_5fmaster3_2eh',['LIN_master3.h',['../_l_i_n__master3_8h.html',1,'']]]
16 | ];
17 |
--------------------------------------------------------------------------------
/extras/html/search/functions_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/functions_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['begin',['begin',['../class_l_i_n___master.html#aed83f496028e02bf528d400f0a43a34c',1,'LIN_Master']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/functions_1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/functions_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['checksum',['checksum',['../class_l_i_n___master.html#a7fc6731a40815396cabf732ae16b0796',1,'LIN_Master']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/functions_2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/functions_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['defaultcallback',['defaultCallback',['../class_l_i_n___master.html#aa2fcef7c3c5153826b678e3769b2d2c9',1,'LIN_Master']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/functions_3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/functions_3.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['end',['end',['../class_l_i_n___master.html#a00fd4fce48f6237cea87825e937aa688',1,'LIN_Master']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/functions_4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/functions_4.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['handlerreceive',['handlerReceive',['../class_l_i_n___master.html#ab6bb1a6aeff905ec97ab0b82de76d528',1,'LIN_Master']]],
4 | ['handlersend',['handlerSend',['../class_l_i_n___master.html#ac71e26533db11256cffae3588dd94071',1,'LIN_Master']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/extras/html/search/functions_5.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/functions_5.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['lin_5fmaster0_5fcopy',['LIN_master0_copy',['../_l_i_n__master0_8cpp.html#ae0896b8a1edd32b42f1fc88e54f0bab1',1,'LIN_master0_copy(uint8_t numData, uint8_t *data): LIN_master0.cpp'],['../_l_i_n__master0_8h.html#ae0896b8a1edd32b42f1fc88e54f0bab1',1,'LIN_master0_copy(uint8_t numData, uint8_t *data): LIN_master0.cpp']]],
4 | ['lin_5fmaster0_5freceive',['LIN_master0_receive',['../_l_i_n__master0_8cpp.html#a7cdad4685cb5cc388e70f05435399dd0',1,'LIN_master0_receive(void): LIN_master0.cpp'],['../_l_i_n__master0_8h.html#a7cdad4685cb5cc388e70f05435399dd0',1,'LIN_master0_receive(void): LIN_master0.cpp']]],
5 | ['lin_5fmaster0_5fsend',['LIN_master0_send',['../_l_i_n__master0_8cpp.html#afb9f8cffb98d27e814ba538ceecc08cb',1,'LIN_master0_send(void): LIN_master0.cpp'],['../_l_i_n__master0_8h.html#afb9f8cffb98d27e814ba538ceecc08cb',1,'LIN_master0_send(void): LIN_master0.cpp']]],
6 | ['lin_5fmaster1_5fcopy',['LIN_master1_copy',['../_l_i_n__master1_8cpp.html#a9ef046b6c52ebc36a6f9f039f673ac85',1,'LIN_master1_copy(uint8_t numData, uint8_t *data): LIN_master1.cpp'],['../_l_i_n__master1_8h.html#a9ef046b6c52ebc36a6f9f039f673ac85',1,'LIN_master1_copy(uint8_t numData, uint8_t *data): LIN_master1.cpp']]],
7 | ['lin_5fmaster1_5freceive',['LIN_master1_receive',['../_l_i_n__master1_8cpp.html#a3e25c19e01e41ac4fabb29a7b7af8cd5',1,'LIN_master1_receive(void): LIN_master1.cpp'],['../_l_i_n__master1_8h.html#a3e25c19e01e41ac4fabb29a7b7af8cd5',1,'LIN_master1_receive(void): LIN_master1.cpp']]],
8 | ['lin_5fmaster1_5fsend',['LIN_master1_send',['../_l_i_n__master1_8cpp.html#abe737fa0dd0f58a2e9a5db7993abecd0',1,'LIN_master1_send(void): LIN_master1.cpp'],['../_l_i_n__master1_8h.html#abe737fa0dd0f58a2e9a5db7993abecd0',1,'LIN_master1_send(void): LIN_master1.cpp']]],
9 | ['lin_5fmaster2_5fcopy',['LIN_master2_copy',['../_l_i_n__master2_8cpp.html#a5772db910b0d8b9d93dcee85211b5a4e',1,'LIN_master2_copy(uint8_t numData, uint8_t *data): LIN_master2.cpp'],['../_l_i_n__master2_8h.html#a5772db910b0d8b9d93dcee85211b5a4e',1,'LIN_master2_copy(uint8_t numData, uint8_t *data): LIN_master2.cpp']]],
10 | ['lin_5fmaster2_5freceive',['LIN_master2_receive',['../_l_i_n__master2_8cpp.html#a0f1e230b8bc4d2014b846fae97b6e012',1,'LIN_master2_receive(void): LIN_master2.cpp'],['../_l_i_n__master2_8h.html#a0f1e230b8bc4d2014b846fae97b6e012',1,'LIN_master2_receive(void): LIN_master2.cpp']]],
11 | ['lin_5fmaster2_5fsend',['LIN_master2_send',['../_l_i_n__master2_8cpp.html#a8a61f3290d3f816cd1054ffe763b95a6',1,'LIN_master2_send(void): LIN_master2.cpp'],['../_l_i_n__master2_8h.html#a8a61f3290d3f816cd1054ffe763b95a6',1,'LIN_master2_send(void): LIN_master2.cpp']]],
12 | ['lin_5fmaster3_5fcopy',['LIN_master3_copy',['../_l_i_n__master3_8cpp.html#a739aec5018522aa94a63fcaab0cbbd35',1,'LIN_master3_copy(uint8_t numData, uint8_t *data): LIN_master3.cpp'],['../_l_i_n__master3_8h.html#a739aec5018522aa94a63fcaab0cbbd35',1,'LIN_master3_copy(uint8_t numData, uint8_t *data): LIN_master3.cpp']]],
13 | ['lin_5fmaster3_5freceive',['LIN_master3_receive',['../_l_i_n__master3_8cpp.html#a91c2a1f0f8f4b3c0e2cb690b66fb998c',1,'LIN_master3_receive(void): LIN_master3.cpp'],['../_l_i_n__master3_8h.html#a91c2a1f0f8f4b3c0e2cb690b66fb998c',1,'LIN_master3_receive(void): LIN_master3.cpp']]],
14 | ['lin_5fmaster3_5fsend',['LIN_master3_send',['../_l_i_n__master3_8cpp.html#acca9ceb9aacbde72e51f5a98aaf90f9f',1,'LIN_master3_send(void): LIN_master3.cpp'],['../_l_i_n__master3_8h.html#acca9ceb9aacbde72e51f5a98aaf90f9f',1,'LIN_master3_send(void): LIN_master3.cpp']]],
15 | ['lin_5fmaster_5f0',['LIN_Master_0',['../class_l_i_n___master__0.html#a5090c80837e719bf02bbdcd733452539',1,'LIN_Master_0']]],
16 | ['lin_5fmaster_5f1',['LIN_Master_1',['../class_l_i_n___master__1.html#aa77c5bc5b170c5183ccda5a7fce3414c',1,'LIN_Master_1']]],
17 | ['lin_5fmaster_5f2',['LIN_Master_2',['../class_l_i_n___master__2.html#a017431162425068a7172b66837da983e',1,'LIN_Master_2']]],
18 | ['lin_5fmaster_5f3',['LIN_Master_3',['../class_l_i_n___master__3.html#a400627c49e6cbb787beb4303b69f6883',1,'LIN_Master_3']]]
19 | ];
20 |
--------------------------------------------------------------------------------
/extras/html/search/functions_6.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/functions_6.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['protectid',['protectID',['../class_l_i_n___master.html#a82ff96ca4e2f2a2632419336cd5ed3df',1,'LIN_Master']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/functions_7.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/functions_7.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['receiveslaveresponse',['receiveSlaveResponse',['../class_l_i_n___master.html#ae1d1f965294aa35dbc722e7393a77315',1,'LIN_Master::receiveSlaveResponse(uint8_t id, uint8_t numData, void(*Rx_handler)(uint8_t, uint8_t *))'],['../class_l_i_n___master.html#af0fdc1f5516feafe02e03a44167383c4',1,'LIN_Master::receiveSlaveResponse(uint8_t id, uint8_t numData, uint8_t *data)']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/functions_8.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/functions_8.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['sendmasterrequest',['sendMasterRequest',['../class_l_i_n___master.html#a4cf186b50edda679927471ef1c47efaf',1,'LIN_Master']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/mag_sel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/search/mag_sel.png
--------------------------------------------------------------------------------
/extras/html/search/nomatches.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/extras/html/search/pages_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/pages_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['lin_20master_20node_20emulation',['LIN Master Node Emulation',['../index.html',1,'']]],
4 | ['library_20manager',['Library Manager',['../md__library__manager.html',1,'']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/extras/html/search/pages_1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/pages_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['multiple_20lin',['Multiple LIN',['../md__multiple__l_i_n.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/pages_2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/pages_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['operation_20modes',['Operation Modes',['../md__operation__modes.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/search_l.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/search/search_l.png
--------------------------------------------------------------------------------
/extras/html/search/search_m.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/search/search_m.png
--------------------------------------------------------------------------------
/extras/html/search/search_r.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/search/search_r.png
--------------------------------------------------------------------------------
/extras/html/search/searchdata.js:
--------------------------------------------------------------------------------
1 | var indexSectionsWithContent =
2 | {
3 | 0: "bcdefhlmoprsvw",
4 | 1: "l",
5 | 2: "dl",
6 | 3: "bcdehlprs",
7 | 4: "bdeflprsvw",
8 | 5: "d",
9 | 6: "l",
10 | 7: "l",
11 | 8: "l",
12 | 9: "lmo"
13 | };
14 |
15 | var indexSectionNames =
16 | {
17 | 0: "all",
18 | 1: "classes",
19 | 2: "files",
20 | 3: "functions",
21 | 4: "variables",
22 | 5: "typedefs",
23 | 6: "enums",
24 | 7: "enumvalues",
25 | 8: "defines",
26 | 9: "pages"
27 | };
28 |
29 | var indexSectionLabels =
30 | {
31 | 0: "All",
32 | 1: "Data Structures",
33 | 2: "Files",
34 | 3: "Functions",
35 | 4: "Variables",
36 | 5: "Typedefs",
37 | 6: "Enumerations",
38 | 7: "Enumerator",
39 | 8: "Macros",
40 | 9: "Pages"
41 | };
42 |
43 |
--------------------------------------------------------------------------------
/extras/html/search/typedefs_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/typedefs_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['decoder_5ft',['decoder_t',['../_l_i_n__master_8h.html#addd910faf05c9e05b99a74296c256b5d',1,'LIN_master.h']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/variables_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/variables_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['background',['background',['../class_l_i_n___master.html#ac5bdc52e6924094e821cfc23ffb7344b',1,'LIN_Master']]],
4 | ['baudrate',['baudrate',['../class_l_i_n___master.html#a9a7b5c9604d002f1ca9214e9e0db4d31',1,'LIN_Master']]],
5 | ['bufrx',['bufRx',['../class_l_i_n___master.html#a190a766767fab1821783d85ba91ab3e7',1,'LIN_Master']]],
6 | ['buftx',['bufTx',['../class_l_i_n___master.html#ae0ffa16776d32ef81e3801a0526834cb',1,'LIN_Master']]]
7 | ];
8 |
--------------------------------------------------------------------------------
/extras/html/search/variables_1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/variables_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['dataptr',['dataPtr',['../class_l_i_n___master.html#aa57d23aad8583a8a0c7e93ba995e3bbc',1,'LIN_Master']]],
4 | ['durationbreak',['durationBreak',['../class_l_i_n___master.html#a6032c445b26138423510da70f568c8ab',1,'LIN_Master']]],
5 | ['durationframe',['durationFrame',['../class_l_i_n___master.html#a2f98698c7cfd4ebdb320604606bffea2',1,'LIN_Master']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/extras/html/search/variables_2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/variables_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['error',['error',['../class_l_i_n___master.html#a136305d6a96d707caa11698f9cc813a0',1,'LIN_Master']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/variables_3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/variables_3.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['flagrxcomplete',['flagRxComplete',['../class_l_i_n___master.html#a551d6040e9de16538aa5340325af8a0a',1,'LIN_Master']]],
4 | ['flagtxcomplete',['flagTxComplete',['../class_l_i_n___master.html#aa36aa22315b364f7f0fecec6f37f2212',1,'LIN_Master']]],
5 | ['frametype',['frameType',['../class_l_i_n___master.html#ad21f2a01f28142ce4ec039f1da3f72aa',1,'LIN_Master']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/extras/html/search/variables_4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/variables_4.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['lenrx',['lenRx',['../class_l_i_n___master.html#ab5068b1197d717b16d63d36e6ed59f76',1,'LIN_Master']]],
4 | ['lentx',['lenTx',['../class_l_i_n___master.html#a548cb1ad18cf4c509de0217dba9aa044',1,'LIN_Master']]],
5 | ['lin_5fmaster0',['LIN_master0',['../_l_i_n__master0_8cpp.html#ac39aac4c85ad44c2295a960af1887314',1,'LIN_master0(): LIN_master0.cpp'],['../_l_i_n__master0_8h.html#ac39aac4c85ad44c2295a960af1887314',1,'LIN_master0(): LIN_master0.cpp']]],
6 | ['lin_5fmaster1',['LIN_master1',['../_l_i_n__master1_8cpp.html#a8f49bda42871b7605cacb83dafd0e4ca',1,'LIN_master1(): LIN_master1.cpp'],['../_l_i_n__master1_8h.html#a8f49bda42871b7605cacb83dafd0e4ca',1,'LIN_master1(): LIN_master1.cpp']]],
7 | ['lin_5fmaster2',['LIN_master2',['../_l_i_n__master2_8cpp.html#ae06038c2dba5ba500d220e830d80cd5b',1,'LIN_master2(): LIN_master2.cpp'],['../_l_i_n__master2_8h.html#ae06038c2dba5ba500d220e830d80cd5b',1,'LIN_master2(): LIN_master2.cpp']]],
8 | ['lin_5fmaster3',['LIN_master3',['../_l_i_n__master3_8cpp.html#a2cfb68ff1972539800fa2e61a988ded4',1,'LIN_master3(): LIN_master3.cpp'],['../_l_i_n__master3_8h.html#a2cfb68ff1972539800fa2e61a988ded4',1,'LIN_master3(): LIN_master3.cpp']]]
9 | ];
10 |
--------------------------------------------------------------------------------
/extras/html/search/variables_5.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/variables_5.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['pserial',['pSerial',['../class_l_i_n___master.html#a0fcdb86f5ff745116638731630e588a1',1,'LIN_Master']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/variables_6.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/variables_6.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['rx_5fhandler',['rx_handler',['../class_l_i_n___master.html#ae393334505b9c28d6a1fdedc4b5b3560',1,'LIN_Master']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/variables_7.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/variables_7.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['state',['state',['../class_l_i_n___master.html#a7369d1273bb45d8d1cee372bb32a97df',1,'LIN_Master']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/variables_8.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/variables_8.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['version',['version',['../class_l_i_n___master.html#ac9bf76b671f32f5f18c41585e7b06abe',1,'LIN_Master']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/extras/html/search/variables_9.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/extras/html/search/variables_9.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['wrapperdefaultcallback',['wrapperDefaultCallback',['../class_l_i_n___master.html#aec46720f74bc65b61f58520c6b75a7ab',1,'LIN_Master']]],
4 | ['wrapperreceive',['wrapperReceive',['../class_l_i_n___master.html#a93c6225aa9bcc2701b4d918d6be3ab85',1,'LIN_Master']]],
5 | ['wrappersend',['wrapperSend',['../class_l_i_n___master.html#a3da83c78312e160d6d74ad76ff4e276c',1,'LIN_Master']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/extras/html/splitbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/splitbar.png
--------------------------------------------------------------------------------
/extras/html/sync_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/sync_off.png
--------------------------------------------------------------------------------
/extras/html/sync_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/sync_on.png
--------------------------------------------------------------------------------
/extras/html/tab_a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/tab_a.png
--------------------------------------------------------------------------------
/extras/html/tab_b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/tab_b.png
--------------------------------------------------------------------------------
/extras/html/tab_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/tab_h.png
--------------------------------------------------------------------------------
/extras/html/tab_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/html/tab_s.png
--------------------------------------------------------------------------------
/extras/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Redirecting to reference...
4 |
5 |
6 |
7 | Redirecting to reference... Link
8 |
9 |
10 |
--------------------------------------------------------------------------------
/extras/logo_LIN.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gicking/LIN_master_Arduino/8aa039a9a3a0b898e844f1a5e5f13defbf17e197/extras/logo_LIN.png
--------------------------------------------------------------------------------
/keywords.txt:
--------------------------------------------------------------------------------
1 | ###############################################
2 | # Syntax coloring Map For LIN Master library
3 | ###############################################
4 |
5 | ###################################
6 | # Classes and Datatypes (KEYWORD1)
7 | ###################################
8 |
9 | # instances
10 | LIN_master0 KEYWORD1
11 | LIN_master1 KEYWORD1
12 | LIN_master2 KEYWORD1
13 | LIN_master3 KEYWORD1
14 |
15 |
16 | ###################################
17 | # Methods and Functions (KEYWORD2)
18 | ###################################
19 |
20 | # class variables
21 | baudrate KEYWORD2
22 | version KEYWORD2
23 | background KEYWORD2
24 | state KEYWORD2
25 | error KEYWORD2
26 |
27 |
28 | # class methods
29 | begin KEYWORD2
30 | end KEYWORD2
31 | sendMasterRequest KEYWORD2
32 | receiveSlaveResponse KEYWORD2
33 | receiveFrame KEYWORD2
34 | getState KEYWORD2
35 |
36 |
37 | ###################################
38 | # Constants (LITERAL1)
39 | ###################################
40 |
41 | LIN_V1 LITERAL1
42 | LIN_V2 LITERAL1
43 |
44 | LIN_MASTER_REQUEST LITERAL1
45 | LIN_SLAVE_RESPONSE LITERAL1
46 |
47 | LIN_SUCCESS LITERAL1
48 | LIN_ERROR_STATE LITERAL1
49 | LIN_ERROR_ECHO LITERAL1
50 | LIN_ERROR_TIMEOUT LITERAL1
51 | LIN_ERROR_CHK LITERAL1
52 | LIN_ERROR_MISC LITERAL1
53 |
54 | LIN_STATE_OFF LITERAL1
55 | LIN_STATE_IDLE LITERAL1
56 | LIN_STATE_BREAK LITERAL1
57 | LIN_STATE_FRAME LITERAL1
58 |
59 | ##################### END #####################
60 |
--------------------------------------------------------------------------------
/library.properties:
--------------------------------------------------------------------------------
1 | name=LIN master emulation with background operation
2 | version=1.7
3 | author=Georg Icking-Konert
4 | maintainer=Georg Icking-Konert (gicking)
5 | sentence=LIN master node emulation with preemptive background operation
6 | paragraph=Provide a class to emulate a Local Interconnect Network (LIN) master node with preemptive background operation
7 | category=Communication
8 | url=https://github.com/gicking/LIN_master_Arduino
9 | architectures=avr,sam,esp32,esp8266
10 | depends=Task Scheduler (>=1.3.0)
11 |
--------------------------------------------------------------------------------
/src/LIN_master0.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | \file LIN_master0.cpp
3 | \brief LIN master emulation library for Serial
4 | \details This library provides a master node emulation for a LIN bus via Serial.
5 | For an explanation of the LIN bus and protocol e.g. see https://en.wikipedia.org/wiki/Local_Interconnect_Network
6 | \author Georg Icking-Konert
7 | */
8 |
9 | // include files
10 | #include "Arduino.h"
11 | #include "LIN_master0.h"
12 |
13 | // only compile if controller supports Serial
14 | #if defined(HAVE_HWSERIAL0) || defined(SERIAL_PORT_HARDWARE) || (SOC_UART_NUM > 0)
15 |
16 |
17 | /// instance of LIN master via Serial
18 | LIN_Master_0 LIN_master0;
19 |
20 |
21 | /**
22 | \brief Constructor for LIN node class for Serial
23 | \details Constructor for LIN node class for Serial. Store pointers used serial interface.
24 | */
25 | LIN_Master_0::LIN_Master_0()
26 | {
27 | // store used serial interface
28 | pSerial = &Serial; // store pointer to used serial
29 | #if defined(__AVR__) // on AVR also store "double baudrate" control register (for sync break)
30 | UCSRA = &UCSR0A;
31 | #endif
32 |
33 | // store callback functions for task scheduler
34 | wrapperSend = LIN_master0_send;
35 | wrapperReceive = LIN_master0_receive;
36 | wrapperDefaultCallback = LIN_master0_copy;
37 |
38 | // for debug store class name for convenience
39 | #if (LIN_DEBUG_LEVEL != 0)
40 | sprintf(serialName, "LIN_Master_0");
41 | #endif
42 |
43 | } // LIN_Master_0::LIN_Master_0()
44 |
45 |
46 |
47 | /**
48 | \brief Wrapper for LIN_master0 transmission handler
49 | \details Wrapper for LIN_master0 transmission handler. This is required for
50 | task scheduler access to non-static member functions.
51 | */
52 | void LIN_master0_send(void)
53 | {
54 | // call class method
55 | LIN_master0.handlerSend();
56 |
57 | } // LIN_master0_send
58 |
59 |
60 |
61 | /**
62 | \brief Wrapper for LIN_master0 reception handler
63 | \details Wrapper for LIN_master0 reception handler. This is required for
64 | task scheduler access to non-static member functions.
65 | */
66 | void LIN_master0_receive(void)
67 | {
68 | // call class method
69 | LIN_master0.handlerReceive();
70 |
71 | } // LIN_master0_receive
72 |
73 |
74 |
75 | /**
76 | \brief Wrapper for LIN_master0 default receive callback function
77 | \details Wrapper for LIN_master0 default receive callback function for receiveSlaveResponse().
78 | Just copies data to a specified buffer.
79 | */
80 | void LIN_master0_copy(uint8_t numData, uint8_t *data)
81 | {
82 | // copy received data to user buffer
83 | LIN_master0.defaultCallback(numData, data);
84 |
85 | } // LIN_master0_copy
86 |
87 | #endif // HAVE_HWSERIAL0 || SERIAL_PORT_HARDWARE
88 |
--------------------------------------------------------------------------------
/src/LIN_master0.h:
--------------------------------------------------------------------------------
1 | /**
2 | \file LIN_master0.h
3 | \brief LIN master emulation library for Serial
4 | \details This library provides a master node emulation for a LIN bus via Serial.
5 | For an explanation of the LIN bus and protocol e.g. see https://en.wikipedia.org/wiki/Local_Interconnect_Network
6 | \author Georg Icking-Konert
7 | */
8 |
9 | /*-----------------------------------------------------------------------------
10 | MODULE DEFINITION FOR MULTIPLE INCLUSION
11 | -----------------------------------------------------------------------------*/
12 | #ifndef _LIN_MASTER0_H_
13 | #define _LIN_MASTER0_H_
14 |
15 |
16 | /*-----------------------------------------------------------------------------
17 | INCLUDE FILES
18 | -----------------------------------------------------------------------------*/
19 |
20 | // include required libraries
21 | #include "Arduino.h"
22 | #include "LIN_master.h"
23 |
24 |
25 | // only compile if controller supports Serial
26 | #if defined(HAVE_HWSERIAL0) || defined(SERIAL_PORT_HARDWARE) || (SOC_UART_NUM > 0)
27 |
28 |
29 | /*-----------------------------------------------------------------------------
30 | GLOBAL CLASS
31 | -----------------------------------------------------------------------------*/
32 | /**
33 | \brief LIN master node class
34 |
35 | \details LIN master node class. For background operation use wrapper functions.
36 | */
37 | class LIN_Master_0 : public LIN_Master
38 | {
39 | public:
40 |
41 | // public methods
42 | LIN_Master_0(); //!< class constructor
43 | };
44 |
45 | // external reference to LIN_master0
46 | extern LIN_Master_0 LIN_master0;
47 |
48 | /// Wrapper for LIN_master0 transmission handler
49 | void LIN_master0_send(void);
50 |
51 | /// Wrapper for LIN_master0 reception handler
52 | void LIN_master0_receive(void);
53 |
54 | /// Wrapper for LIN_master0 default receive callback function
55 | void LIN_master0_copy(uint8_t numData, uint8_t *data);
56 |
57 | #endif // HAVE_HWSERIAL0 || SERIAL_PORT_HARDWARE
58 |
59 | /*-----------------------------------------------------------------------------
60 | END OF MODULE DEFINITION FOR MULTIPLE INLUSION
61 | -----------------------------------------------------------------------------*/
62 | #endif // _LIN_MASTER0_H_
63 |
--------------------------------------------------------------------------------
/src/LIN_master1.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | \file LIN_master1.cpp
3 | \brief LIN master emulation library for Serial1
4 | \details This library provides a master node emulation for a LIN bus via Serial1.
5 | For an explanation of the LIN bus and protocol e.g. see https://en.wikipedia.org/wiki/Local_Interconnect_Network
6 | \author Georg Icking-Konert
7 | */
8 |
9 | // include files
10 | #include "Arduino.h"
11 | #include "LIN_master1.h"
12 |
13 | // only compile if controller supports Serial1
14 | #if defined(HAVE_HWSERIAL1) || defined(SERIAL_PORT_HARDWARE1) || (SOC_UART_NUM > 1)
15 |
16 |
17 | /// instance of LIN master via Serial1
18 | LIN_Master_1 LIN_master1;
19 |
20 |
21 | /**
22 | \brief Constructor for LIN node class for Serial1
23 | \details Constructor for LIN node class for Serial1. Store pointers used serial interface.
24 | */
25 | LIN_Master_1::LIN_Master_1()
26 | {
27 | // store used serial interface
28 | pSerial = &Serial1; // store pointer to used serial
29 | #if defined(__AVR__) // on AVR also store "double baudrate" control register (for sync break)
30 | UCSRA = &UCSR1A;
31 | #endif
32 |
33 | // store callback functions for task scheduler
34 | wrapperSend = LIN_master1_send;
35 | wrapperReceive = LIN_master1_receive;
36 | wrapperDefaultCallback = LIN_master1_copy;
37 |
38 | // for debug store class name for convenience
39 | #if (LIN_DEBUG_LEVEL != 0)
40 | sprintf(serialName, "LIN_Master_1");
41 | #endif
42 |
43 | } // LIN_Master_1::LIN_Master_1()
44 |
45 |
46 |
47 | /**
48 | \brief Wrapper for LIN_master1 transmission handler
49 | \details Wrapper for LIN_master1 transmission handler. This is required for
50 | task scheduler access to non-static member functions.
51 | */
52 | void LIN_master1_send(void)
53 | {
54 | // call class method
55 | LIN_master1.handlerSend();
56 |
57 | } // LIN_master1_send
58 |
59 |
60 |
61 | /**
62 | \brief Wrapper for LIN_master1 reception handler
63 | \details Wrapper for LIN_master1 reception handler. This is required for
64 | task scheduler access to non-static member functions.
65 | */
66 | void LIN_master1_receive(void)
67 | {
68 | // call class method
69 | LIN_master1.handlerReceive();
70 |
71 | } // LIN_master1_receive
72 |
73 |
74 |
75 | /**
76 | \brief Wrapper for LIN_master1 default receive callback function
77 | \details Wrapper for LIN_master1 default receive callback function for receiveSlaveResponse().
78 | Just copies data to a specified buffer.
79 | */
80 | void LIN_master1_copy(uint8_t numData, uint8_t *data)
81 | {
82 | // copy received data to user buffer
83 | LIN_master1.defaultCallback(numData, data);
84 |
85 | } // LIN_master1_copy
86 |
87 | #endif // HAVE_HWSERIAL1 || SERIAL_PORT_HARDWARE1
88 |
--------------------------------------------------------------------------------
/src/LIN_master1.h:
--------------------------------------------------------------------------------
1 | /**
2 | \file LIN_master1.h
3 | \brief LIN master emulation library for Serial1
4 | \details This library provides a master node emulation for a LIN bus via Serial1.
5 | For an explanation of the LIN bus and protocol e.g. see https://en.wikipedia.org/wiki/Local_Interconnect_Network
6 | \author Georg Icking-Konert
7 | */
8 |
9 | /*-----------------------------------------------------------------------------
10 | MODULE DEFINITION FOR MULTIPLE INCLUSION
11 | -----------------------------------------------------------------------------*/
12 | #ifndef _LIN_MASTER1_H_
13 | #define _LIN_MASTER1_H_
14 |
15 |
16 | /*-----------------------------------------------------------------------------
17 | INCLUDE FILES
18 | -----------------------------------------------------------------------------*/
19 |
20 | // include required libraries
21 | #include "Arduino.h"
22 | #include "LIN_master.h"
23 |
24 |
25 | // only compile if controller supports Serial1
26 | #if defined(HAVE_HWSERIAL1) || defined(SERIAL_PORT_HARDWARE1) || (SOC_UART_NUM > 1)
27 |
28 | /*-----------------------------------------------------------------------------
29 | GLOBAL CLASS
30 | -----------------------------------------------------------------------------*/
31 | /**
32 | \brief LIN master node class
33 |
34 | \details LIN master node class. For background operation use wrapper functions.
35 | */
36 | class LIN_Master_1 : public LIN_Master
37 | {
38 | public:
39 |
40 | // public methods
41 | LIN_Master_1(); //!< class constructor
42 | };
43 |
44 | // external reference to LIN_master1
45 | extern LIN_Master_1 LIN_master1;
46 |
47 | /// Wrapper for LIN_master1 transmission handler
48 | void LIN_master1_send(void);
49 |
50 | /// Wrapper for LIN_master1 reception handler
51 | void LIN_master1_receive(void);
52 |
53 | /// Wrapper for LIN_master1 default receive callback function
54 | void LIN_master1_copy(uint8_t numData, uint8_t *data);
55 |
56 | #endif // HAVE_HWSERIAL1 || SERIAL_PORT_HARDWARE1
57 |
58 | /*-----------------------------------------------------------------------------
59 | END OF MODULE DEFINITION FOR MULTIPLE INLUSION
60 | -----------------------------------------------------------------------------*/
61 | #endif // _LIN_MASTER1_H_
62 |
--------------------------------------------------------------------------------
/src/LIN_master2.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | \file LIN_master2.cpp
3 | \brief LIN master emulation library for Serial2
4 | \details This library provides a master node emulation for a LIN bus via Serial2.
5 | For an explanation of the LIN bus and protocol e.g. see https://en.wikipedia.org/wiki/Local_Interconnect_Network
6 | \author Georg Icking-Konert
7 | */
8 |
9 | // include files
10 | #include "Arduino.h"
11 | #include "LIN_master2.h"
12 |
13 | // only compile if controller supports Serial2
14 | #if defined(HAVE_HWSERIAL2) || defined(SERIAL_PORT_HARDWARE2) || (SOC_UART_NUM > 2)
15 |
16 |
17 | /// instance of LIN master via Serial2
18 | LIN_Master_2 LIN_master2;
19 |
20 |
21 | /**
22 | \brief Constructor for LIN node class for Serial2
23 | \details Constructor for LIN node class for Serial2. Store pointers used serial interface.
24 | */
25 | LIN_Master_2::LIN_Master_2()
26 | {
27 | // store used serial interface
28 | pSerial = &Serial2; // store pointer to used serial
29 | #if defined(__AVR__) // on AVR also store "double baudrate" control register (for sync break)
30 | UCSRA = &UCSR2A;
31 | #endif
32 |
33 | // store callback functions for task scheduler
34 | wrapperSend = LIN_master2_send;
35 | wrapperReceive = LIN_master2_receive;
36 | wrapperDefaultCallback = LIN_master2_copy;
37 |
38 | // for debug store class name for convenience
39 | #if (LIN_DEBUG_LEVEL != 0)
40 | sprintf(serialName, "LIN_Master_2");
41 | #endif
42 |
43 | } // LIN_Master_2::LIN_Master_2()
44 |
45 |
46 |
47 | /**
48 | \brief Wrapper for LIN_master2 transmission handler
49 | \details Wrapper for LIN_master2 transmission handler. This is required for
50 | task scheduler access to non-static member functions.
51 | */
52 | void LIN_master2_send(void)
53 | {
54 | // call class method
55 | LIN_master2.handlerSend();
56 |
57 | } // LIN_master2_send
58 |
59 |
60 |
61 | /**
62 | \brief Wrapper for LIN_master2 reception handler
63 | \details Wrapper for LIN_master2 reception handler. This is required for
64 | task scheduler access to non-static member functions.
65 | */
66 | void LIN_master2_receive(void)
67 | {
68 | // call class method
69 | LIN_master2.handlerReceive();
70 |
71 | } // LIN_master2_receive
72 |
73 |
74 |
75 | /**
76 | \brief Wrapper for LIN_master2 default receive callback function
77 | \details Wrapper for LIN_master2 default receive callback function for receiveSlaveResponse().
78 | Just copies data to a specified buffer.
79 | */
80 | void LIN_master2_copy(uint8_t numData, uint8_t *data)
81 | {
82 | // copy received data to user buffer
83 | LIN_master2.defaultCallback(numData, data);
84 |
85 | } // LIN_master2_copy
86 |
87 | #endif // HAVE_HWSERIAL2 || SERIAL_PORT_HARDWARE2
88 |
--------------------------------------------------------------------------------
/src/LIN_master2.h:
--------------------------------------------------------------------------------
1 | /**
2 | \file LIN_master2.h
3 | \brief LIN master emulation library for Serial2
4 | \details This library provides a master node emulation for a LIN bus via Serial2.
5 | For an explanation of the LIN bus and protocol e.g. see https://en.wikipedia.org/wiki/Local_Interconnect_Network
6 | \author Georg Icking-Konert
7 | */
8 |
9 | /*-----------------------------------------------------------------------------
10 | MODULE DEFINITION FOR MULTIPLE INCLUSION
11 | -----------------------------------------------------------------------------*/
12 | #ifndef _LIN_MASTER2_H_
13 | #define _LIN_MASTER2_H_
14 |
15 |
16 | /*-----------------------------------------------------------------------------
17 | INCLUDE FILES
18 | -----------------------------------------------------------------------------*/
19 |
20 | // include required libraries
21 | #include "Arduino.h"
22 | #include "LIN_master.h"
23 |
24 |
25 | // only compile if controller supports Serial2
26 | #if defined(HAVE_HWSERIAL2) || defined(SERIAL_PORT_HARDWARE2) || (SOC_UART_NUM > 2)
27 |
28 |
29 | /*-----------------------------------------------------------------------------
30 | GLOBAL CLASS
31 | -----------------------------------------------------------------------------*/
32 | /**
33 | \brief LIN master node class
34 |
35 | \details LIN master node class. For background operation use wrapper functions.
36 | */
37 | class LIN_Master_2 : public LIN_Master
38 | {
39 | public:
40 |
41 | // public methods
42 | LIN_Master_2(); //!< class constructor
43 | };
44 |
45 | // external reference to LIN_master2
46 | extern LIN_Master_2 LIN_master2;
47 |
48 | /// Wrapper for LIN_master2 transmission handler
49 | void LIN_master2_send(void);
50 |
51 | /// Wrapper for LIN_master2 reception handler
52 | void LIN_master2_receive(void);
53 |
54 | /// Wrapper for LIN_master2 default receive callback function
55 | void LIN_master2_copy(uint8_t numData, uint8_t *data);
56 |
57 | #endif // HAVE_HWSERIAL2 || SERIAL_PORT_HARDWARE2
58 |
59 | /*-----------------------------------------------------------------------------
60 | END OF MODULE DEFINITION FOR MULTIPLE INLUSION
61 | -----------------------------------------------------------------------------*/
62 | #endif // _LIN_MASTER2_H_
63 |
--------------------------------------------------------------------------------
/src/LIN_master3.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | \file LIN_master3.cpp
3 | \brief LIN master emulation library for Serial3
4 | \details This library provides a master node emulation for a LIN bus via Serial3.
5 | For an explanation of the LIN bus and protocol e.g. see https://en.wikipedia.org/wiki/Local_Interconnect_Network
6 | \author Georg Icking-Konert
7 | */
8 |
9 | // include files
10 | #include "Arduino.h"
11 | #include "LIN_master3.h"
12 |
13 | // only compile if controller supports Serial3
14 | #if defined(HAVE_HWSERIAL3) || defined(SERIAL_PORT_HARDWARE3) || (SOC_UART_NUM > 3)
15 |
16 |
17 | /// instance of LIN master via Serial3
18 | LIN_Master_3 LIN_master3;
19 |
20 |
21 | /**
22 | \brief Constructor for LIN node class for Serial3
23 | \details Constructor for LIN node class for Serial3. Store pointers used serial interface.
24 | */
25 | LIN_Master_3::LIN_Master_3()
26 | {
27 | // store used serial interface
28 | pSerial = &Serial3; // store pointer to used serial
29 | #if defined(__AVR__) // on AVR also store "double baudrate" control register (for sync break)
30 | UCSRA = &UCSR3A;
31 | #endif
32 |
33 | // store callback functions for task scheduler
34 | wrapperSend = LIN_master3_send;
35 | wrapperReceive = LIN_master3_receive;
36 | wrapperDefaultCallback = LIN_master3_copy;
37 |
38 | // for debug store class name for convenience
39 | #if (LIN_DEBUG_LEVEL != 0)
40 | sprintf(serialName, "LIN_Master_3");
41 | #endif
42 |
43 | } // LIN_Master_3::LIN_Master_3()
44 |
45 |
46 |
47 | /**
48 | \brief Wrapper for LIN_master3 transmission handler
49 | \details Wrapper for LIN_master3 transmission handler. This is required for
50 | task scheduler access to non-static member functions.
51 | */
52 | void LIN_master3_send(void)
53 | {
54 | // call class method
55 | LIN_master3.handlerSend();
56 |
57 | } // LIN_master3_send
58 |
59 |
60 |
61 | /**
62 | \brief Wrapper for LIN_master3 reception handler
63 | \details Wrapper for LIN_master3 reception handler. This is required for
64 | task scheduler access to non-static member functions.
65 | */
66 | void LIN_master3_receive(void)
67 | {
68 | // call class method
69 | LIN_master3.handlerReceive();
70 |
71 | } // LIN_master3_receive
72 |
73 |
74 |
75 | /**
76 | \brief Wrapper for LIN_master3 default receive callback function
77 | \details Wrapper for LIN_master3 default receive callback function for receiveSlaveResponse().
78 | Just copies data to a specified buffer.
79 | */
80 | void LIN_master3_copy(uint8_t numData, uint8_t *data)
81 | {
82 | // copy received data to user buffer
83 | LIN_master3.defaultCallback(numData, data);
84 |
85 | } // LIN_master3_copy
86 |
87 | #endif // HAVE_HWSERIAL3 || SERIAL_PORT_HARDWARE3
88 |
--------------------------------------------------------------------------------
/src/LIN_master3.h:
--------------------------------------------------------------------------------
1 | /**
2 | \file LIN_master3.h
3 | \brief LIN master emulation library for Serial3
4 | \details This library provides a master node emulation for a LIN bus via Serial3.
5 | For an explanation of the LIN bus and protocol e.g. see https://en.wikipedia.org/wiki/Local_Interconnect_Network
6 | \author Georg Icking-Konert
7 | */
8 |
9 | /*-----------------------------------------------------------------------------
10 | MODULE DEFINITION FOR MULTIPLE INCLUSION
11 | -----------------------------------------------------------------------------*/
12 | #ifndef _LIN_MASTER3_H_
13 | #define _LIN_MASTER3_H_
14 |
15 |
16 | /*-----------------------------------------------------------------------------
17 | INCLUDE FILES
18 | -----------------------------------------------------------------------------*/
19 |
20 | // include required libraries
21 | #include "Arduino.h"
22 | #include "LIN_master.h"
23 |
24 |
25 | // only compile if controller supports Serial3
26 | #if defined(HAVE_HWSERIAL3) || defined(SERIAL_PORT_HARDWARE3) || (SOC_UART_NUM > 3)
27 |
28 |
29 | /*-----------------------------------------------------------------------------
30 | GLOBAL CLASS
31 | -----------------------------------------------------------------------------*/
32 | /**
33 | \brief LIN master node class
34 |
35 | \details LIN master node class. For background operation use wrapper functions.
36 | */
37 | class LIN_Master_3 : public LIN_Master
38 | {
39 | public:
40 |
41 | // public methods
42 | LIN_Master_3(); //!< class constructor
43 | };
44 |
45 | // external reference to LIN_master3
46 | extern LIN_Master_3 LIN_master3;
47 |
48 | /// Wrapper for LIN_master3 transmission handler
49 | void LIN_master3_send(void);
50 |
51 | /// Wrapper for LIN_master3 reception handler
52 | void LIN_master3_receive(void);
53 |
54 | /// Wrapper for LIN_master3 default receive callback function
55 | void LIN_master3_copy(uint8_t numData, uint8_t *data);
56 |
57 | #endif // HAVE_HWSERIAL3 || SERIAL_PORT_HARDWARE3
58 |
59 | /*-----------------------------------------------------------------------------
60 | END OF MODULE DEFINITION FOR MULTIPLE INLUSION
61 | -----------------------------------------------------------------------------*/
62 | #endif // _LIN_MASTER3_H_
63 |
--------------------------------------------------------------------------------