Ivan Stoev

Dependents:   3daf572bcae1 Team Team01_HEPTA_Trainig

Fork of HeptaCamera_GPS by HEPTA-Sat Training 2017~2018

Committer:
tuba
Date:
Sat Oct 28 09:25:36 2017 +0000
Revision:
18:da116273b461
Parent:
17:a30fa71eddb7
final

Who changed what in which revision?

UserRevisionLine numberNew contents of line
umeume 8:6d9c33df4c09 1 #include "mbed.h"
umeume 8:6d9c33df4c09 2 #include "SerialBuffered.h"
umeume 8:6d9c33df4c09 3
umeume 8:6d9c33df4c09 4 #ifndef HEPTA_SERIAL_H
umeume 8:6d9c33df4c09 5 #define HEPTA_SERIAL_H
umeume 8:6d9c33df4c09 6
umeume 8:6d9c33df4c09 7 class HeptaCamera_GPS
umeume 8:6d9c33df4c09 8 {
umeume 8:6d9c33df4c09 9 public:
umeume 8:6d9c33df4c09 10
umeume 8:6d9c33df4c09 11 enum JpegResolution {
umeume 8:6d9c33df4c09 12 JpegResolution80x64 = 0x01, // unofficial
umeume 8:6d9c33df4c09 13 JpegResolution160x128 = 0x03, // unofficial
umeume 8:6d9c33df4c09 14 JpegResolution320x240 = 0x05, // QVGA
umeume 8:6d9c33df4c09 15 JpegResolution640x480 = 0x07 // VGA
umeume 8:6d9c33df4c09 16 };
umeume 8:6d9c33df4c09 17
umeume 8:6d9c33df4c09 18 enum ErrorNumber {
umeume 8:6d9c33df4c09 19 NoError = 0x00,
umeume 8:6d9c33df4c09 20 UnexpectedReply = 0x04,
umeume 8:6d9c33df4c09 21 ParameterError = 0x0b,
umeume 8:6d9c33df4c09 22 SendRegisterTimeout = 0x0c,
umeume 8:6d9c33df4c09 23 CommandIdError = 0x0d,
umeume 8:6d9c33df4c09 24 CommandHeaderError = 0xf0,
umeume 8:6d9c33df4c09 25 SetTransferPackageSizeWrong = 0x11
umeume 8:6d9c33df4c09 26 };
umeume 8:6d9c33df4c09 27
umeume 8:6d9c33df4c09 28 enum Baud {
umeume 8:6d9c33df4c09 29 Baud460800 = 0x02,
umeume 8:6d9c33df4c09 30 Baud230400 = 0x03,
umeume 8:6d9c33df4c09 31 Baud115200 = 0x04,
umeume 8:6d9c33df4c09 32 Baud57600 = 0x05,
umeume 8:6d9c33df4c09 33 Baud28800 = 0x06,
umeume 8:6d9c33df4c09 34 Baud14400 = 0x07 // Default.
umeume 8:6d9c33df4c09 35 };
umeume 8:6d9c33df4c09 36
umeume 8:6d9c33df4c09 37 enum ResetType {
umeume 8:6d9c33df4c09 38 Nomal = 0x00,
umeume 8:6d9c33df4c09 39 High = 0xff
umeume 8:6d9c33df4c09 40 };
umeume 8:6d9c33df4c09 41
umeume 8:6d9c33df4c09 42 HeptaCamera_GPS(PinName tx, PinName rx, PinName CAM, PinName GPS);
umeume 8:6d9c33df4c09 43
umeume 8:6d9c33df4c09 44 ~HeptaCamera_GPS();
umeume 8:6d9c33df4c09 45
umeume 8:6d9c33df4c09 46 ErrorNumber sync();
umeume 8:6d9c33df4c09 47 ErrorNumber init(Baud baud, JpegResolution jr);
umeume 8:6d9c33df4c09 48 ErrorNumber getJpegSnapshotPicture();
tuba 17:a30fa71eddb7 49 ErrorNumber getJpegSnapshotPicture(FILE*fp);
umeume 8:6d9c33df4c09 50 ErrorNumber getJpegSnapshotPicture_data();
umeume 8:6d9c33df4c09 51 void setmbedBaud(Baud baud);
umeume 8:6d9c33df4c09 52 void camera_setting(void);
tuba 18:da116273b461 53 void camera_setting(Baud baud);
umeume 8:6d9c33df4c09 54 void Sync(void);
umeume 8:6d9c33df4c09 55 void initialize(Baud baud,JpegResolution jr);
umeume 8:6d9c33df4c09 56 void test_jpeg_snapshot_picture(int CAPTURE_FRAMES);
umeume 8:6d9c33df4c09 57 void test_jpeg_snapshot_data(int CAPTURE_FRAMES);
umeume 8:6d9c33df4c09 58 void jpeg_callback(char *buf, size_t siz);
umeume 8:6d9c33df4c09 59 void gps_setting(void);
umeume 8:6d9c33df4c09 60 char getc();
umeume 8:6d9c33df4c09 61 int readable();
umeume 8:6d9c33df4c09 62 void flushSerialBuffer(void);
umeume 8:6d9c33df4c09 63 void gga_sensing(float *time, float *latitude, char *ns, float *longitude, char *ew, int *quality, int *stnum, float *hacu, float *altitude, char *aunit, int *gps_check);
umeume 8:6d9c33df4c09 64 void lat_log_sensing_u16(char *lat, char *log, char * height, int *dsize1, int *dsize2);
umeume 8:6d9c33df4c09 65
umeume 8:6d9c33df4c09 66 private:
umeume 8:6d9c33df4c09 67 SerialBuffered serial;
umeume 8:6d9c33df4c09 68 DigitalOut CAM_SW;
umeume 8:6d9c33df4c09 69 DigitalOut GPS_SW;
umeume 8:6d9c33df4c09 70 static const int COMMAND_LENGTH = 6;
umeume 8:6d9c33df4c09 71 static const int SYNCMAX = 60;
umeume 8:6d9c33df4c09 72 static const int packageSize = 256;
umeume 8:6d9c33df4c09 73 //static const int CAPTURE_FRAMES = 3;
umeume 8:6d9c33df4c09 74
umeume 8:6d9c33df4c09 75 char msg[256],msgd[256];
umeume 8:6d9c33df4c09 76 int i,ite,rlock,stn;
umeume 8:6d9c33df4c09 77 int _quality,_stnum;
umeume 8:6d9c33df4c09 78 float _hacu;
umeume 8:6d9c33df4c09 79 float _altitude;
umeume 8:6d9c33df4c09 80 char _aunit;
umeume 8:6d9c33df4c09 81 int _gps_check;
umeume 8:6d9c33df4c09 82
umeume 8:6d9c33df4c09 83 char c;
umeume 8:6d9c33df4c09 84 char gps_data[7][1000];
umeume 8:6d9c33df4c09 85 char ns,ew,statas;
umeume 8:6d9c33df4c09 86 float time,hokui,tokei,vel;
umeume 8:6d9c33df4c09 87 float g_hokui,g_tokei;
umeume 8:6d9c33df4c09 88 float d_hokui,m_hokui,d_tokei,m_tokei;
umeume 8:6d9c33df4c09 89 int h_time,m_time,s_time;
umeume 8:6d9c33df4c09 90 float height_1;
umeume 8:6d9c33df4c09 91 int m_height,cm_height;
umeume 8:6d9c33df4c09 92
umeume 8:6d9c33df4c09 93 ErrorNumber sendInitial(Baud band, JpegResolution jr);
umeume 8:6d9c33df4c09 94 ErrorNumber sendGetPicture(void);
umeume 8:6d9c33df4c09 95 ErrorNumber sendSnapshot(void);
umeume 8:6d9c33df4c09 96 ErrorNumber sendSetPackageSize(uint16_t packageSize);
umeume 8:6d9c33df4c09 97 ErrorNumber sendReset(ResetType specialReset);
umeume 8:6d9c33df4c09 98 ErrorNumber recvData(uint32_t *length);
umeume 8:6d9c33df4c09 99 ErrorNumber sendSync();
umeume 8:6d9c33df4c09 100 ErrorNumber recvSync();
umeume 8:6d9c33df4c09 101 ErrorNumber sendAck(uint8_t commandId, uint16_t packageId);
umeume 8:6d9c33df4c09 102 ErrorNumber recvAckOrNck();
umeume 8:6d9c33df4c09 103
umeume 8:6d9c33df4c09 104 bool sendBytes(char *buf, size_t len, int timeout_us = 20000);
umeume 8:6d9c33df4c09 105 bool recvBytes(char *buf, size_t len, int timeout_us = 20000);
umeume 8:6d9c33df4c09 106 bool waitRecv();
umeume 8:6d9c33df4c09 107 bool waitIdle();
umeume 8:6d9c33df4c09 108 };
umeume 8:6d9c33df4c09 109 #endif