Even though I understand all the feedback about βCellocateβ and accoring features I would like to implement my own Positioning Endevor through Triangulation.
I found some very good background material here: http://www.neilson.co.za/mobile-network-geolocation-obtaining-the-cell-ids-the-signal-strength-of-surrounding-towers-from-a-gsm-modem/
For that reason I wrote a very simple program that takes AT commands from serial port, executes the AT command and writes the output to serial port:
ββββββββββββββββββββββββββββββββββββββββββ
int callbackAT(int type, const char* buf, int len, char* param){
Serial.println("AT Respone: ");
Serial.write((const uint8_t*)buf, len);
return RESP_OK;
}
void setup() {
Serial.begin(9600);
Serial.flush();
}
void loop() {
int i=0;
char commandbuffer[100];
char myResponse[5000];
// GET DATA FROM SERIAL
if(Serial.available()){
delay(100);
while( Serial.available() && i< 99) {
commandbuffer[i++] = Serial.read();
}
commandbuffer[i-1]='\r';
commandbuffer[i]= '\n';
}
// EXECUTE "AT COMMAND"
if(i>0)
{
Serial.println("AT Command: ");
Serial.println(commandbuffer);
Serial.println("------------");
Cellular.command(callbackAT, myResponse, 5000, (char*)commandbuffer);
}
}
ββββββββββββββββββββββββββββββββββββββββββ
For getting the signal strength of the various cells (serving cell and network cell) I am using AT+CGED
And here starts the problem:
AT+CGED=? - Returns (0-6) - means that I can get information using the following modes:
- 0 (default value): one shot dump
- 1: periodic refreshed dump; the information for up to 32 neighbour cells is available
- 2: stop periodic dump
- 3: one shot serving cell dump
- 4: periodic serving cell refreshed dump
*5: one shot serving cell and neighbour cells dump
- 6: periodic serving cell and neighbour cells refreshed dump
Whenever I execute βAT+CGED=3β I am getting Feedback about the serving cell
Whenever I execute βAT+CGED=5β in order to get information about the neighbor cells the AT command hangs and I cannot execute any follow up AT commands anymore
Any Idea on why that is???