mirror of
https://github.com/RobTillaart/Arduino.git
synced 2024-10-03 18:09:02 -04:00
0.3.2 XMLWriter
This commit is contained in:
parent
5fe2902341
commit
67649651b0
@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2013-2021 Rob Tillaart
|
||||
Copyright (c) 2013-2022 Rob Tillaart
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
@ -1,12 +1,14 @@
|
||||
|
||||
[![Arduino CI](https://github.com/RobTillaart/XMLWriter/workflows/Arduino%20CI/badge.svg)](https://github.com/marketplace/actions/arduino_ci)
|
||||
[![Arduino-lint](https://github.com/RobTillaart/XMLWriter/actions/workflows/arduino-lint.yml/badge.svg)](https://github.com/RobTillaart/XMLWriter/actions/workflows/arduino-lint.yml)
|
||||
[![JSON check](https://github.com/RobTillaart/XMLWriter/actions/workflows/jsoncheck.yml/badge.svg)](https://github.com/RobTillaart/XMLWriter/actions/workflows/jsoncheck.yml)
|
||||
[![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/RobTillaart/XMLWriter/blob/master/LICENSE)
|
||||
[![GitHub release](https://img.shields.io/github/release/RobTillaart/XMLWriter.svg?maxAge=3600)](https://github.com/RobTillaart/XMLWriter/releases)
|
||||
|
||||
|
||||
# XMLWriter
|
||||
|
||||
Arduino Library to create simple XML (messages, files, print, ...)
|
||||
Arduino Library to create simple XML (messages, files, print, ...).
|
||||
|
||||
|
||||
## Description
|
||||
@ -18,9 +20,9 @@ When instantiating an XMLWriter one can define the internal buffer size.
|
||||
A bigger buffer will make the output faster, especially for Ethernet and SD.File.
|
||||
The buffer size should be at least 2 bytes and max 250.
|
||||
How much faster depends on the properties of the stream and the platform used.
|
||||
E.g. the baudrate and internal buffer of Serial, packet behaviour of Ethernet,
|
||||
E.g. the baud rate and internal buffer of Serial, packet behaviour of Ethernet,
|
||||
or paging of SD cards.
|
||||
If performance is low one should do testruns with different sizes for the buffer
|
||||
If performance is low one should do test runs with different sizes for the buffer
|
||||
and choose one that is appropriate.
|
||||
|
||||
Indicative sizes based upon the examples.
|
||||
@ -128,12 +130,13 @@ can inject strings.
|
||||
|
||||
## Configuration flags
|
||||
|
||||
| Flag | Value | Description |
|
||||
|:-----------------|:------|:-------------|
|
||||
| Flag | Value | Description |
|
||||
|:-----------------|:------|:------------------|
|
||||
|XMLWRITER_NONE | 0x00 | minimize output, smaller & faster |
|
||||
|XMLWRITER_COMMENT | 0x01 | allow comments |
|
||||
|XMLWRITER_COMMENT | 0x01 | allow comments |
|
||||
|XMLWRITER_INDENT | 0x02 | allow indentation |
|
||||
|XMLWRITER_NEWLINE | 0x04 | allow newlines |
|
||||
|XMLWRITER_NEWLINE | 0x04 | allow newlines |
|
||||
|
||||
|
||||
- **setConfig(XMLWRITER_NONE);** to minimize the output in bytes.
|
||||
- **setConfig(XMLWRITER_NEWLINE);** to break an XML stream in lines.
|
||||
@ -149,4 +152,6 @@ See examples
|
||||
## Future
|
||||
|
||||
- update documentation
|
||||
-
|
||||
-
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
//
|
||||
// FILE: XMLWriter.cpp
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.3.1
|
||||
// VERSION: 0.3.2
|
||||
// DATE: 2013-11-06
|
||||
// PURPOSE: Arduino library for creating XML
|
||||
//
|
||||
@ -26,7 +26,7 @@
|
||||
// 0.3.1 2021-11-11 refactor naming to improve readability
|
||||
// update build-CI,
|
||||
// update readme.md, Badges.
|
||||
//
|
||||
// 0.3.2 2021-12-29 update library.json, readme, license, unit test, minor edits
|
||||
|
||||
|
||||
#include "XMLWriter.h"
|
||||
@ -427,3 +427,4 @@ void XMLWriter::escape(const char* str)
|
||||
|
||||
|
||||
// -- END OF FILE --
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// FILE: XMLWriter.h
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.3.1
|
||||
// VERSION: 0.3.2
|
||||
// DATE: 2013-11-06
|
||||
// PURPOSE: Arduino library for creating XML
|
||||
//
|
||||
@ -11,40 +11,40 @@
|
||||
#include "Arduino.h"
|
||||
|
||||
|
||||
#define XMLWRITER_VERSION (F("0.3.1"))
|
||||
#define XMLWRITER_VERSION (F("0.3.2"))
|
||||
|
||||
|
||||
// for comment()
|
||||
#define NOMULTILINE false
|
||||
#define MULTILINE true
|
||||
#define NOMULTILINE false
|
||||
#define MULTILINE true
|
||||
|
||||
// for tagOpen(), tagEnd()
|
||||
#define NEWLINE true
|
||||
#define NONEWLINE false
|
||||
#define NOINDENT false // for tagClose()
|
||||
#define NEWLINE true
|
||||
#define NONEWLINE false
|
||||
#define NOINDENT false // for tagClose()
|
||||
|
||||
// for tagEnd()
|
||||
#define SLASH true
|
||||
#define NOSLASH false
|
||||
#define SLASH true
|
||||
#define NOSLASH false
|
||||
|
||||
// deepness of XML tree 5..10
|
||||
// needed for stack of tagStack
|
||||
#ifndef XMLWRITER_MAXLEVEL
|
||||
#define XMLWRITER_MAXLEVEL 5 // adjust for deeper nested structures
|
||||
#define XMLWRITER_MAXLEVEL 5 // adjust for deeper nested structures
|
||||
#endif
|
||||
|
||||
#ifndef XMLWRITER_MAXTAGSIZE
|
||||
#define XMLWRITER_MAXTAGSIZE 15 // adjust for longer fields - !! eats memory !!
|
||||
#define XMLWRITER_MAXTAGSIZE 15 // adjust for longer fields - !! eats memory !!
|
||||
#endif
|
||||
|
||||
// reduce footprint by commenting next line
|
||||
#define XMLWRITER_ESCAPE_SUPPORT
|
||||
|
||||
// configuration - setConfig
|
||||
#define XMLWRITER_NONE 0x00
|
||||
#define XMLWRITER_COMMENT 0x01
|
||||
#define XMLWRITER_INDENT 0x02
|
||||
#define XMLWRITER_NEWLINE 0x04
|
||||
#define XMLWRITER_NONE 0x00
|
||||
#define XMLWRITER_COMMENT 0x01
|
||||
#define XMLWRITER_INDENT 0x02
|
||||
#define XMLWRITER_NEWLINE 0x04
|
||||
|
||||
// uncomment next line to reduce ~30bytes RAM in escape() (AVR oonly)
|
||||
// #define __PROGMEM__
|
||||
|
@ -1,11 +1,10 @@
|
||||
//
|
||||
// FILE: KMLWriterTest.ino
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.1.3
|
||||
// PURPOSE: simple KML writer
|
||||
// DATE: 2015-05-21
|
||||
// URL: https://github.com/RobTillaart/XMLWriter
|
||||
//
|
||||
|
||||
|
||||
#include <XMLWriter.h>
|
||||
|
||||
@ -96,3 +95,4 @@ This is a demo of the XMLWriter lib for Arduino
|
||||
|
||||
|
||||
// -- END OF FILE --
|
||||
|
||||
|
@ -1,11 +1,9 @@
|
||||
//
|
||||
// FILE: XMLWriterDefaultSerial.ino
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.1.1
|
||||
// PURPOSE: make a simple XML generating lib
|
||||
// DATE: 2020-04-24
|
||||
// URL: https://github.com/RobTillaart/XMLWriter
|
||||
//
|
||||
|
||||
|
||||
#include <XMLWriter.h>
|
||||
@ -133,3 +131,4 @@ void loop()
|
||||
|
||||
|
||||
// -- END OF FILE --
|
||||
|
||||
|
@ -1,11 +1,10 @@
|
||||
//
|
||||
// FILE: XMLWriterEthernet.ino
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.1.0
|
||||
// PURPOSE: demo XML writer for EthernetClient
|
||||
// DATE: 2020-04-24
|
||||
// URL: https://github.com/RobTillaart/XMLWriter
|
||||
//
|
||||
|
||||
|
||||
#include <XMLWriter.h>
|
||||
|
||||
|
@ -1,11 +1,9 @@
|
||||
//
|
||||
// FILE: XMLWriterEthernet.ino
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.1.1
|
||||
// PURPOSE: demo XML writer for EthernetClient
|
||||
// DATE: 2020-04-24
|
||||
// URL: https://github.com/RobTillaart/XMLWriter
|
||||
//
|
||||
|
||||
|
||||
#include <XMLWriter.h>
|
||||
|
@ -1,11 +1,10 @@
|
||||
//
|
||||
// FILE: XMLWriterPrint_1.ino
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.1.1
|
||||
// PURPOSE: demo Print interface
|
||||
// DATE: 2020-07-07
|
||||
// URL: https://github.com/RobTillaart/XMLWriter
|
||||
//
|
||||
|
||||
|
||||
#include <XMLWriter.h>
|
||||
|
||||
@ -24,7 +23,8 @@ void setup()
|
||||
XML.comment("XMLWriter Print interface");
|
||||
XML.setConfig(0); // no indent, no (further) comments
|
||||
|
||||
// The {} are not mandatory shows the XML structure in the code...
|
||||
// The {} and indentations are not mandatory
|
||||
// however they shows the XML structure in the code...
|
||||
|
||||
XML.tagOpen("Order");
|
||||
{
|
||||
|
@ -1,14 +1,12 @@
|
||||
//
|
||||
// FILE: XMLWriterPrint_3.ino
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.1.1
|
||||
// PURPOSE: demo Print interface - Printable data types
|
||||
// DATE: 2020-07-07
|
||||
// URL: https://github.com/RobTillaart/XMLWriter
|
||||
//
|
||||
|
||||
// example works for UNO but does not compile for ESP,
|
||||
// to investigate [complex vs Complex]
|
||||
// example works for UNO but does not compile for ESP,
|
||||
// to investigate [complex vs Complex]
|
||||
|
||||
|
||||
#include <XMLWriter.h>
|
||||
@ -47,3 +45,4 @@ void loop()
|
||||
|
||||
|
||||
// -- END OF FILE --
|
||||
|
||||
|
@ -1,18 +1,16 @@
|
||||
//
|
||||
// FILE: XMLWriterPrint_4.ino
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.1.0
|
||||
// PURPOSE: demo Print interface - PROGMEM strings
|
||||
// DATE: 2020-07-07
|
||||
// URL: https://github.com/RobTillaart/XMLWriter
|
||||
//
|
||||
|
||||
|
||||
#include <XMLWriter.h>
|
||||
|
||||
XMLWriter XML(&Serial);
|
||||
|
||||
#define NUMBERZ F("1.2.3.4.5")
|
||||
#define NUMBERZ (F("1.2.3.4.5"))
|
||||
|
||||
|
||||
void setup()
|
||||
@ -41,3 +39,4 @@ void loop()
|
||||
|
||||
|
||||
// -- END OF FILE --
|
||||
|
||||
|
@ -1,24 +1,22 @@
|
||||
//
|
||||
// FILE: XMLWriterSDcard.ino.ino
|
||||
// FILE: XMLWriterSDcard.ino
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.1.1
|
||||
// PURPOSE: XML writing to SD card
|
||||
// DATE: 2020-04-24
|
||||
// URL: https://github.com/RobTillaart/XMLWriter
|
||||
//
|
||||
// Note: this application will write to the SD card immediately
|
||||
// and it will append to the data.xml file every time started.
|
||||
//
|
||||
|
||||
|
||||
#include <SPI.h>
|
||||
#include <SD.h>
|
||||
// SPI PINS
|
||||
// MOSI 11
|
||||
// MISO 12
|
||||
// CLOCK 13
|
||||
// CS 10
|
||||
#define CS 10 // adjust this ChipSelect line if needed !
|
||||
// SPI PINS
|
||||
// MOSI 11
|
||||
// MISO 12
|
||||
// CLOCK 13
|
||||
// CS 10
|
||||
#define CS 10 // adjust this ChipSelect line if needed !
|
||||
|
||||
#include <XMLWriter.h>
|
||||
|
||||
|
@ -1,11 +1,10 @@
|
||||
//
|
||||
// FILE: XMLWriterTest.ino
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.1.6
|
||||
// PURPOSE: make a simple XML generating lib
|
||||
// DATE: 2013-11-06
|
||||
// URL: https://github.com/RobTillaart/XMLWriter
|
||||
//
|
||||
|
||||
|
||||
#include <XMLWriter.h>
|
||||
|
||||
|
@ -1,11 +1,10 @@
|
||||
//
|
||||
// FILE: XMLWriterDemo01.ino
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.1.3
|
||||
// PURPOSE: XML writer demo
|
||||
// DATE: 2016-03-16
|
||||
// URL: https://github.com/RobTillaart/XMLWriter
|
||||
//
|
||||
|
||||
|
||||
#include <XMLWriter.h>
|
||||
|
||||
@ -106,3 +105,4 @@ void loop()
|
||||
|
||||
|
||||
// -- END OF FILE --
|
||||
|
||||
|
@ -39,6 +39,8 @@ bytesWritten KEYWORD2
|
||||
# Instances (KEYWORD2)
|
||||
|
||||
# Constants (LITERAL1)
|
||||
XMLWRITER_VERSION LITERAL1
|
||||
|
||||
NOMULTILINE LITERAL1
|
||||
MULTILINE LITERAL1
|
||||
NEWLINE LITERAL1
|
||||
|
@ -15,8 +15,9 @@
|
||||
"type": "git",
|
||||
"url": "https://github.com/RobTillaart/XMLWriter"
|
||||
},
|
||||
"version": "0.3.1",
|
||||
"version": "0.3.2",
|
||||
"license": "MIT",
|
||||
"frameworks": "arduino",
|
||||
"platforms": "*"
|
||||
"platforms": "*",
|
||||
"headers": "XMLWriter.h"
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
name=XMLWriter
|
||||
version=0.3.1
|
||||
version=0.3.2
|
||||
author=Rob Tillaart <rob.tillaart@gmail.com>
|
||||
maintainer=Rob Tillaart <rob.tillaart@gmail.com>
|
||||
sentence=Arduino library for creating XML
|
||||
|
@ -37,6 +37,7 @@
|
||||
|
||||
unittest_setup()
|
||||
{
|
||||
fprintf(stderr, "XMLWRITER_VERSION: %s\n", (char *) XMLWRITER_VERSION);
|
||||
}
|
||||
|
||||
unittest_teardown()
|
||||
@ -44,10 +45,30 @@ unittest_teardown()
|
||||
}
|
||||
|
||||
|
||||
unittest(test_constants)
|
||||
{
|
||||
assertFalse(NOMULTILINE);
|
||||
assertTrue(MULTILINE);
|
||||
|
||||
assertTrue(NEWLINE);
|
||||
assertFalse(NONEWLINE);
|
||||
assertFalse(NOINDENT);
|
||||
|
||||
assertTrue(SLASH);
|
||||
assertFalse(NOSLASH);
|
||||
|
||||
assertEqual( 5, XMLWRITER_MAXLEVEL);
|
||||
assertEqual(15, XMLWRITER_MAXTAGSIZE);
|
||||
|
||||
assertEqual(0x00, XMLWRITER_NONE );
|
||||
assertEqual(0x01, XMLWRITER_COMMENT);
|
||||
assertEqual(0x02, XMLWRITER_INDENT );
|
||||
assertEqual(0x04, XMLWRITER_NEWLINE);
|
||||
}
|
||||
|
||||
|
||||
unittest(test_constructor)
|
||||
{
|
||||
fprintf(stderr, "VERSION: %s\n", XMLWRITER_VERSION);
|
||||
|
||||
XMLWriter XML(&Serial);
|
||||
assertEqual(0, XML.bytesWritten());
|
||||
assertEqual(2, XML.getIndentSize());
|
||||
@ -59,8 +80,6 @@ unittest(test_constructor)
|
||||
|
||||
unittest(test_header_flush)
|
||||
{
|
||||
fprintf(stderr, "VERSION: %s\n", XMLWRITER_VERSION);
|
||||
|
||||
XMLWriter XML(&Serial);
|
||||
|
||||
XML.header();
|
||||
|
Loading…
Reference in New Issue
Block a user