Rewriting examples.

This commit is contained in:
Nathan Seidle 2018-02-09 11:32:22 -07:00
parent e4bdee0912
commit 55df7ec356
15 changed files with 443 additions and 332 deletions

211
.gitignore vendored
View File

@ -1,171 +1,42 @@
#################
## Eclipse
#################
*.pydevproject
.project
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath
# External tool builders
.externalToolBuilders/
# Locally stored "Eclipse launch configurations"
*.launch
# CDT-specific
.cproject
# PDT-specific
.buildpath
#############
## Eagle
#############
# Ignore the board and schematic backup files
*.b#?
*.s#?
#################
## Visual Studio
#################
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.sln.docstates
# Build results
[Dd]ebug/
[Rr]elease/
*_i.c
*_p.c
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.vspscc
.builds
*.dotCover
## TODO: If you have NuGet Package Restore enabled, uncomment this
#packages/
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
# Visual Studio profiler
*.psess
*.vsp
# ReSharper is a .NET coding add-in
_ReSharper*
# Installshield output folder
[Ee]xpress
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish
# Others
[Bb]in
[Oo]bj
sql
TestResults
*.Cache
ClientBin
stylecop.*
~$*
*.dbmdl
Generated_Code #added for RIA/Silverlight projects
# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
############
## Windows
############
# Windows image file caches
Thumbs.db
# Folder config file
Desktop.ini
#############
## Python
#############
*.py[co]
# Packages
*.egg
*.egg-info
dist
build
eggs
parts
bin
var
sdist
develop-eggs
.installed.cfg
# Installer logs
pip-log.txt
# Unit test / coverage reports
.coverage
.tox
#Translations
*.mo
#Mr Developer
.mr.developer.cfg
# Mac crap
# Windows image file caches
Thumbs.db
ehthumbs.db
#Eagle Backup files
*.s#?
*.b#?
*.l#?
*.lck
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msm
*.msp
# =========================
# Operating System Files
# =========================
# OSX
# =========================
.DS_Store
.AppleDouble
.LSOverride
# Icon must ends with two \r.
Icon
# Thumbnails
._*
# Files that might appear on external disk
.Spotlight-V100
.Trashes

View File

@ -0,0 +1,59 @@
/*
Recording to OpenLog example
By: Nathan Seidle
SparkFun Electronics
Date: February 8th, 2018
License: This code is public domain but you buy me a beer if you use this and we meet someday (Beerware license).
This is an example of basic recording to OpenLog using software serial. This example is best for users who
want to use OpenLog with an Uno or other platform capable of softwareSerial.
Connect the following OpenLog to Arduino:
RXI of OpenLog to pin 5 on Arduino
VCC to 5V
GND to GND
This example records whatever the user OpenLog.prints(). This uses software serial on pin 5 instead
of hardware serial (TX/RX pins). Nearly any pin can be used for software serial.
*/
#include <SoftwareSerial.h>
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
//Connect RXI of OpenLog to pin 5 on Arduino
SoftwareSerial OpenLog(0, 5); // 0 = Soft RX pin (not used), 5 = Soft TX pin
//5 can be changed to any pin. See limitation section on https://www.arduino.cc/en/Reference/SoftwareSerial
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
int statLED = 13;
float dummyVoltage = 3.50; //This just shows to to write variables to OpenLog
void setup() {
pinMode(statLED, OUTPUT);
Serial.begin(9600);
OpenLog.begin(9600); //Open software serial port at 9600bps
Serial.println("This serial prints to the COM port");
OpenLog.println("This serial records to the OpenLog text file");
//Write something to OpenLog
OpenLog.println("Hi there! How are you today?");
OpenLog.print("Voltage: ");
OpenLog.println(dummyVoltage);
dummyVoltage++;
OpenLog.print("Voltage: ");
OpenLog.println(dummyVoltage);
Serial.println("Text written to file. Go look!");
}
void loop() {
digitalWrite(statLED, HIGH);
delay(1000);
digitalWrite(statLED, LOW);
delay(1000);
}

View File

@ -0,0 +1,53 @@
/*
Recording to OpenLog example
By: Nathan Seidle
SparkFun Electronics
Date: February 8th, 2018
License: This code is public domain but you buy me a beer if you use this and we meet someday (Beerware license).
This is an example of basic recording to OpenLog using hardware serial. This example is best for users who
are plugging the OpenLog directly onto the programming connector on an Arduino Pro Mini or Arduino Pro.
We DON'T recommend this method for beginners. See Example 1 for an easier software serial example.
The reason is if you upload a sketch to an Arduino with OpenLog attached then OpenLog will log the
uploading of your sketch. This may cause the OpenLog to become reconfigured. No harm will be
caused but it can corrupt the log file.
Connect the following OpenLog to Arduino:
RXI of OpenLog to TX on Arduino
VCC to 5V
GND to GND
This example records whatever the user Serial.prints(). This is the easiest but NOTE: You cannot
upload sketches to your Arduino with the OpenLog attached (because of bus contention). Upload this
sketch first, and then connect the OpenLog to the TX pin on the Arduino.
*/
int statLED = 13;
float dummyVoltage = 3.50; //This just shows to to write variables to OpenLog
void setup() {
pinMode(statLED, OUTPUT);
Serial.begin(9600);
Serial.println("Example print to OpenLog");
Serial.println("Anything printed to COM port gets logged!");
//Write something to OpenLog
Serial.println("Hi there! How are you today?");
Serial.print("Voltage: ");
Serial.println(dummyVoltage);
dummyVoltage++;
Serial.print("Voltage: ");
Serial.println(dummyVoltage);
}
void loop() {
digitalWrite(statLED, HIGH);
delay(1000);
digitalWrite(statLED, LOW);
delay(1000);
}

View File

@ -1,11 +1,11 @@
/*
Example of reading the disk properties on OpenLog
Example of creating a file, reading a file, and reading the disk properties on OpenLog
By: Nathan Seidle
SparkFun Electronics
Date: September 22nd, 2013
License: This code is public domain but you buy me a beer if you use this and we meet someday (Beerware license).
This is an example of issuing the 'disk' command and seeing how big the current SD card is.
This example creates a new file, writes to it, then reads it back, then reports the SD card details.
Connect the following OpenLog to Arduino:
RXI of OpenLog to pin 2 on the Arduino

View File

@ -1,5 +1,5 @@
/*
Example of reading of a large file
Example of reading of a large file and outputting to a different software serial port (like Bluetooth)
By: Nathan Seidle
SparkFun Electronics
Date: September 22nd, 2013

View File

@ -0,0 +1,281 @@
/*
Example of creating a file, reading a file, and reading the disk properties on OpenLog
By: Nathan Seidle
SparkFun Electronics
Date: February 8th, 2018
License: This code is public domain but you buy me a beer if you use this and we meet someday (Beerware license).
This example drops to command mode and begins writing to a file with an offset
Connect the following OpenLog to Arduino:
RXI of OpenLog to pin 2 on the Arduino
TXO to 3
GRN to 4
VCC to 5V
GND to GND
This example code assumes the OpenLog is set to operate at 9600bps in NewLog mode, meaning OpenLog
should power up and output '12<'. This code then sends the three escape characters and then sends
the commands to create a new random file called log###.txt where ### is a random number from 0 to 999.
The example code will then read back the random file and print it to the serial terminal.
This code assume OpenLog is in the default state of 9600bps with ASCII-26 as the esacape character.
If you're unsure, make sure the config.txt file contains the following: 9600,26,3,0
Be careful when sending commands to OpenLog. println() sends extra newline characters that
cause problems with the command parser. The new v2.51 ignores \n commands so it should be easier to
talk to on the command prompt level. This example code works with all OpenLog v2 and higher.
*/
#include <SoftwareSerial.h>
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
//Connect TXO of OpenLog to pin 3, RXI to pin 2
SoftwareSerial OpenLog(3, 2); //Soft RX on 3, Soft TX out on 2
//SoftwareSerial(rxPin, txPin)
int resetOpenLog = 4; //This pin resets OpenLog. Connect pin 4 to pin GRN on OpenLog.
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
int statLED = 13;
void setup() {
pinMode(statLED, OUTPUT);
Serial.begin(9600);
setupOpenLog(); //Resets logger and waits for the '<' I'm alive character
Serial.println("OpenLog online");
//Create a file with random name
randomSeed(analogRead(A0)); //Use the analog pins for a good seed value
int fileNumber = random(999); //Select a random file #, 0 to 999
char fileName[12]; //Max file name length is "12345678.123" (12 characters)
sprintf(fileName, "log%03d.txt", fileNumber);
gotoCommandMode(); //Puts OpenLog in command mode
createFile(fileName); //Creates a new file called log###.txt where ### is random
Serial.print("Random file created: ");
Serial.println(fileName);
//Write 1000 random characters to this file
for (int x = 0 ; x < 1000 ; x++)
{
char randomCharacter = random('a', 'z'); //Pick a character, a to z
OpenLog.write(randomCharacter);
}
//Now write to the same file but at a specific location
gotoCommandMode(); //Puts OpenLog in command mode
if (writeFile(fileName, 10) == true) //Write to fileName starting at location 10
{
//Write something to this file at location 10
OpenLog.println("Hello world!");
//The write command will continue to draw in characters until a blank line is received
OpenLog.print("\r");
//OpenLog is now returned to the command prompt
}
//Now let's read back the file to see what it looks like
readFile(fileName); //This dumps the contents of a given file to the serial terminal
Serial.println();
Serial.println("File read complete");
}
void loop() {
digitalWrite(statLED, HIGH);
delay(1000);
digitalWrite(statLED, LOW);
delay(1000);
}
//Setups up the software serial, resets OpenLog so we know what state it's in, and waits
//for OpenLog to come online and report '<' that it is ready to receive characters to record
void setupOpenLog(void) {
pinMode(resetOpenLog, OUTPUT);
OpenLog.begin(9600);
//Reset OpenLog
digitalWrite(resetOpenLog, LOW);
delay(10);
digitalWrite(resetOpenLog, HIGH);
//Wait for OpenLog to respond with '<' to indicate it is alive and recording to a file
while (1) {
if (OpenLog.available())
if (OpenLog.read() == '<') break;
}
}
//Open a file for writing. Begin writing at an offset
boolean writeFile(char *fileName, int offset) {
OpenLog.print("write ");
OpenLog.print(fileName);
OpenLog.print(" ");
OpenLog.print(offset);
OpenLog.write(13); //This is \r
//The OpenLog echos the commands we send it by default so we have 'write log254.txt 10\r' sitting
//in the RX buffer. Let's try to ignore this.
while (1) {
if (OpenLog.available())
if (OpenLog.read() == '\r') break;
}
//OpenLog should respond with a < letting us know it's receiving characters
int counter = 0;
while (counter++ < 1000) {
if (OpenLog.available())
if (OpenLog.read() == '<') return (true);
delay(1);
}
Serial.println("Write offset failed: Does the file exist?");
return (false);
}
//This function creates a given file and then opens it in append mode (ready to record characters to the file)
//Then returns to listening mode
void createFile(char *fileName) {
//Old way
OpenLog.print("new ");
OpenLog.print(fileName);
OpenLog.write(13); //This is \r
//New way
//OpenLog.print("new ");
//OpenLog.println(filename); //regular println works with OpenLog v2.51 and above
//Wait for OpenLog to return to waiting for a command
while (1) {
if (OpenLog.available())
if (OpenLog.read() == '>') break;
}
OpenLog.print("append ");
OpenLog.print(fileName);
OpenLog.write(13); //This is \r
//Wait for OpenLog to indicate file is open and ready for writing
while (1) {
if (OpenLog.available())
if (OpenLog.read() == '<') break;
}
//OpenLog is now waiting for characters and will record them to the new file
}
//Reads the contents of a given file and dumps it to the serial terminal
//This function assumes the OpenLog is in command mode
void readFile(char *fileName) {
while(OpenLog.available()) OpenLog.read(); //Clear incoming buffer
OpenLog.print("read ");
OpenLog.print(fileName);
OpenLog.write(13); //This is \r
//The OpenLog echos the commands we send it by default so we have 'read log823.txt\r' sitting
//in the RX buffer. Let's try to not print this.
while (1) {
if (OpenLog.available())
if (OpenLog.read() == '\r') break;
}
Serial.println("Reading from file:");
//This will listen for characters coming from OpenLog and print them to the terminal
//This relies heavily on the SoftSerial buffer not overrunning. This will probably not work
//above 38400bps.
//This loop will stop listening after 1 second of no characters received
for (int timeOut = 0 ; timeOut < 1000 ; timeOut++) {
while (OpenLog.available()) {
char tempString[100];
int spot = 0;
while (OpenLog.available()) {
tempString[spot++] = OpenLog.read();
if (spot > 98) break;
}
tempString[spot] = '\0';
Serial.write(tempString); //Take the string from OpenLog and push it to the Arduino terminal
timeOut = 0;
}
delay(1);
}
//This is not perfect. The above loop will print the '.'s from the log file. These are the two escape characters
//recorded before the third escape character is seen.
//It will also print the '>' character. This is the OpenLog telling us it is done reading the file.
//This function leaves OpenLog in command mode
}
//Check the stats of the SD card via 'disk' command
//This function assumes the OpenLog is in command mode
void readDisk() {
//Old way
OpenLog.print("disk");
OpenLog.write(13); //This is \r
//New way
//OpenLog.print("read ");
//OpenLog.println(filename); //regular println works with OpenLog v2.51 and above
//The OpenLog echos the commands we send it by default so we have 'disk\r' sitting
//in the RX buffer. Let's try to not print this.
while (1) {
if (OpenLog.available())
if (OpenLog.read() == '\r') break;
}
//This will listen for characters coming from OpenLog and print them to the terminal
//This relies heavily on the SoftSerial buffer not overrunning. This will probably not work
//above 38400bps.
//This loop will stop listening after 1 second of no characters received
for (int timeOut = 0 ; timeOut < 1000 ; timeOut++) {
while (OpenLog.available()) {
char tempString[100];
int spot = 0;
while (OpenLog.available()) {
tempString[spot++] = OpenLog.read();
if (spot > 98) break;
}
tempString[spot] = '\0';
Serial.write(tempString); //Take the string from OpenLog and push it to the Arduino terminal
timeOut = 0;
}
delay(1);
}
//This is not perfect. The above loop will print the '.'s from the log file. These are the two escape characters
//recorded before the third escape character is seen.
//It will also print the '>' character. This is the OpenLog telling us it is done reading the file.
//This function leaves OpenLog in command mode
}
//This function pushes OpenLog into command mode
void gotoCommandMode(void) {
//Send three control z to enter OpenLog command mode
//Works with Arduino v1.0
OpenLog.write(26);
OpenLog.write(26);
OpenLog.write(26);
//Wait for OpenLog to respond with '>' to indicate we are in command mode
while (1) {
if (OpenLog.available())
if (OpenLog.read() == '>') break;
}
}

View File

@ -5,7 +5,9 @@
This code is public domain but you buy me a beer if you use this and we meet someday (Beerware license).
This is a simple test sketch for OpenLog. It sends a large batch of characters to the serial port at 9600bps.
This sketch is used to test the recording buffer of the OpenLog. If you send OpenLog non-stop
serial data at very high data rates (like 115200bps) it can cause a buffer over-run. This sketch
attempts to cause such situations by sending a large batch of characters to the serial port at 115200bps.
Original test was recomended by ScottH on issue #12:
http://github.com/nseidle/OpenLog/issues#issue/12

View File

@ -5,7 +5,9 @@
This code is public domain but you buy me a beer if you use this and we meet someday (Beerware license).
This is a simple test sketch for OpenLog. It sends a large batch of characters to the serial port at 9600bps.
This sketch is used to test the recording buffer of the OpenLog. If you send OpenLog non-stop
serial data at very high data rates (like 115200bps) it can cause a buffer over-run. This sketch
attempts to cause such situations by sending a large batch of characters to the serial port at 115200bps.
Original test was recomended by ScottH on issue #12:
http://github.com/nseidle/OpenLog/issues#issue/12

View File

@ -1,107 +0,0 @@
/*
6-1-2011
SparkFun Electronics 2011
Nathan Seidle
Controlling OpenLog command line from an Arduino
Connect the following OpenLog to Arduino:
TXO of OpenLog to RX of the Arduino
RXI to TX
GRN to 2
VCC to 5V
GND to GND
NOTE: When uploading this example code you must temporarily disconnect TX and RX while uploading
the new code to the Arduino. Otherwise you will get a "avrdude: stk500_getsync(): not in sync" error.
This example code assumes the OpenLog is set to operate at 9600bps in NewLog mode, meaning OpenLog
should power up and output '12<'. This code then sends the three escape characters and then sends
the commands to create a new random file called nate###.txt where ### is a random number from 0 to 999.
This code assume OpenLog is in the default state of 9600bps with ASCII-26 as the esacape character.
Be careful when sending commands to OpenLog. println() sends extra newline characters that
cause problems with the command parser. The new v2.51 ignores \n commands so it should be easier to
talk to on the command prompt level. This example code works with all OpenLog v2 and higher.
*/
char buff[50];
int fileNumber;
int statLED = 13;
int resetOpenLog = 2;
void setup() {
pinMode(statLED, OUTPUT);
pinMode(resetOpenLog, OUTPUT);
randomSeed(analogRead(0));
Serial.begin(9600);
//Reset OpenLog
digitalWrite(resetOpenLog, LOW);
delay(100);
digitalWrite(resetOpenLog, HIGH);
//Wait for OpenLog to respond with '<' to indicate it is alive and recording to a file
while(1) {
if(Serial.available())
if(Serial.read() == '<') break;
}
//Send three control z to enter OpenLog command mode
//This is how Arduino v0022 used to do it. Doesn't work with v1.0
//Serial.print(byte(26));
//Serial.print(byte(26));
//Serial.print(byte(26));
//Works with Arduino v1.0
Serial.write(26);
Serial.write(26);
Serial.write(26);
//Wait for OpenLog to respond with '>' to indicate we are in command mode
while(1) {
if(Serial.available())
if(Serial.read() == '>') break;
}
fileNumber = random(999); //Select a random file #, 0 to 999
//Send new (random from 0 to 999) file name
//Old way
sprintf(buff, "new nate%03d.txt\r", fileNumber);
Serial.print(buff); //\r in string + regular print works with older v2.5 Openlogs
//New way
//sprintf(buff, "new nate%03d.txt", fileNumber);
//Serial.println(buff); //regular println works with v2.51 and above
//Wait for OpenLog to return to waiting for a command
while(1) {
if(Serial.available())
if(Serial.read() == '>') break;
}
sprintf(buff, "append nate%03d.txt\r", fileNumber);
Serial.print(buff);
//Wait for OpenLog to indicate file is open and ready for writing
while(1) {
if(Serial.available())
if(Serial.read() == '<') break;
}
}
void loop() {
Serial.println("Yay!");
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}

View File

@ -1 +0,0 @@
This example code shows how to control the OpenLog command line from an Arduino. This code assumes the OpenLog is set to operate at 9600bps in NewLog mode, meaning OpenLog should power up and output '12<'. This code then sends the three escape characters and then sends the commands to create a new random file called nate###.txt where ### is a random number from 0 to 999.

View File

@ -1 +0,0 @@
This example sketch shows how to create a random file on OpenLog, write some text and variables to it, then read it back to the terminal. Relates to issue #95: https://github.com/nseidle/OpenLog/issues/95

View File

@ -1,45 +0,0 @@
Generated from: http://johno.jsmf.net/knowhow/ngrams/index.php
commit a new idea, `I dont know -- no, not recall the fire, the file too. Come! Put a few minutes to murder me, youd have no better opinions of having begun, when all ran with a bar with a wicked Noahs ark. Cribbed and at the usual friendly competition; but her right name to say, `You have been among his hart that place in sky-blue, who staggered at me by throwing the churchyard, you live, said my best of silver paper, which I had been taken to take time, by the liquidation of the society of the dissuading arguments
serous to be sick, and vigils, and melancholy to him! -- not help the words reproachfully delivered: `Boy! Let them you get hold me; `so youre kindly Please to be changed, and never been worn. I whimpered, `I think afresh and with `No! Dont you live, said the marshes, in their own whites. He was she wanted brushing, her too, to look at my countenance, stared at a sign of breakfast; `for I heard my back of them not all the plea of this time, I find him the marshes were my feet, turning sharp sudden desperation, `here I dragged
luxury. Would us, and made the acts of a mysterious young hound if I do. I promise had been in the rum-and-water were my little before I kicked the tombstone on a covered earthenware dish in which I caught, when you were a tired man; cried a dead if they were in passing me, `were a dash and for an emphatic word or had all stood open, and the reviving influence of Caesar. This wont try to me. And how she had been waiting to be sure that Mr Pumblechook partook of ruffled dignity, could ever see. She was
sound should have for miles of my expense? To this boy shall have something in coarse his lips. `Good stuff, eh, sergeant? asked Estella to live. You know that, he was not be everywhere. For, there was a little drunkard, through my terror of the Battery over Joe, with indignation and that the fear as to her walking away as we had been to the urgency of my sister, `that when the silk stocking on the next day, my eyes, I held them but for another man! And when my sister, most others. It was used to my sister,
strong, that phenomenon and without throwing me as our forge; pondering, as he had been sure that member of open it. Some of making a pair youd be everywhere. For, there any personal manner. Joes station and moved my fore- head like the times nine, and noise like the moment they wouldnt have no more illegibly printed at home, a ridiculous old brick, and shook my tongue. I had an hour we all the bread-and-butter down by the boy grimed with my sister; `trouble? And he must run away. He crammed what does that I could see your sister, in
reflection, `Look at one side, and me sensitive. In pur- suing party last Sunday dress. My convict looked as well is fair whisker, and then murmured `True! and none seemed quite confounded me, and reposing no better. Lord! he turned me for a very undecided blue eyes -- `such a beautiful round the talk how awful it up, and none before. `If Miss Havishams, and exhibited them (for their muskets and contemplating the furthest end of making the yard. All the end with his men hiding, I got upon it, in a fat cheeks you cry? `Because I suppose? said
violently plunging and play at, boy? said she muttered, `so youre to be truly say I was long after glancing at the same early morning early, that I broke out of telling of, when he stood staring; at Pork! `True, sir. Many a particularly venerated Mr Wopale. I being missed), and I faltered. `Much of the dogs who wanted him -- murder me. To five little watery; he had to the forge. `Then tell upon the dark in the company to be supposed, said he swore an eager look, for them and it up, smile, throw us have for me;
awoke Mr Wopsle reviewed the game, and hugged Joe gave me upside down, and against the pigeons think so? said Mr Pumblechook and shaking his file) that looked all on my tombstone, trembling, while I was shot it seems to tell you have a hare hanging there was a kick-up of me, Joe. `So am indebted for early days of her figure of iron shoes were the fire. `How do it, said Joe, opening the air about the beer was generally that boy, said that he did not moved his handcuffs to say its lies, Joe. `Why, see it comfortably,
exceedingly early in extreme measure, but no fine -- and refractory students. When I am glad to see him, or two were your eye at me, Joe? I had. People are not nearly going to Mr Hubble remark that had all gulped it down on the coach-maker, who came of her eyes -- and closed the visitors suggesting different ways by the brewing utensils still in my expense? To five minutes, Pip. `Hold your eye by his grey jacket. `Show me keep my leg: you had been to say too far as an agony of exercise lasted until he aint.
bobbish, and the figure, and almost always keeping that instead of gin-and-water. My sister catching up town -- I was under- stood. Not a wicked secret, I saw him to hunt a light iron on it. I had been all been taken them in this saving remembrance of days of the candle down, and look at the word. `Mrs Joe came to myself I answered, but that I had a rope made it became infectious, and Uncle Pumblechook and would read aloud in the churchyard. There, there! `And please whats wanted. A dread possessed by way back. Now that
brewery might be, as if she had withered like a little food I was going on his destiny always used to Joe, with fierce hurry, and we all sorts of nothing of a she, I ask you will be two ? `And please God, you was in the knife a powerful enough for a turn his eye, `One, two, three. Why, heres three cannon last of whom an hour was Pip. `Hold your elth. By that it by a working of pudding. Mr Pumblechook, being ashamed of this villain. Now, Pip; Joe was soon at my sister, Mrs Joe.
hears the fingers of one of bread-and-butter for selection, no matter how interesting reading is! Something clicked in (even then I was absent, and scents of her if I had a young conductress locked the sugar, and ran like suddenness, staring out the kitchen mantel-shelf, into the awful promise had no snuffers.r It was encouraged me. But, I had stopped me that he did his work at each side for an odd idea (and him with the means as vulgar appendages. I rise? That young man.) `What can bear no help it, some bread and said my own self. I
tremendous dip of questions. But if it was far to be a constitutional im- patience, or the father or dare say I told on the village, for them a quantity of being taken, and pronounced that about here, he could struggle -- which I drew the sergeant; insomuch that about the four little world at the conversation at myself. `Churchyard!`repeated my sister -- murder me, whats worse, shes out again, and that I had not allowed a sense, I might judge from which is very like himself. `I hope, Joe, and whose trade engaged his guard -- I know --
allowed to himself, of old chap, said I hope it until he came from. It was the brewery itself-- by Collinss Ode on the wall behind the means as if I speak. That was danger in which he always did you know, Pip, said Mr Wopale not warmly. `Seems you here nigh two on a well-knit characteristic-looking blacksmith; in coarse grey, with some general air -- and abhorrence. `Yet, said he. `Mind! Your health. May you was made a rank garden of the forge! I came to hammer and saw a mournful presentiment that if he looked round, and Mrs
mises of the pudding when there was down like a certain sour remembrance of a pocket-handker- chief. Now, what he never saw all along: `Boy, be the dear fellow -- `Well? You may think of their doubts related to me, as fully sensible of girls, immediately rose. `I want an invisible gun, and distributed three Os, and many subjects `going about. `True again, said he. And looked all about relationships, having played at the Carols, said Joe, a cross temper. Leave this mixture, which he is a row at his right-side flaxen hair and grim lady I sagaciously observed, if
wide world is solitary, said Joe, `living here and feet, to look over to put it struck out of anything in an armchair, with `No! Dont cut into the frillings and pollards, a penknife from Mr Wopsle. `Three Rums! cried audibly, `Good again! `You mean ? `Yes, Joe. `Consequence, my being sworn, and then ask questions. But read this, I returned, and apparently out of tobacco and that it had been born you shouldnt be got a file and himself down upon them, opened its lustre, and ran to get out of em, and clink, and the Three or small?
massive rusty chains, the nearest town, and slaving and Roger, infant tongue could not a stranger turned me up by which the church pavement. Now, when we waited at least glance in his iron bars to as a well-to- do it up, and towelled, and your sister said Joe, with him, or any pigeons there was soon roaring. Then Joe got its many little on the hands so carefully in a pipe in an interval between them up to me. I was hid with its virtues correspondent to them (for their being like an interval between seeds and out together,
exquisite art of sunset, the reason to the agency of Prices, under taps of smoke. In the death and there was bringing him with so much air on her hands in buying such reference to callings and then sawed a silence during which he never thought I were flung hissing into me. To which my room: diluting the least as far to imply that I was towards making that at Joe. The soldiers who knew I believe they challenged, and said, in the paper, and the banns were just been born on the sugar, and ran in the right cross
Ask no horses in my sister. `You say nothing of these records, but its on the tide out. We begin quite ready for us up the least improbable manner of metaphysics, at my unassisted self, and jam -- when he knew he gave me on the form of the passions, and stood round in the temptation presented for a look at home. He wore then, `that he said Joe, restoring Tickler with Joe, with the present occasion, and it about cutting our evening to the churchyard. There, we were kept her hand. `This, said Mrs Joe and tacked a scornful
massive rusty chains, the nearest town, and slaving and Roger, infant tongue could not a stranger turned me up by which the church pavement. Now, when we waited at least glance in his iron bars to as a well-to- do it up, and towelled, and your sister said Joe, with him, or any pigeons there was soon roaring. Then Joe got its many little on the hands so carefully in a pipe in an interval between them up to me. I was hid with its virtues correspondent to them (for their being like an interval between seeds and out together,
exquisite art of sunset, the reason to the agency of Prices, under taps of smoke. In the death and there was bringing him with so much air on her hands in buying such reference to callings and then sawed a silence during which he never thought I were flung hissing into me. To which my room: diluting the least as far to imply that I was towards making that at Joe. The soldiers who knew I believe they challenged, and said, in the paper, and the banns were just been born on the sugar, and ran in the right cross
Ask no horses in my sister. `You say nothing of these records, but its on the tide out. We begin quite ready for us up the least improbable manner of metaphysics, at my unassisted self, and jam -- when he knew he gave me on the form of the passions, and stood round in the temptation presented for a look at home. He wore then, `that he said Joe, restoring Tickler with Joe, with the present occasion, and it about cutting our evening to the churchyard. There, we were kept her hand. `This, said Mrs Joe and tacked a scornful

View File

@ -1,2 +0,0 @@
This is a simple test sketch for OpenLog. It sends a large batch of characters to the serial port at 9600bps.
Original test was recomended by ScottH on issue #12 : http://github.com/nseidle/OpenLog/issues#issue/12