i have got these errors while programming please help me to sort this out
errors are :
Arduino: 1.5.8 (Windows 8), Board: "Arduino Uno"
sketch_feb17a.ino: In function 'void loop()':
sketch_feb17a.ino:141:23: error: invalid types 'int[int]' for array subscript
sketch_feb17a.ino:142:25: error: invalid types 'int[int]' for array subscript
Error compiling.
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
#include <SoftwareSerial.h>
#include <TinyGPS.h>
#include "SIM900.h"
#include "sms.h"
SMSGSM sms;
boolean started= false;
// GPS parser for 406a
#define BUFFSIZ 45 // plenty big
int ledpin = 13;
int knockSensor = A0; // the piezo is connected to analog pin 0
int threshold = 30; // threshold value to decide when the detected sound is a knock or not
int sensorReading = 0;
char buffer[BUFFSIZ];
char *parseptr;
char buffidx;
uint8_t hour, minute, second, year, month, date;
int latitude, longitude;
uint8_t groundspeed, trackangle;
char latdir, longdir;
char status;
void setup()
{
if (ledpin)
{
pinMode(ledpin, OUTPUT);
}
pinMode(13, OUTPUT);
Serial.begin(9600); // prints title with ending line break
Serial.println("GPS parser");
digitalWrite(ledpin, LOW); // pull low to turn on!\
}
void loop()
{ int tmp;
sensorReading = analogRead(knockSensor);
if (sensorReading >= threshold)
{
Serial.print("\n\rread: ");
readline();
// check if $GPRMC (global positioning fixed data)
if (strncmp(buffer, "$GPRMC",6) == 0)
{
// hhmmss time data
parseptr = buffer+7;
tmp = parsedecimal(parseptr);
hour = tmp / 10000;
minute = (tmp / 100) % 100;
second = tmp % 100;
parseptr = strchr(parseptr, ',') + 1;
status = parseptr[0];
parseptr += 2;
// grab latitude & long data // latitude
latitude = parsedecimal(parseptr);
if (latitude != 0)
{
latitude *= 10000;
parseptr = strchr(parseptr, '.')+1;
latitude += parsedecimal(parseptr);
} parseptr = strchr(parseptr, ',') + 1;
// read latitude N/S data
if (parseptr[0] != ',')
{
latdir = parseptr[0];
}
Serial.print(latdir);
// longitude
parseptr = strchr(parseptr, ',')+1;
longitude = parsedecimal(parseptr);
if (longitude != 0)
{
longitude *= 10000;
parseptr = strchr(parseptr, '.')+1;
longitude += parsedecimal(parseptr);
}
parseptr = strchr(parseptr, ',')+1;
// read longitude E/W data
if (parseptr[0] != ',')
{
longdir = parseptr[0];
}
Serial.print(longdir);
// groundspeed
parseptr = strchr(parseptr, ',')+1;
groundspeed = parsedecimal(parseptr);
// track angle
parseptr = strchr(parseptr, ',')+1;
trackangle = parsedecimal(parseptr);
// date
parseptr = strchr(parseptr, ',')+1;
tmp = parsedecimal(parseptr);
date = tmp / 10000;
month = (tmp / 100) % 100;
year = tmp % 100;
Serial.print("\nTime: ");
Serial.print(hour, DEC);
Serial.print(':');
Serial.print(minute, DEC);
Serial.print(':');
Serial.println(second, DEC);
Serial.print("Date: ");
Serial.print(month, DEC);
Serial.print('/');
Serial.print(date, DEC);
Serial.print('/');
Serial.println(year, DEC);
Serial.print("Lat: ");
if (latdir == 'N')
Serial.print('+');
else if (latdir == 'S')
Serial.print('-');
Serial.print(latitude/1000000, DEC);
Serial.print('\°');
Serial.print(' ');
Serial.print((latitude/10000)%100, DEC);
Serial.print('\''); Serial.print(' ');
Serial.print((latitude%10000)*6/1000, DEC);
Serial.print('.');
Serial.print(((latitude%10000)*6/10)%100, DEC);
Serial.println('"');
Serial.print("Long: ");
if (longdir == 'E')
Serial.print('+');
else if (longdir == 'W')
Serial.print('-');
Serial.print(longitude/1000000, DEC);
Serial.print('\°');
Serial.print(' ');
Serial.print((longitude/10000)%100, DEC);
Serial.print('\''); Serial.print(' ');
Serial.print((longitude%10000)*6/1000, DEC);
Serial.print('.');
Serial.print(((longitude%10000)*6/10)%100, DEC);
Serial.println('"');
Serial.print(latitude);
Serial.print(longitude);
latitude=lati[10];
longitude=longi[10];
Serial.print(lati);
Serial.print(longi);
Serial.println(buffer);
delay(1000);
Serial.println("GSM Testing to send SMS");
if (gsm.begin(9600))
{
Serial.println("\nstatus=READY");
started=true;
}
else
{
Serial.println("\nstatus=IDLE");
}
if(started)
{
if (sms.SendSMS("+919052378836", "accident has occured at"))
if (sms.SendSMS("+919052378836", buffer))
Serial.println("\nSMS sent OK");
}
}
}
}
uint32_t parsedecimal(char *str)
{
uint32_t d = 0;
while (str[0] != 0)
{
if ((str[0] > '9') || (str[0] < '0'))
return d;
d *= 10;
d += str[0] - '0';
str++;
}
return d;
}
void readline(void)
{ char c;
buffidx = 0;
// start at begninning
while (1)
{
c=Serial.read();
if (c == -1)
continue;
Serial.print(c);
if (c == '\n')
continue;
if ((buffidx == BUFFSIZ-1) || (c == '\r'))
{
buffer[buffidx] = 0;
return;
}
buffer[buffidx++]= c;
}
}
please help me out .. thank you ![]()
Moderator edit:
</mark> <mark>[code]</mark> <mark>
</mark> <mark>[/code]</mark> <mark>
tags added.