madrona-rad 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +75 -0
- data/License.txt +282 -0
- data/Manifest.txt +47 -0
- data/README.rdoc +51 -0
- data/Rakefile +139 -0
- data/bin/rad +197 -0
- data/lib/libraries/SWSerLCDpa/SWSerLCDpa.cpp +267 -0
- data/lib/libraries/SWSerLCDpa/SWSerLCDpa.h +64 -0
- data/lib/libraries/SWSerLCDsf/SWSerLCDsf.cpp +254 -0
- data/lib/libraries/SWSerLCDsf/SWSerLCDsf.h +57 -0
- data/lib/libraries/Servo/Servo.cpp +152 -0
- data/lib/libraries/Servo/Servo.h +33 -0
- data/lib/libraries/Servo/keywords.txt +25 -0
- data/lib/plugins/debounce.rb +116 -0
- data/lib/plugins/debug_output_to_lcd.rb +71 -0
- data/lib/plugins/input_output_state.rb +84 -0
- data/lib/plugins/mem_test.rb +37 -0
- data/lib/plugins/servo_pulse.rb +31 -0
- data/lib/plugins/servo_setup.rb +86 -0
- data/lib/plugins/smoother.rb +54 -0
- data/lib/plugins/spark_fun_serial_lcd.rb +100 -0
- data/lib/rad/arduino_plugin.rb +202 -0
- data/lib/rad/arduino_sketch.rb +952 -0
- data/lib/rad/generators/makefile/makefile.erb +243 -0
- data/lib/rad/generators/makefile/makefile.rb +39 -0
- data/lib/rad/init.rb +12 -0
- data/lib/rad/rad_processor.rb +66 -0
- data/lib/rad/rad_rewriter.rb +94 -0
- data/lib/rad/tasks/build_and_make.rake +159 -0
- data/lib/rad/tasks/rad.rb +2 -0
- data/lib/rad/todo.txt +13 -0
- data/lib/rad/version.rb +9 -0
- data/lib/rad.rb +5 -0
- data/scripts/txt2html +67 -0
- data/setup.rb +1585 -0
- data/spec/models/arduino_sketch_spec.rb +82 -0
- data/spec/models/spec_helper.rb +2 -0
- data/spec/spec.opts +1 -0
- data/website/examples/assembler_test.rb.html +73 -0
- data/website/examples/gps_reader.rb.html +39 -0
- data/website/examples/hello_world.rb.html +38 -0
- data/website/examples/serial_motor.rb.html +41 -0
- data/website/index.html +177 -0
- data/website/index.txt +64 -0
- data/website/javascripts/rounded_corners_lite.inc.js +285 -0
- data/website/stylesheets/screen.css +169 -0
- data/website/template.rhtml +48 -0
- metadata +120 -0
data/bin/rad
ADDED
@@ -0,0 +1,197 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'rubygems'
|
5
|
+
rescue LoadError
|
6
|
+
# no rubygems to load, so we fail silently
|
7
|
+
end
|
8
|
+
|
9
|
+
require 'optparse'
|
10
|
+
require 'fileutils'
|
11
|
+
require 'yaml'
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
class OptionParser #:nodoc:
|
16
|
+
|
17
|
+
def self.parse(args)
|
18
|
+
# defaults
|
19
|
+
|
20
|
+
options = {"hardware" => {
|
21
|
+
"serial_port" => '/dev/tty.usbserial*',
|
22
|
+
"mcu" => "atmega168",
|
23
|
+
"physical_reset" => false
|
24
|
+
},
|
25
|
+
"software" => {
|
26
|
+
"arduino_root" => "/Applications/arduino-0011"
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
opts = OptionParser.new do |opts|
|
31
|
+
|
32
|
+
opts.banner = <<-BANNER
|
33
|
+
Build a directory for your RAD Project and install RAD in its vendor sub-directory.
|
34
|
+
|
35
|
+
Usage: #{File.basename($0)} <sketch_dir_name> <options for config>
|
36
|
+
BANNER
|
37
|
+
|
38
|
+
opts.on("-p", "--port [SERIAL PORT]",
|
39
|
+
"Path to your serial port",
|
40
|
+
" (default: #{options['hardware']['serial_port']})") do |port|
|
41
|
+
|
42
|
+
options["hardware"]["serial_port"] = port if port
|
43
|
+
end
|
44
|
+
|
45
|
+
opts.on("-m", "--mcu [PROCESSOR TYPE]",
|
46
|
+
"Type of processor on your board",
|
47
|
+
" (default: #{options['hardware']['mcu']})") do |port|
|
48
|
+
|
49
|
+
options["hardware"]["serial_port"] = port if port
|
50
|
+
end
|
51
|
+
|
52
|
+
opts.on("-r", "--reset [RESET REQUIRED]",
|
53
|
+
"Require a hardware reset before uploading?",
|
54
|
+
" (default: #{options['hardware']['physical_reset']})") do |no_reset|
|
55
|
+
options["hardware"]["physical_reset"] = true unless no_reset
|
56
|
+
end
|
57
|
+
|
58
|
+
opts.on("-a", "--arduino [ARDUINO DIR]",
|
59
|
+
"Path to your Arduino install",
|
60
|
+
" (default: #{options['software']['arduino_root']})") do |arduino|
|
61
|
+
options["software"]["arduino_root"] = arduino if arduino
|
62
|
+
end
|
63
|
+
|
64
|
+
opts.on_tail("-h", "--help", "Show this message") do
|
65
|
+
puts opts
|
66
|
+
exit
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
opts.parse!(args)
|
71
|
+
[options, opts]
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
|
76
|
+
|
77
|
+
# home = ENV['HOME'] || ENV['USERPROFILE'] || ENV['HOMEPATH']
|
78
|
+
# begin
|
79
|
+
# config = YAML::load open(home + "/.rad")
|
80
|
+
# rescue
|
81
|
+
# config = false
|
82
|
+
# end
|
83
|
+
#
|
84
|
+
|
85
|
+
|
86
|
+
# Handle options:
|
87
|
+
options, parser = OptionParser.parse(ARGV)
|
88
|
+
sketch_name = ARGV[0]
|
89
|
+
parser.parse!(["-h"]) unless sketch_name
|
90
|
+
|
91
|
+
|
92
|
+
# Build vendor/rad:
|
93
|
+
|
94
|
+
FileUtils.mkdir_p "#{sketch_name}/vendor/rad"
|
95
|
+
puts "Successfully created your sketch directory."
|
96
|
+
|
97
|
+
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/rad/.", "#{sketch_name}/vendor/rad"
|
98
|
+
puts "Installed RAD into #{sketch_name}/vendor/rad"
|
99
|
+
puts
|
100
|
+
|
101
|
+
# Build vendor/libraries:
|
102
|
+
|
103
|
+
FileUtils.mkdir_p "#{sketch_name}/vendor/libraries"
|
104
|
+
puts "Successfully created your libraries directory."
|
105
|
+
|
106
|
+
|
107
|
+
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/libraries/Servo/.", "#{sketch_name}/vendor/libraries/Servo"
|
108
|
+
puts "Installed Servo into #{sketch_name}/vendor/libraries"
|
109
|
+
puts
|
110
|
+
|
111
|
+
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/libraries/SWSerLCDpa/.", "#{sketch_name}/vendor/libraries/SWSerLCDpa"
|
112
|
+
puts "Installed SWSerLCDpa into #{sketch_name}/vendor/libraries"
|
113
|
+
puts
|
114
|
+
|
115
|
+
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/libraries/SWSerLCDsf/.", "#{sketch_name}/vendor/libraries/SWSerLCDsf"
|
116
|
+
puts "Installed SWSerLCDsf into #{sketch_name}/vendor/libraries"
|
117
|
+
puts
|
118
|
+
|
119
|
+
# Build vendor/plugins:
|
120
|
+
|
121
|
+
FileUtils.mkdir_p "#{sketch_name}/vendor/plugins"
|
122
|
+
puts "Successfully created your plugins directory."
|
123
|
+
|
124
|
+
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/plugins/.", "#{sketch_name}/vendor/plugins"
|
125
|
+
puts "Installed Default plugins into #{sketch_name}/vendor/plugins"
|
126
|
+
puts
|
127
|
+
|
128
|
+
# Build sketch files, etc.:
|
129
|
+
|
130
|
+
FileUtils.touch "#{sketch_name}/#{sketch_name}.rb"
|
131
|
+
File.open("#{sketch_name}/#{sketch_name}.rb", "w") do |file|
|
132
|
+
file << <<-EOS
|
133
|
+
class #{sketch_name.split("_").collect{|c| c.capitalize}.join("")} < ArduinoSketch
|
134
|
+
|
135
|
+
# quick overview:
|
136
|
+
# external variables can be added.. use a comma separation, colons are added automatically
|
137
|
+
#
|
138
|
+
#external_vars :foo => "long unsigned, 0", :bar => "int"
|
139
|
+
# result "long unsigned foo = 0" and "int bar;"
|
140
|
+
# note while this is ruby, many methods and some operators you take for granted are not implemented
|
141
|
+
# some examples: blocks, case statements, +=
|
142
|
+
# keep it simple and remember that the arduino uses a simple loop
|
143
|
+
# you can branch out with your other methods here or use
|
144
|
+
# add_to_setup to call a method once (todo: look at signatures)
|
145
|
+
# since all the methods are converted to C, assumptions are made regarding variable types
|
146
|
+
# for example if we need integers to call serial_print hack = input + output + 1
|
147
|
+
# pin examples
|
148
|
+
# input_pin 10, :as => :back_on_button, :latch => :off
|
149
|
+
# input_pin 12, :as => :back_off_button, :latch => :off
|
150
|
+
# output_pin 5, :as => :red_led
|
151
|
+
# input_pin 8, :as => :red_button, :latch => :off, :adjust => 250
|
152
|
+
# output_pin 4, :as => :top_servo, :min => 700, :max => 2200
|
153
|
+
|
154
|
+
# three line servo (don't forget do declare servo_amount')
|
155
|
+
# sensor_position = analogRead(sensor)
|
156
|
+
# servo_amount = (sensor_position*2 + 500)
|
157
|
+
# move_servo top_servo, servo_amount
|
158
|
+
# one line debounce:
|
159
|
+
# debounce_toggle(button, led)
|
160
|
+
# debounce a read (returns high)
|
161
|
+
# do_something if debounce_read(button, led)
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
# hello world (uncomment to run)
|
166
|
+
|
167
|
+
#output_pin 13, :as => :led
|
168
|
+
# def loop
|
169
|
+
# blink led, 100
|
170
|
+
# end
|
171
|
+
end
|
172
|
+
EOS
|
173
|
+
end
|
174
|
+
puts "Added #{sketch_name}/#{sketch_name}.rb"
|
175
|
+
|
176
|
+
File.open("#{sketch_name}/Rakefile", 'w') do |file|
|
177
|
+
file << <<-EOS
|
178
|
+
require 'vendor/rad/init.rb'
|
179
|
+
EOS
|
180
|
+
end
|
181
|
+
puts "Added #{sketch_name}/Rakefile"
|
182
|
+
|
183
|
+
FileUtils.mkdir_p "#{sketch_name}/config"
|
184
|
+
puts "Added #{sketch_name}/config"
|
185
|
+
|
186
|
+
File.open("#{sketch_name}/config/hardware.yml", 'w') do |file|
|
187
|
+
file << options["hardware"].to_yaml
|
188
|
+
end
|
189
|
+
puts "Added #{sketch_name}/config/hardware.yml"
|
190
|
+
|
191
|
+
File.open("#{sketch_name}/config/software.yml", 'w') do |file|
|
192
|
+
file << options["software"].to_yaml
|
193
|
+
end
|
194
|
+
puts "Added #{sketch_name}/config/software.yml"
|
195
|
+
|
196
|
+
puts
|
197
|
+
puts "Run 'rake -T' inside your sketch dir to learn how to compile and upload it."
|
@@ -0,0 +1,267 @@
|
|
1
|
+
/*
|
2
|
+
SWSerLCDpa.cpp - Software serial to Peter Anderson controller chip based
|
3
|
+
LCD display library Adapted from SoftwareSerial.cpp (c) 2006 David A. Mellis
|
4
|
+
by Brian B. Riley, Underhill Center, Vermont, USA, July 2007
|
5
|
+
|
6
|
+
This library is free software; you can redistribute it and/or
|
7
|
+
modify it under the terms of the GNU Lesser General Public
|
8
|
+
License as published by the Free Software Foundation; either
|
9
|
+
version 2.1 of the License, or (at your option) any later version.
|
10
|
+
|
11
|
+
This library is distributed in the hope that it will be useful,
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14
|
+
Lesser General Public License for more details.
|
15
|
+
|
16
|
+
You should have received a copy of the GNU Lesser General Public
|
17
|
+
License along with this library; if not, write to the Free Software
|
18
|
+
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
19
|
+
*/
|
20
|
+
|
21
|
+
/******************************************************************************
|
22
|
+
* Includes
|
23
|
+
******************************************************************************/
|
24
|
+
|
25
|
+
#include "WConstants.h"
|
26
|
+
#include "SWSerLCDpa.h"
|
27
|
+
|
28
|
+
/******************************************************************************
|
29
|
+
* Definitions
|
30
|
+
******************************************************************************/
|
31
|
+
|
32
|
+
/******************************************************************************
|
33
|
+
* Constructors
|
34
|
+
******************************************************************************/
|
35
|
+
|
36
|
+
SWSerLCDpa::SWSerLCDpa(uint8_t transmitPin)
|
37
|
+
{
|
38
|
+
_transmitPin = transmitPin;
|
39
|
+
_baudRate = 0;
|
40
|
+
pinMode(_transmitPin, OUTPUT);
|
41
|
+
_geometry = 0;
|
42
|
+
}
|
43
|
+
|
44
|
+
SWSerLCDpa::SWSerLCDpa(uint8_t transmitPin, int geometry)
|
45
|
+
{
|
46
|
+
_transmitPin = transmitPin;
|
47
|
+
_baudRate = 0;
|
48
|
+
pinMode(_transmitPin, OUTPUT);
|
49
|
+
_geometry = geometry;
|
50
|
+
}
|
51
|
+
|
52
|
+
|
53
|
+
|
54
|
+
/******************************************************************************
|
55
|
+
* User API
|
56
|
+
******************************************************************************/
|
57
|
+
|
58
|
+
void SWSerLCDpa::begin(long speed)
|
59
|
+
{
|
60
|
+
_baudRate = speed;
|
61
|
+
_bitPeriod = 1000000 / _baudRate;
|
62
|
+
|
63
|
+
digitalWrite(_transmitPin, HIGH);
|
64
|
+
delayMicroseconds( _bitPeriod); // if we were low this establishes the end
|
65
|
+
delay(20);
|
66
|
+
clearscr();
|
67
|
+
if (_geometry)
|
68
|
+
setgeo(_geometry);
|
69
|
+
|
70
|
+
}
|
71
|
+
|
72
|
+
void SWSerLCDpa::print(uint8_t b)
|
73
|
+
{
|
74
|
+
if (_baudRate == 0)
|
75
|
+
return;
|
76
|
+
|
77
|
+
int bitDelay = _bitPeriod - clockCyclesToMicroseconds(50); // a digitalWrite is about 50 cycles
|
78
|
+
byte mask;
|
79
|
+
|
80
|
+
digitalWrite(_transmitPin, LOW);
|
81
|
+
delayMicroseconds(bitDelay);
|
82
|
+
|
83
|
+
for (mask = 0x01; mask; mask <<= 1) {
|
84
|
+
if (b & mask){ // choose bit
|
85
|
+
digitalWrite(_transmitPin,HIGH); // send 1
|
86
|
+
}
|
87
|
+
else{
|
88
|
+
digitalWrite(_transmitPin,LOW); // send 1
|
89
|
+
}
|
90
|
+
delayMicroseconds(bitDelay);
|
91
|
+
}
|
92
|
+
|
93
|
+
digitalWrite(_transmitPin, HIGH);
|
94
|
+
delayMicroseconds(bitDelay);
|
95
|
+
}
|
96
|
+
|
97
|
+
void SWSerLCDpa::print(const char *s)
|
98
|
+
{
|
99
|
+
while (*s) {
|
100
|
+
print(*s++);
|
101
|
+
delay(1);
|
102
|
+
}
|
103
|
+
}
|
104
|
+
|
105
|
+
void SWSerLCDpa::print(char c)
|
106
|
+
{
|
107
|
+
print((uint8_t) c);
|
108
|
+
}
|
109
|
+
|
110
|
+
void SWSerLCDpa::print(int n)
|
111
|
+
{
|
112
|
+
print((long) n);
|
113
|
+
}
|
114
|
+
|
115
|
+
void SWSerLCDpa::print(unsigned int n)
|
116
|
+
{
|
117
|
+
print((unsigned long) n);
|
118
|
+
}
|
119
|
+
|
120
|
+
void SWSerLCDpa::print(long n)
|
121
|
+
{
|
122
|
+
if (n < 0) {
|
123
|
+
print('-');
|
124
|
+
n = -n;
|
125
|
+
}
|
126
|
+
printNumber(n, 10);
|
127
|
+
}
|
128
|
+
|
129
|
+
void SWSerLCDpa::print(unsigned long n)
|
130
|
+
{
|
131
|
+
printNumber(n, 10);
|
132
|
+
}
|
133
|
+
|
134
|
+
void SWSerLCDpa::print(long n, int base)
|
135
|
+
{
|
136
|
+
if (base == 0)
|
137
|
+
print((char) n);
|
138
|
+
else if (base == 10)
|
139
|
+
print(n);
|
140
|
+
else
|
141
|
+
printNumber(n, base);
|
142
|
+
}
|
143
|
+
|
144
|
+
// -------- PHA unique codes -------------------------
|
145
|
+
void SWSerLCDpa::println(void)
|
146
|
+
{
|
147
|
+
print("?n");
|
148
|
+
delay(10);
|
149
|
+
}
|
150
|
+
|
151
|
+
void SWSerLCDpa::clearscr(void)
|
152
|
+
{
|
153
|
+
print("?f");
|
154
|
+
delay(100);
|
155
|
+
}
|
156
|
+
|
157
|
+
void SWSerLCDpa::home(void)
|
158
|
+
{
|
159
|
+
print("?a");
|
160
|
+
delay(10);
|
161
|
+
}
|
162
|
+
|
163
|
+
|
164
|
+
void SWSerLCDpa::setgeo(int geometry)
|
165
|
+
{
|
166
|
+
print("?G");
|
167
|
+
print(geometry);
|
168
|
+
delay(200);
|
169
|
+
}
|
170
|
+
|
171
|
+
void SWSerLCDpa::setintensity(int intensity)
|
172
|
+
{
|
173
|
+
print("?B");
|
174
|
+
if (intensity < 16)
|
175
|
+
print('0');
|
176
|
+
print(intensity, 16);
|
177
|
+
delay(200);
|
178
|
+
}
|
179
|
+
|
180
|
+
void SWSerLCDpa::intoBignum(void)
|
181
|
+
{
|
182
|
+
print("?>3");
|
183
|
+
}
|
184
|
+
|
185
|
+
void SWSerLCDpa::outofBignum(void)
|
186
|
+
{
|
187
|
+
print("?<");
|
188
|
+
}
|
189
|
+
|
190
|
+
|
191
|
+
void SWSerLCDpa::setxy(int x, int y)
|
192
|
+
{
|
193
|
+
print("?y");
|
194
|
+
print(y);
|
195
|
+
print("?x");
|
196
|
+
if (x < 10)
|
197
|
+
print('0');
|
198
|
+
print(x);
|
199
|
+
delay(10);
|
200
|
+
}
|
201
|
+
|
202
|
+
|
203
|
+
void SWSerLCDpa::println(char c)
|
204
|
+
{
|
205
|
+
print(c);
|
206
|
+
println();
|
207
|
+
}
|
208
|
+
|
209
|
+
void SWSerLCDpa::println(const char c[])
|
210
|
+
{
|
211
|
+
print(c);
|
212
|
+
println();
|
213
|
+
}
|
214
|
+
|
215
|
+
void SWSerLCDpa::println(uint8_t b)
|
216
|
+
{
|
217
|
+
print(b);
|
218
|
+
println();
|
219
|
+
}
|
220
|
+
|
221
|
+
void SWSerLCDpa::println(int n)
|
222
|
+
{
|
223
|
+
print(n);
|
224
|
+
println();
|
225
|
+
}
|
226
|
+
|
227
|
+
void SWSerLCDpa::println(long n)
|
228
|
+
{
|
229
|
+
print(n);
|
230
|
+
println();
|
231
|
+
}
|
232
|
+
|
233
|
+
void SWSerLCDpa::println(unsigned long n)
|
234
|
+
{
|
235
|
+
print(n);
|
236
|
+
println();
|
237
|
+
}
|
238
|
+
|
239
|
+
void SWSerLCDpa::println(long n, int base)
|
240
|
+
{
|
241
|
+
print(n, base);
|
242
|
+
println();
|
243
|
+
}
|
244
|
+
|
245
|
+
// Private Methods /////////////////////////////////////////////////////////////
|
246
|
+
|
247
|
+
void SWSerLCDpa::printNumber(unsigned long n, uint8_t base)
|
248
|
+
{
|
249
|
+
unsigned char buf[8 * sizeof(long)]; // Assumes 8-bit chars.
|
250
|
+
unsigned long i = 0;
|
251
|
+
|
252
|
+
if (n == 0) {
|
253
|
+
print('0');
|
254
|
+
return;
|
255
|
+
}
|
256
|
+
|
257
|
+
while (n > 0) {
|
258
|
+
buf[i++] = n % base;
|
259
|
+
n /= base;
|
260
|
+
}
|
261
|
+
|
262
|
+
for (; i > 0; i--)
|
263
|
+
print((char) (buf[i - 1] < 10 ? '0' + buf[i - 1] : 'A' + buf[i - 1] - 10));
|
264
|
+
|
265
|
+
delay(8);
|
266
|
+
|
267
|
+
}
|
@@ -0,0 +1,64 @@
|
|
1
|
+
/*
|
2
|
+
SWSerLCDpa.h - Software serial to Peter Anderson controller chip based
|
3
|
+
LCD display library Adapted from SoftwareSerial.cpp (c) 2006 David A. Mellis
|
4
|
+
by Brian B. Riley, Underhill Center, Vermont, USA, July 2007
|
5
|
+
|
6
|
+
This library is free software; you can redistribute it and/or
|
7
|
+
modify it under the terms of the GNU Lesser General Public
|
8
|
+
License as published by the Free Software Foundation; either
|
9
|
+
version 2.1 of the License, or (at your option) any later version.
|
10
|
+
|
11
|
+
This library is distributed in the hope that it will be useful,
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14
|
+
Lesser General Public License for more details.
|
15
|
+
|
16
|
+
You should have received a copy of the GNU Lesser General Public
|
17
|
+
License along with this library; if not, write to the Free Software
|
18
|
+
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
19
|
+
*/
|
20
|
+
|
21
|
+
#ifndef SWSerLCDpa_h
|
22
|
+
#define SWSerLCDpa_h
|
23
|
+
|
24
|
+
#include <inttypes.h>
|
25
|
+
|
26
|
+
class SWSerLCDpa
|
27
|
+
{
|
28
|
+
private:
|
29
|
+
uint8_t _transmitPin;
|
30
|
+
long _baudRate;
|
31
|
+
int _bitPeriod;
|
32
|
+
int _geometry;
|
33
|
+
void printNumber(unsigned long, uint8_t);
|
34
|
+
public:
|
35
|
+
SWSerLCDpa(uint8_t, int);
|
36
|
+
SWSerLCDpa(uint8_t);
|
37
|
+
void begin(long);
|
38
|
+
void print(char);
|
39
|
+
void print(const char[]);
|
40
|
+
void print(uint8_t);
|
41
|
+
void print(int);
|
42
|
+
void print(unsigned int);
|
43
|
+
void print(long);
|
44
|
+
void print(unsigned long);
|
45
|
+
void print(long, int);
|
46
|
+
void println(void);
|
47
|
+
void clearscr(void);
|
48
|
+
void home(void);
|
49
|
+
void setgeo(int);
|
50
|
+
void setintensity(int);
|
51
|
+
void intoBignum(void);
|
52
|
+
void outofBignum(void);
|
53
|
+
void setxy(int, int);
|
54
|
+
void println(char);
|
55
|
+
void println(const char[]);
|
56
|
+
void println(uint8_t);
|
57
|
+
void println(int);
|
58
|
+
void println(long);
|
59
|
+
void println(unsigned long);
|
60
|
+
void println(long, int);
|
61
|
+
};
|
62
|
+
|
63
|
+
#endif
|
64
|
+
|