Code for 'Smart Regulator' featured in 'Model Engineer', November 2020 on. Contains all work to August 2020 including all code described. Top level algorithm development is quite spares, leaving some work for you! Any questions - jon@jons-workshop.com

Dependencies:   mbed BufferedSerial Servo2 PCT2075 I2CEeprom FastPWM

Committer:
JonFreeman
Date:
Sat Dec 05 12:40:17 2020 +0000
Revision:
5:6ca3e7ffc553
Parent:
3:43cb067ecd00
Code for 'Smart Regulator' to August 2020, published as is. Basic low-level functions all thoroughly tested and debugged, top level algorithms have scope for further development - over to you! For help contact jon @ jons-workshop[.com

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JonFreeman 3:43cb067ecd00 1 #ifndef MBED_GPS_MOD_H
JonFreeman 3:43cb067ecd00 2 #define MBED_GPS_MOD_H
JonFreeman 3:43cb067ecd00 3
JonFreeman 3:43cb067ecd00 4 #include "mbed.h"
JonFreeman 3:43cb067ecd00 5 const static double PI = 2.0 * acos(0.0),
JonFreeman 3:43cb067ecd00 6 deg2rad = (PI / 180.0),
JonFreeman 3:43cb067ecd00 7 km2miles = (39370.0/36.0/1760.0);
JonFreeman 3:43cb067ecd00 8 class gps_mod
JonFreeman 3:43cb067ecd00 9 {
JonFreeman 3:43cb067ecd00 10 enum {NULLST, WAITING4DOLLAR, GOTDOLLAR, GOTHDR, WAITING4CR, WAITING4LF};
JonFreeman 3:43cb067ecd00 11 const static int MAXMSGLEN = 86;
JonFreeman 3:43cb067ecd00 12 // private: by default
JonFreeman 3:43cb067ecd00 13 bool inmsg, newdata;
JonFreeman 3:43cb067ecd00 14 int ch, state, i, chcnt;
JonFreeman 3:43cb067ecd00 15 char hdracc[8], dest[6*(MAXMSGLEN + 4)],
JonFreeman 3:43cb067ecd00 16 posfix[4],
JonFreeman 3:43cb067ecd00 17 numofsats[4],
JonFreeman 3:43cb067ecd00 18 latstr[16],
JonFreeman 3:43cb067ecd00 19 longstr[16],
JonFreeman 3:43cb067ecd00 20 altistr[16],
JonFreeman 3:43cb067ecd00 21 speed_mphourstr[16],
JonFreeman 3:43cb067ecd00 22 headingstr[16],
JonFreeman 3:43cb067ecd00 23 datestr[16],
JonFreeman 3:43cb067ecd00 24 timestr[16];
JonFreeman 3:43cb067ecd00 25 char * destptr;
JonFreeman 3:43cb067ecd00 26 public:
JonFreeman 3:43cb067ecd00 27 //BufferedSoftSerial gps_module (PinName _pinTx, PinName _pinRx);
JonFreeman 3:43cb067ecd00 28 gps_mod();
JonFreeman 3:43cb067ecd00 29 int update();
JonFreeman 3:43cb067ecd00 30 void tock_handler();
JonFreeman 3:43cb067ecd00 31 char * position_fix_indicator ();
JonFreeman 3:43cb067ecd00 32 char * message(int);
JonFreeman 3:43cb067ecd00 33 char * time ();
JonFreeman 3:43cb067ecd00 34 char * date ();
JonFreeman 3:43cb067ecd00 35 char * heading ();
JonFreeman 3:43cb067ecd00 36 char * mph ();
JonFreeman 3:43cb067ecd00 37 char * sat_count ();
JonFreeman 3:43cb067ecd00 38 char * latitude();
JonFreeman 3:43cb067ecd00 39 char * longitude();
JonFreeman 3:43cb067ecd00 40 char * altitude();
JonFreeman 3:43cb067ecd00 41 bool fix_valid();
JonFreeman 3:43cb067ecd00 42 bool new_data();
JonFreeman 3:43cb067ecd00 43 double mergedegmin (char *, char *);
JonFreeman 3:43cb067ecd00 44 double lat_merged ();
JonFreeman 3:43cb067ecd00 45 double lon_merged ();
JonFreeman 3:43cb067ecd00 46 };
JonFreeman 3:43cb067ecd00 47
JonFreeman 3:43cb067ecd00 48 //class Flasher {
JonFreeman 3:43cb067ecd00 49 //public:
JonFreeman 3:43cb067ecd00 50 // Flasher(PinName pin);
JonFreeman 3:43cb067ecd00 51 // void flash(int n);
JonFreeman 3:43cb067ecd00 52 //
JonFreeman 3:43cb067ecd00 53 //private:
JonFreeman 3:43cb067ecd00 54 // DigitalOut _pin;
JonFreeman 3:43cb067ecd00 55 //};
JonFreeman 3:43cb067ecd00 56
JonFreeman 3:43cb067ecd00 57 #endif
JonFreeman 3:43cb067ecd00 58