HeptaCamera&GPS Library

Dependents:   Lab9-01_All_transmit Lab9-03_Thermal_chamber Final_Magnetism_measurement_GPS_data_saving LaserCommProtocol_01 ... more

Fork of HeptaCamera_GPS by CLTP 8

Committer:
HEPTA
Date:
Tue Nov 05 07:08:17 2019 +0000
Revision:
27:bf29ef2b3c76
Parent:
22:5d29e93859aa
Compatible with south latitude and west longitude

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