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
HeptaCamera_GPS.h@11:7230a20e8992, 2017-09-05 (annotated)
- Committer:
- HEPTA
- Date:
- Tue Sep 05 12:46:47 2017 +0000
- Revision:
- 11:7230a20e8992
- Parent:
- 8:6d9c33df4c09
Hepta Camera&GPS
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(); |
umeume | 8:6d9c33df4c09 | 49 | ErrorNumber getJpegSnapshotPicture_data(); |
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); |
umeume | 8:6d9c33df4c09 | 54 | void test_jpeg_snapshot_picture(int CAPTURE_FRAMES); |
umeume | 8:6d9c33df4c09 | 55 | void test_jpeg_snapshot_data(int CAPTURE_FRAMES); |
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 | 11:7230a20e8992 | 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 |