14
14
15
15
AdafruitIO_Data::AdafruitIO_Data ()
16
16
{
17
- _csv = 0 ;
18
17
_lat = 0 ;
19
18
_lon = 0 ;
20
19
_ele = 0 ;
21
20
next_data = 0 ;
22
21
23
22
memset (_feed, 0 , AIO_FEED_NAME_LENGTH);
24
23
memset (_value, 0 , AIO_DATA_LENGTH);
24
+ memset (_csv, 0 , AIO_CSV_LENGTH);
25
25
}
26
26
27
27
AdafruitIO_Data::AdafruitIO_Data (AdafruitIO_Feed *f)
28
28
{
29
- _csv = 0 ;
30
29
_lat = 0 ;
31
30
_lon = 0 ;
32
31
_ele = 0 ;
@@ -35,11 +34,11 @@ AdafruitIO_Data::AdafruitIO_Data(AdafruitIO_Feed *f)
35
34
memset (_feed, 0 , AIO_FEED_NAME_LENGTH);
36
35
strcpy (_feed, f->name );
37
36
memset (_value, 0 , AIO_DATA_LENGTH);
37
+ memset (_csv, 0 , AIO_CSV_LENGTH);
38
38
}
39
39
40
40
AdafruitIO_Data::AdafruitIO_Data (AdafruitIO_Feed *f, char *csv)
41
41
{
42
- _csv = csv;
43
42
_lat = 0 ;
44
43
_lon = 0 ;
45
44
_ele = 0 ;
@@ -48,13 +47,14 @@ AdafruitIO_Data::AdafruitIO_Data(AdafruitIO_Feed *f, char *csv)
48
47
memset (_feed, 0 , AIO_FEED_NAME_LENGTH);
49
48
strcpy (_feed, f->name );
50
49
memset (_value, 0 , AIO_DATA_LENGTH);
50
+ memset (_csv, 0 , AIO_CSV_LENGTH);
51
+ strcpy (_csv, csv);
51
52
52
53
_parseCSV ();
53
54
}
54
55
55
56
AdafruitIO_Data::AdafruitIO_Data (const char *f)
56
57
{
57
- _csv = 0 ;
58
58
_lat = 0 ;
59
59
_lon = 0 ;
60
60
_ele = 0 ;
@@ -67,7 +67,6 @@ AdafruitIO_Data::AdafruitIO_Data(const char *f)
67
67
68
68
AdafruitIO_Data::AdafruitIO_Data (const char *f, char *csv)
69
69
{
70
- _csv = csv;
71
70
_lat = 0 ;
72
71
_lon = 0 ;
73
72
_ele = 0 ;
@@ -76,13 +75,16 @@ AdafruitIO_Data::AdafruitIO_Data(const char *f, char *csv)
76
75
memset (_feed, 0 , AIO_FEED_NAME_LENGTH);
77
76
strcpy (_feed, f);
78
77
memset (_value, 0 , AIO_DATA_LENGTH);
78
+ memset (_csv, 0 , AIO_CSV_LENGTH);
79
+ strcpy (_csv, csv);
79
80
80
81
_parseCSV ();
81
82
}
82
83
83
84
bool AdafruitIO_Data::setCSV (char *csv)
84
85
{
85
- _csv = csv;
86
+ memset (_csv, 0 , AIO_CSV_LENGTH);
87
+ strcpy (_csv, csv);
86
88
return _parseCSV ();
87
89
}
88
90
@@ -91,7 +93,6 @@ void AdafruitIO_Data::setLocation(double lat, double lon, double ele)
91
93
// if lat, lon, ele == 0, don't set them
92
94
if ((abs (0 -lat) < 0.000001 ) && (abs (0 -lon) < 0.000001 ) && (abs (0 -ele) < 0.000001 ))
93
95
return ;
94
-
95
96
_lat = lat;
96
97
_lon = lon;
97
98
_ele = ele;
@@ -358,20 +359,18 @@ long AdafruitIO_Data::toNeoPixel()
358
359
359
360
char * AdafruitIO_Data::toCSV ()
360
361
{
361
- char csv[150 ];
362
-
363
362
if (! _value)
364
363
return _csv;
365
364
366
- strcpy (csv, _value);
367
- strcat (csv, " ," );
368
- strcat (csv, charFromDouble (_lat));
369
- strcat (csv, " ," );
370
- strcat (csv, charFromDouble (_lon));
371
- strcat (csv, " ," );
372
- strcat (csv, charFromDouble (_ele, 2 ));
365
+ memset (_csv, 0 , AIO_CSV_LENGTH);
373
366
374
- _csv = csv;
367
+ strcpy (_csv, _value);
368
+ strcat (_csv, " ," );
369
+ strcat (_csv, charFromDouble (_lat));
370
+ strcat (_csv, " ," );
371
+ strcat (_csv, charFromDouble (_lon));
372
+ strcat (_csv, " ," );
373
+ strcat (_csv, charFromDouble (_ele, 2 ));
375
374
376
375
return _csv;
377
376
}
0 commit comments