Ivan Stoev
Dependents: 3daf572bcae1 Team Team01_HEPTA_Trainig
Fork of HeptaCamera_GPS by
HeptaCamera_GPS.h@17:a30fa71eddb7, 2017-10-26 (annotated)
- 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?
User | Revision | Line number | New 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 |