Calculates azimuth and elevation of a satellite dish based on its longitude, latitude and selected satellite.

Dependencies:   PinDetect TextLCD mbed MODGPS

Committer:
BartJanssens
Date:
Thu Mar 29 09:26:14 2012 +0000
Revision:
0:fe8decc6a938

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
BartJanssens 0:fe8decc6a938 1 #include "SatelliteList.h"
BartJanssens 0:fe8decc6a938 2 #include <iostream>
BartJanssens 0:fe8decc6a938 3
BartJanssens 0:fe8decc6a938 4 SatelliteList::SatelliteList(char *f, char delimiter){
BartJanssens 0:fe8decc6a938 5
BartJanssens 0:fe8decc6a938 6 string line;
BartJanssens 0:fe8decc6a938 7 vector<string> v;
BartJanssens 0:fe8decc6a938 8
BartJanssens 0:fe8decc6a938 9 sfile.open(f);
BartJanssens 0:fe8decc6a938 10 if (sfile.is_open()) {
BartJanssens 0:fe8decc6a938 11 while ( getline(sfile,line) ){
BartJanssens 0:fe8decc6a938 12 if( line.empty() ); // ignore empty lines
BartJanssens 0:fe8decc6a938 13 else if (line.at(0) != ';'){ // ignore comments
BartJanssens 0:fe8decc6a938 14 split( v, line, ';' );
BartJanssens 0:fe8decc6a938 15 //for ( int i = 0; i < v.size(); i++) printf("%s ",v[i].c_str());
BartJanssens 0:fe8decc6a938 16 //printf("\r\n");
BartJanssens 0:fe8decc6a938 17 if (v.size() == 4) {
BartJanssens 0:fe8decc6a938 18 Satellite *s = new Satellite(v[0],v[1], ::atof(v[2].c_str()), ::atof(v[3].c_str()));
BartJanssens 0:fe8decc6a938 19 clist.addNode(*s);
BartJanssens 0:fe8decc6a938 20 delete s;
BartJanssens 0:fe8decc6a938 21 }
BartJanssens 0:fe8decc6a938 22 v.clear();
BartJanssens 0:fe8decc6a938 23 }
BartJanssens 0:fe8decc6a938 24 }
BartJanssens 0:fe8decc6a938 25 //printf("Size Circular List = %d \r\n", clist.getSize());
BartJanssens 0:fe8decc6a938 26 sfile.close();
BartJanssens 0:fe8decc6a938 27 } else printf("Can't open filename %s\r\n", f);
BartJanssens 0:fe8decc6a938 28 }
BartJanssens 0:fe8decc6a938 29
BartJanssens 0:fe8decc6a938 30 void SatelliteList::split(vector<string> & theStringVector, /* Altered/returned value */
BartJanssens 0:fe8decc6a938 31 const string & theString,
BartJanssens 0:fe8decc6a938 32 const char theDelimiter)
BartJanssens 0:fe8decc6a938 33 {
BartJanssens 0:fe8decc6a938 34
BartJanssens 0:fe8decc6a938 35
BartJanssens 0:fe8decc6a938 36 size_t start = 0, end = 0;
BartJanssens 0:fe8decc6a938 37
BartJanssens 0:fe8decc6a938 38 while ( end != string::npos)
BartJanssens 0:fe8decc6a938 39 {
BartJanssens 0:fe8decc6a938 40 end = theString.find( theDelimiter, start);
BartJanssens 0:fe8decc6a938 41
BartJanssens 0:fe8decc6a938 42
BartJanssens 0:fe8decc6a938 43 theStringVector.push_back( theString.substr( start,
BartJanssens 0:fe8decc6a938 44 (end == string::npos) ? string::npos : end - start));
BartJanssens 0:fe8decc6a938 45
BartJanssens 0:fe8decc6a938 46
BartJanssens 0:fe8decc6a938 47 start = ( ( end > (string::npos - 1) )
BartJanssens 0:fe8decc6a938 48 ? string::npos : end + 1);
BartJanssens 0:fe8decc6a938 49 }
BartJanssens 0:fe8decc6a938 50 }
BartJanssens 0:fe8decc6a938 51
BartJanssens 0:fe8decc6a938 52 void SatelliteList::display()
BartJanssens 0:fe8decc6a938 53 {
BartJanssens 0:fe8decc6a938 54 string n, c ;
BartJanssens 0:fe8decc6a938 55 float o,i ;
BartJanssens 0:fe8decc6a938 56
BartJanssens 0:fe8decc6a938 57 clist.toHead();
BartJanssens 0:fe8decc6a938 58 for ( int j = 0; j < clist.getSize(); j++) {
BartJanssens 0:fe8decc6a938 59 Satellite *s = clist.getNode();
BartJanssens 0:fe8decc6a938 60 n = s->getName();
BartJanssens 0:fe8decc6a938 61 c = s->getCname();
BartJanssens 0:fe8decc6a938 62 o = s->getOrbit();
BartJanssens 0:fe8decc6a938 63 i = s->getInclination();
BartJanssens 0:fe8decc6a938 64 printf("Size = %d i = %d Name = %s Cname = %s \r\n",clist.getSize(), j, n.c_str(), c.c_str());
BartJanssens 0:fe8decc6a938 65 clist.moveForward();
BartJanssens 0:fe8decc6a938 66 }
BartJanssens 0:fe8decc6a938 67 }
BartJanssens 0:fe8decc6a938 68
BartJanssens 0:fe8decc6a938 69 Satellite * SatelliteList::getNext()
BartJanssens 0:fe8decc6a938 70 {
BartJanssens 0:fe8decc6a938 71 clist.moveForward();
BartJanssens 0:fe8decc6a938 72 Satellite *s = clist.getNode();
BartJanssens 0:fe8decc6a938 73 return(s);
BartJanssens 0:fe8decc6a938 74 }
BartJanssens 0:fe8decc6a938 75
BartJanssens 0:fe8decc6a938 76 Satellite * SatelliteList::getPrev()
BartJanssens 0:fe8decc6a938 77 {
BartJanssens 0:fe8decc6a938 78 clist.moveBackward();
BartJanssens 0:fe8decc6a938 79 Satellite *s = clist.getNode();
BartJanssens 0:fe8decc6a938 80 return(s);
BartJanssens 0:fe8decc6a938 81 }
BartJanssens 0:fe8decc6a938 82
BartJanssens 0:fe8decc6a938 83 Satellite * SatelliteList::getCurrent()
BartJanssens 0:fe8decc6a938 84 { if (!clist.isEmpty()) {
BartJanssens 0:fe8decc6a938 85 Satellite *s = clist.getNode();
BartJanssens 0:fe8decc6a938 86 return(s);
BartJanssens 0:fe8decc6a938 87 }
BartJanssens 0:fe8decc6a938 88 }