Skip to content

Commit cc4d4e1

Browse files
committed
Add init function for hardware initialization
1 parent 74aa8cd commit cc4d4e1

File tree

4 files changed

+25
-14
lines changed

4 files changed

+25
-14
lines changed

LSA08_Simplified.cpp

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,26 @@ LSA08::LSA08(HardwareSerial *port, int baudrate, unsigned int addr, unsigned int
2222
this->mode = LSA08_MODE_SERIAL;
2323
this->port = port;
2424
this->addr = addr;
25-
pin = en_pin;
26-
pinMode(pin, OUTPUT);
27-
digitalWrite(pin, HIGH);
28-
this->port->begin(baudrate);
25+
this->pin = en_pin;
26+
this->baudrate = baudrate;
2927
}
3028

3129
LSA08::LSA08(SoftwareSerial *port, int baudrate, unsigned int addr, unsigned int en_pin)
3230
{
3331
this->mode = LSA08_MODE_SOFT_SERIAL;
3432
this->soft_port = port;
3533
this->addr = addr;
36-
pin = en_pin;
37-
pinMode(pin, OUTPUT);
38-
digitalWrite(pin, HIGH);
39-
this->soft_port->begin(9600);
34+
this->pin = en_pin;
35+
}
36+
37+
void LSA08::init()
38+
{
39+
pinMode(this->pin, OUTPUT);
40+
digitalWrite(this->pin, HIGH);
41+
if(this->mode == LSA08_MODE_SERIAL)
42+
this->port->begin(baudrate);
43+
else if (this->mode == LSA08_MODE_SOFT_SERIAL)
44+
this->soft_port->begin(9600);
4045
}
4146

4247
int LSA08::disable_stream()
@@ -45,7 +50,7 @@ int LSA08::disable_stream()
4550
{
4651
return MODE_ERROR;
4752
}
48-
digitalWrite(pin, HIGH);
53+
digitalWrite(this->pin, HIGH);
4954
return SYS_OK;
5055
}
5156

@@ -55,7 +60,7 @@ int LSA08::enable_stream()
5560
{
5661
return MODE_ERROR;
5762
}
58-
digitalWrite(pin, LOW);
63+
digitalWrite(this->pin, LOW);
5964
return SYS_OK;
6065
}
6166

@@ -87,7 +92,7 @@ int LSA08::set_line_mode(line_mode mode)
8792
{
8893
return MODE_ERROR;
8994
}
90-
if (mode > 1 && mode < 0)
95+
if (mode != LIGHT_LINE && mode != DARK_LINE)
9196
{
9297
return BAD_PACKET;
9398
}
@@ -96,7 +101,7 @@ int LSA08::set_line_mode(line_mode mode)
96101

97102
int LSA08::set_threshold(unsigned int threshold)
98103
{
99-
if (mode != LSA08_MODE_SERIAL && mode != LSA08_MODE_SOFT_SERIAL)
104+
if (this->mode != LSA08_MODE_SERIAL && this->mode != LSA08_MODE_SOFT_SERIAL)
100105
{
101106
return MODE_ERROR;
102107
}
@@ -109,11 +114,11 @@ int LSA08::set_threshold(unsigned int threshold)
109114

110115
unsigned int LSA08::read_line()
111116
{
112-
if (mode == LSA08_MODE_SERIAL || mode == LSA08_MODE_SOFT_SERIAL)
117+
if (this->mode == LSA08_MODE_SERIAL || this->mode == LSA08_MODE_SOFT_SERIAL)
113118
{
114119
return get_data();
115120
}
116-
else if (mode == LSA08_MODE_ANALOG)
121+
else if (this->mode == LSA08_MODE_ANALOG)
117122
{
118123
return analogRead(pin);
119124
}

LSA08_Simplified.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ class LSA08
5050
lsa08_mode mode;
5151
unsigned int pin;
5252
unsigned int addr;
53+
unsigned int baudrate;
5354
HardwareSerial *port;
5455
SoftwareSerial *soft_port;
5556
unsigned char send_packet(unsigned char command, unsigned char value, com_type type);
@@ -60,6 +61,7 @@ class LSA08
6061
LSA08(unsigned int pin);
6162
LSA08(HardwareSerial *port, int baudrate, unsigned int addr, unsigned int en_pin);
6263
LSA08(SoftwareSerial *port, int baudrate, unsigned int addr, unsigned int en_pin);
64+
void init();
6365
int disable_stream();
6466
int enable_stream();
6567
int set_uart_mode(uart_mode mode);

examples/lsa08_basic/lsa08_basic.ino

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ LSA08 sensor = LSA08(&mySerial, 9600, 1, 4);
3535
void setup() {
3636
Serial.begin(9600);
3737

38+
// Initialize the sensor
39+
sensor.init();
40+
3841
// Disable the line position data coming from the LSA08
3942
sensor.disable_stream();
4043

keywords.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ uart_mode KEYWORD1
1111
#######################################
1212

1313
LSA08 KEYWORD2
14+
init KEYWORD2
1415
disable_stream KEYWORD2
1516
enable_stream KEYWORD2
1617
set_uart_mode KEYWORD2

0 commit comments

Comments
 (0)