@@ -4,7 +4,7 @@ This library provides a simple-to-use framework for taking advantage of many of
44
55_ Apologies_ : This document is a work in progress, and is published in this intermediate form in hopes that it will still be better than nothing.
66
7- [ ![ GitHub release] ( https://img.shields.io/github/release/mcci-catena/Catena-Arduino-Platform.svg )] ( https://github.com/mcci-catena/Catena-Arduino-Platform/releases/latest ) [ ![ GitHub commits] ( https://img.shields.io/github/commits-since/mcci-catena/Catena-Arduino-Platform/latest.svg )] ( https://github.com/mcci-catena/Catena-Arduino-Platform/compare/v0.18.1 ...master ) [ ![ Build Status] ( https://travis-ci.com/mcci-catena/Catena-Arduino-Platform.svg?branch=master )] ( https://travis-ci.com/mcci-catena/Catena-Arduino-Platform )
7+ [ ![ GitHub release] ( https://img.shields.io/github/release/mcci-catena/Catena-Arduino-Platform.svg )] ( https://github.com/mcci-catena/Catena-Arduino-Platform/releases/latest ) [ ![ GitHub commits] ( https://img.shields.io/github/commits-since/mcci-catena/Catena-Arduino-Platform/latest.svg )] ( https://github.com/mcci-catena/Catena-Arduino-Platform/compare/v0.19.0 ...master ) [ ![ Build Status] ( https://travis-ci.com/mcci-catena/Catena-Arduino-Platform.svg?branch=master )] ( https://travis-ci.com/mcci-catena/Catena-Arduino-Platform )
88
99<!-- markdownlint-disable MD033 -->
1010<!-- markdownlint-capture -->
@@ -14,89 +14,89 @@ _Apologies_: This document is a work in progress, and is published in this inter
1414- [ 1. Overview] ( #1-overview )
1515- [ 2. Coding Practices] ( #2-coding-practices )
1616- [ 3. Components] ( #3-components )
17- - [3.1. Namespace `McciCatena`](#31-namespace-mccicatena)
18- - [3.2. Class `Catena` and header file `Catena.h`](#32-class-catena-and-header-file-catenah)
19- - [3.3. Board-specific Classes](#33-board-specific-classes)
20- - [3.4. Class derivation](#34-class-derivation)
21- - [3.4.1. STM32 Classes](#341-stm32-classes)
22- - [3.4.2. SAMD Classes](#342-samd-classes)
23- - [3.5. Platform Management](#35-platform-management)
24- - [3.5.1. Platform GUIDs](#351-platform-guids)
25- - [3.5.2. GUIDs for the Catena 461x family](#352-guids-for-the-catena-461x-family)
26- - [3.5.2.1. Catena 4610](#3521-catena-4610)
27- - [3.5.2.2. Catena 4611](#3522-catena-4611)
28- - [3.5.2.3. Catena 4612](#3523-catena-4612)
29- - [3.5.2.4. Catena 4617](#3524-catena-4617)
30- - [3.5.2.5. Catena 4618](#3525-catena-4618)
31- - [3.5.2.6. Catena 4630](#3526-catena-4630)
32- - [3.5.3. GUIDs for the Catena 4450/4460/4470 family](#353-guids-for-the-catena-445044604470-family)
33- - [3.5.3.1. Catena 4450](#3531-catena-4450)
34- - [3.5.3.2. Catena 4460](#3532-catena-4460)
35- - [3.5.3.3. Catena 4470](#3533-catena-4470)
36- - [3.5.4. GUIDs for the Catena 4801 family](#354-guids-for-the-catena-4801-family)
37- - [3.5.5. GUIDs for Adafruit Feather M0s](#355-guids-for-adafruit-feather-m0s)
38- - [3.6. Polling Framework](#36-polling-framework)
39- - [3.6.1. Making a class pollable](#361-making-a-class-pollable)
40- - [3.6.2. Using pollable objects in sketches](#362-using-pollable-objects-in-sketches)
41- - [3.7. Finite State Machine (FSM) Framework](#37-finite-state-machine-fsm-framework)
42- - [3.7.1. Getting ready](#371-getting-ready)
43- - [3.7.2. Defining the state `enum class`](#372-defining-the-state-enum-class)
44- - [3.7.3. Identify the parent class](#373-identify-the-parent-class)
45- - [3.7.4. Add the state type to the parent class](#374-add-the-state-type-to-the-parent-class)
46- - [3.7.5. Define the FSM instance in the parent class](#375-define-the-fsm-instance-in-the-parent-class)
47- - [3.7.6. Declare a method function in the parent class](#376-declare-a-method-function-in-the-parent-class)
48- - [3.7.7. Implement the FSM dispatch function](#377-implement-the-fsm-dispatch-function)
49- - [3.7.8. Implement the FSM initialization](#378-implement-the-fsm-initialization)
50- - [3.8. The general time/date class `McciCatena::cDate`](#38-the-general-timedate-class-mccicatenacdate)
51- - [3.8.1. Interval Seconds](#381-interval-seconds)
52- - [3.8.2. `cDate` calendar types](#382-cdate-calendar-types)
53- - [3.8.3. `cDate` properties](#383-cdate-properties)
54- - [3.8.4. `cDate` methods](#384-cdate-methods)
55- - [3.8.5. Timekeeping, solar days, leap seconds](#385-timekeeping-solar-days-leap-seconds)
56- - [3.9. LoRaWAN Support](#39-lorawan-support)
57- - [3.9.1. Sending an uplink message](#391-sending-an-uplink-message)
58- - [3.9.2. Registering to receive downlink messages](#392-registering-to-receive-downlink-messages)
59- - [3.9.3. LoRaWAN Class Structure](#393-lorawan-class-structure)
60- - [3.10. FRAM Storage Management](#310-fram-storage-management)
61- - [3.10.1. FRAM Storage Formats](#3101-fram-storage-formats)
62- - [3.10.1.1. Object Storage Structure](#31011-object-storage-structure)
63- - [3.10.1.2. Bit layout of `uSizeKey`](#31012-bit-layout-of-usizekey)
64- - [3.10.1.3. The FRAM header object](#31013-the-fram-header-object)
65- - [3.10.2. Adding FRAM objects](#3102-adding-fram-objects)
66- - [3.10.3. Class hierarchy within the FRAM library](#3103-class-hierarchy-within-the-fram-library)
67- - [3.11. Asynchronous Serial Port Command Processing](#311-asynchronous-serial-port-command-processing)
68- - [3.11.1. Collecting lines asynchronously from streams](#3111-collecting-lines-asynchronously-from-streams)
69- - [3.11.2. The command parser](#3112-the-command-parser)
70- - [3.11.3. Command stream methods for use by functions](#3113-command-stream-methods-for-use-by-functions)
71- - [3.11.4. Synchronous Command Functions](#3114-synchronous-command-functions)
72- - [3.11.5. Asynchronous Command Functions](#3115-asynchronous-command-functions)
73- - [3.12. Clock Management and Calibration](#312-clock-management-and-calibration)
74- - [3.13. Si1133 driver](#313-si1133-driver)
75- - [3.14. `cTimer` Timer object](#314-ctimer-timer-object)
76- - [3.14.1. Catena_Timer.h header file and initialization](#3141-catena_timerh-header-file-and-initialization)
77- - [3.14.2. cTimer begin() and end()](#3142-ctimer-begin-and-end)
78- - [3.14.3. Checking for `cTimer` events](#3143-checking-for-ctimer-events)
79- - [3.14.4. `cTimer` Utility routines](#3144-ctimer-utility-routines)
80- - [3.15. `Catena_functional.h`](#315-catena_functionalh)
17+ - [ 3.1. Namespace ` McciCatena ` ] ( #31-namespace-mccicatena )
18+ - [ 3.2. Class ` Catena ` and header file ` Catena.h ` ] ( #32-class-catena-and-header-file-catenah )
19+ - [ 3.3. Board-specific Classes] ( #33-board-specific-classes )
20+ - [ 3.4. Class derivation] ( #34-class-derivation )
21+ - [ 3.4.1. STM32 Classes] ( #341-stm32-classes )
22+ - [ 3.4.2. SAMD Classes] ( #342-samd-classes )
23+ - [ 3.5. Platform Management] ( #35-platform-management )
24+ - [ 3.5.1. Platform GUIDs] ( #351-platform-guids )
25+ - [ 3.5.2. GUIDs for the Catena 461x family] ( #352-guids-for-the-catena-461x-family )
26+ - [ 3.5.2.1. Catena 4610] ( #3521-catena-4610 )
27+ - [ 3.5.2.2. Catena 4611] ( #3522-catena-4611 )
28+ - [ 3.5.2.3. Catena 4612] ( #3523-catena-4612 )
29+ - [ 3.5.2.4. Catena 4617] ( #3524-catena-4617 )
30+ - [ 3.5.2.5. Catena 4618] ( #3525-catena-4618 )
31+ - [ 3.5.2.6. Catena 4630] ( #3526-catena-4630 )
32+ - [ 3.5.3. GUIDs for the Catena 4450/4460/4470 family] ( #353-guids-for-the-catena-445044604470-family )
33+ - [ 3.5.3.1. Catena 4450] ( #3531-catena-4450 )
34+ - [ 3.5.3.2. Catena 4460] ( #3532-catena-4460 )
35+ - [ 3.5.3.3. Catena 4470] ( #3533-catena-4470 )
36+ - [ 3.5.4. GUIDs for the Catena 4801 family] ( #354-guids-for-the-catena-4801-family )
37+ - [ 3.5.5. GUIDs for Adafruit Feather M0s] ( #355-guids-for-adafruit-feather-m0s )
38+ - [ 3.6. Polling Framework] ( #36-polling-framework )
39+ - [ 3.6.1. Making a class pollable] ( #361-making-a-class-pollable )
40+ - [ 3.6.2. Using pollable objects in sketches] ( #362-using-pollable-objects-in-sketches )
41+ - [ 3.7. Finite State Machine (FSM) Framework] ( #37-finite-state-machine-fsm-framework )
42+ - [ 3.7.1. Getting ready] ( #371-getting-ready )
43+ - [ 3.7.2. Defining the state ` enum class ` ] ( #372-defining-the-state-enum-class )
44+ - [ 3.7.3. Identify the parent class] ( #373-identify-the-parent-class )
45+ - [ 3.7.4. Add the state type to the parent class] ( #374-add-the-state-type-to-the-parent-class )
46+ - [ 3.7.5. Define the FSM instance in the parent class] ( #375-define-the-fsm-instance-in-the-parent-class )
47+ - [ 3.7.6. Declare a method function in the parent class] ( #376-declare-a-method-function-in-the-parent-class )
48+ - [ 3.7.7. Implement the FSM dispatch function] ( #377-implement-the-fsm-dispatch-function )
49+ - [ 3.7.8. Implement the FSM initialization] ( #378-implement-the-fsm-initialization )
50+ - [ 3.8. The general time/date class ` McciCatena::cDate ` ] ( #38-the-general-timedate-class-mccicatenacdate )
51+ - [ 3.8.1. Interval Seconds] ( #381-interval-seconds )
52+ - [ 3.8.2. ` cDate ` calendar types] ( #382-cdate-calendar-types )
53+ - [ 3.8.3. ` cDate ` properties] ( #383-cdate-properties )
54+ - [ 3.8.4. ` cDate ` methods] ( #384-cdate-methods )
55+ - [ 3.8.5. Timekeeping, solar days, leap seconds] ( #385-timekeeping-solar-days-leap-seconds )
56+ - [ 3.9. LoRaWAN Support] ( #39-lorawan-support )
57+ - [ 3.9.1. Sending an uplink message] ( #391-sending-an-uplink-message )
58+ - [ 3.9.2. Registering to receive downlink messages] ( #392-registering-to-receive-downlink-messages )
59+ - [ 3.9.3. LoRaWAN Class Structure] ( #393-lorawan-class-structure )
60+ - [ 3.10. FRAM Storage Management] ( #310-fram-storage-management )
61+ - [ 3.10.1. FRAM Storage Formats] ( #3101-fram-storage-formats )
62+ - [ 3.10.1.1. Object Storage Structure] ( #31011-object-storage-structure )
63+ - [ 3.10.1.2. Bit layout of ` uSizeKey ` ] ( #31012-bit-layout-of-usizekey )
64+ - [ 3.10.1.3. The FRAM header object] ( #31013-the-fram-header-object )
65+ - [ 3.10.2. Adding FRAM objects] ( #3102-adding-fram-objects )
66+ - [ 3.10.3. Class hierarchy within the FRAM library] ( #3103-class-hierarchy-within-the-fram-library )
67+ - [ 3.11. Asynchronous Serial Port Command Processing] ( #311-asynchronous-serial-port-command-processing )
68+ - [ 3.11.1. Collecting lines asynchronously from streams] ( #3111-collecting-lines-asynchronously-from-streams )
69+ - [ 3.11.2. The command parser] ( #3112-the-command-parser )
70+ - [ 3.11.3. Command stream methods for use by functions] ( #3113-command-stream-methods-for-use-by-functions )
71+ - [ 3.11.4. Synchronous Command Functions] ( #3114-synchronous-command-functions )
72+ - [ 3.11.5. Asynchronous Command Functions] ( #3115-asynchronous-command-functions )
73+ - [ 3.12. Clock Management and Calibration] ( #312-clock-management-and-calibration )
74+ - [ 3.13. Si1133 driver] ( #313-si1133-driver )
75+ - [ 3.14. ` cTimer ` Timer object] ( #314-ctimer-timer-object )
76+ - [ 3.14.1. Catena_Timer.h header file and initialization] ( #3141-catena_timerh-header-file-and-initialization )
77+ - [ 3.14.2. cTimer begin() and end()] ( #3142-ctimer-begin-and-end )
78+ - [ 3.14.3. Checking for ` cTimer ` events] ( #3143-checking-for-ctimer-events )
79+ - [ 3.14.4. ` cTimer ` Utility routines] ( #3144-ctimer-utility-routines )
80+ - [ 3.15. ` Catena_functional.h ` ] ( #315-catena_functionalh )
8181- [ 4. Command Summary] ( #4-command-summary )
82- - [4.1. Standard commands](#41-standard-commands)
83- - [4.2. STM32L0 commands](#42-stm32l0-commands)
84- - [4.3. FRAM commands](#43-fram-commands)
85- - [4.4. LoRaWAN commands](#44-lorawan-commands)
86- - [4.4.1. LoRaWAN Parameters](#441-lorawan-parameters)
82+ - [ 4.1. Standard commands] ( #41-standard-commands )
83+ - [ 4.2. STM32L0 commands] ( #42-stm32l0-commands )
84+ - [ 4.3. FRAM commands] ( #43-fram-commands )
85+ - [ 4.4. LoRaWAN commands] ( #44-lorawan-commands )
86+ - [ 4.4.1. LoRaWAN Parameters] ( #441-lorawan-parameters )
8787- [ 5. Adding your own commands] ( #5-adding-your-own-commands )
8888- [ 6. Example sketches] ( #6-example-sketches )
89- - [6.1. `catena_hello`](#61-catena_hello)
90- - [6.2. `catena_hello_lora`](#62-catena_hello_lora)
91- - [6.3. `catena_usercommand`](#63-catena_usercommand)
92- - [6.4. `catena_fsm`](#64-catena_fsm)
89+ - [ 6.1. ` catena_hello ` ] ( #61-catena_hello )
90+ - [ 6.2. ` catena_hello_lora ` ] ( #62-catena_hello_lora )
91+ - [ 6.3. ` catena_usercommand ` ] ( #63-catena_usercommand )
92+ - [ 6.4. ` catena_fsm ` ] ( #64-catena_fsm )
9393- [ 7. Board Support Dependencies] ( #7-board-support-dependencies )
9494- [ 8. Other Libraries and Versions Required] ( #8-other-libraries-and-versions-required )
9595- [ 9. Release History] ( #9-release-history )
9696- [ 10. Meta] ( #10-meta )
97- - [10.1. License](#101-license)
98- - [10.2. Support Open Source Hardware and Software](#102-support-open-source-hardware-and-software)
99- - [10.3. Trademarks](#103-trademarks)
97+ - [ 10.1. License] ( #101-license )
98+ - [ 10.2. Support Open Source Hardware and Software] ( #102-support-open-source-hardware-and-software )
99+ - [ 10.3. Trademarks] ( #103-trademarks )
100100
101101<!-- /TOC -->
102102<!-- markdownlint-restore -->
@@ -1378,7 +1378,7 @@ This sketch demonstrates the use of the Catena FSM class to implement the `Turns
13781378
13791379## 9. Release History
13801380
1381- - HEAD includes the following changes.
1381+ - v0.19.0 includes the following changes.
13821382
13831383 - [ #248 ] ( https://github.com/mcci-catena/Catena-Arduino-Platform/issues/248 ) Add interactive command ` lorawan configure ` to display all hte parameters.
13841384
0 commit comments