Ivan Stoev

Dependents:   3daf572bcae1 Team Team01_HEPTA_Trainig

Fork of HeptaCamera_GPS by HEPTA-Sat Training 2017~2018

Committer:
tuba
Date:
Thu Oct 26 11:27:12 2017 +0000
Revision:
17:a30fa71eddb7
Parent:
8:6d9c33df4c09
Child:
18:da116273b461
First commit

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);
umeume 8:6d9c33df4c09 53 void Sync(void);
umeume 8:6d9c33df4c09 54 void initialize(Baud baud,JpegResolution jr);
umeume 8:6d9c33df4c09 55 void test_jpeg_snapshot_picture(int CAPTURE_FRAMES);
umeume 8:6d9c33df4c09 56 void test_jpeg_snapshot_data(int CAPTURE_FRAMES);
umeume 8:6d9c33df4c09 57 void jpeg_callback(char *buf, size_t siz);
umeume 8:6d9c33df4c09 58 void gps_setting(void);
umeume 8:6d9c33df4c09 59 char getc();
umeume 8:6d9c33df4c09 60 int readable();
umeume 8:6d9c33df4c09 61 void flushSerialBuffer(void);
umeume 8:6d9c33df4c09 62 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 63 void lat_log_sensing_u16(char *lat, char *log, char * height, int *dsize1, int *dsize2);
umeume 8:6d9c33df4c09 64
umeume 8:6d9c33df4c09 65 private:
umeume 8:6d9c33df4c09 66 SerialBuffered serial;
umeume 8:6d9c33df4c09 67 DigitalOut CAM_SW;
umeume 8:6d9c33df4c09 68 DigitalOut GPS_SW;
umeume 8:6d9c33df4c09 69 static const int COMMAND_LENGTH = 6;
umeume 8:6d9c33df4c09 70 static const int SYNCMAX = 60;
umeume 8:6d9c33df4c09 71 static const int packageSize = 256;
umeume 8:6d9c33df4c09 72 //static const int CAPTURE_FRAMES = 3;
umeume 8:6d9c33df4c09 73
umeume 8:6d9c33df4c09 74 char msg[256],msgd[256];
umeume 8:6d9c33df4c09 75 int i,ite,rlock,stn;
umeume 8:6d9c33df4c09 76 int _quality,_stnum;
umeume 8:6d9c33df4c09 77 float _hacu;
umeume 8:6d9c33df4c09 78 float _altitude;
umeume 8:6d9c33df4c09 79 char _aunit;
umeume 8:6d9c33df4c09 80 int _gps_check;
umeume 8:6d9c33df4c09 81
umeume 8:6d9c33df4c09 82 char c;
umeume 8:6d9c33df4c09 83 char gps_data[7][1000];
umeume 8:6d9c33df4c09 84 char ns,ew,statas;
umeume 8:6d9c33df4c09 85 float time,hokui,tokei,vel;
umeume 8:6d9c33df4c09 86 float g_hokui,g_tokei;
umeume 8:6d9c33df4c09 87 float d_hokui,m_hokui,d_tokei,m_tokei;
umeume 8:6d9c33df4c09 88 int h_time,m_time,s_time;
umeume 8:6d9c33df4c09 89 float height_1;
umeume 8:6d9c33df4c09 90 int m_height,cm_height;
umeume 8:6d9c33df4c09 91
umeume 8:6d9c33df4c09 92 ErrorNumber sendInitial(Baud band, JpegResolution jr);
umeume 8:6d9c33df4c09 93 ErrorNumber sendGetPicture(void);
umeume 8:6d9c33df4c09 94 ErrorNumber sendSnapshot(void);
umeume 8:6d9c33df4c09 95 ErrorNumber sendSetPackageSize(uint16_t packageSize);
umeume 8:6d9c33df4c09 96 ErrorNumber sendReset(ResetType specialReset);
umeume 8:6d9c33df4c09 97 ErrorNumber recvData(uint32_t *length);
umeume 8:6d9c33df4c09 98 ErrorNumber sendSync();
umeume 8:6d9c33df4c09 99 ErrorNumber recvSync();
umeume 8:6d9c33df4c09 100 ErrorNumber sendAck(uint8_t commandId, uint16_t packageId);
umeume 8:6d9c33df4c09 101 ErrorNumber recvAckOrNck();
umeume 8:6d9c33df4c09 102
umeume 8:6d9c33df4c09 103 bool sendBytes(char *buf, size_t len, int timeout_us = 20000);
umeume 8:6d9c33df4c09 104 bool recvBytes(char *buf, size_t len, int timeout_us = 20000);
umeume 8:6d9c33df4c09 105 bool waitRecv();
umeume 8:6d9c33df4c09 106 bool waitIdle();
umeume 8:6d9c33df4c09 107 };
umeume 8:6d9c33df4c09 108 #endif