HOme Sheriff And Lamp

Dependencies:   CameraC328 HCSR04 SDFileSystem WIZnetInterface mbed

Fork of HoSAL by pi bae

Committer:
uasonice
Date:
Tue Aug 11 16:30:37 2015 +0000
Revision:
2:3c7526a1893a
Child:
3:8c4e0e7c8cea
update get_distance(); support param instance handle

Who changed what in which revision?

UserRevisionLine numberNew contents of line
uasonice 2:3c7526a1893a 1 /*
uasonice 2:3c7526a1893a 2 # coded by revival / uasonice (at) gmail.com
uasonice 2:3c7526a1893a 3 # DATE: 2015/08/09 / Sun Aug 9 23:55:31 KST 2015
uasonice 2:3c7526a1893a 4 #
uasonice 2:3c7526a1893a 5 # DESCRIPTION:
uasonice 2:3c7526a1893a 6 # rev Camera utility
uasonice 2:3c7526a1893a 7 */
uasonice 2:3c7526a1893a 8
uasonice 2:3c7526a1893a 9 #include "mbed.h"
uasonice 2:3c7526a1893a 10 #include "CameraC328.h"
uasonice 2:3c7526a1893a 11
uasonice 2:3c7526a1893a 12 #define DEBUG_TYPE 1
uasonice 2:3c7526a1893a 13 #define P_ uart.printf
uasonice 2:3c7526a1893a 14 #include "rev_config.h"
uasonice 2:3c7526a1893a 15
uasonice 2:3c7526a1893a 16 #include "rev_Camera.h"
uasonice 2:3c7526a1893a 17
uasonice 2:3c7526a1893a 18
uasonice 2:3c7526a1893a 19 #if defined(USE_CAMERA)
uasonice 2:3c7526a1893a 20 static FILE *fp_jpeg;
uasonice 2:3c7526a1893a 21
uasonice 2:3c7526a1893a 22 //CameraC328 cam(PA_14, PA_13, CameraC328::Baud14400);
uasonice 2:3c7526a1893a 23 //CameraC328::JpegResolution camResul;
uasonice 2:3c7526a1893a 24
uasonice 2:3c7526a1893a 25
uasonice 2:3c7526a1893a 26 /**
uasonice 2:3c7526a1893a 27 * A callback function for jpeg images.
uasonice 2:3c7526a1893a 28 * You can block this function until saving the image datas.
uasonice 2:3c7526a1893a 29 *
uasonice 2:3c7526a1893a 30 * @param buf A pointer to the image buffer.
uasonice 2:3c7526a1893a 31 * @param siz A size of the image buffer.
uasonice 2:3c7526a1893a 32 */
uasonice 2:3c7526a1893a 33 void cb_jpeg(char *buf, size_t szImage) {
uasonice 2:3c7526a1893a 34 for (int i = 0; i < (int)szImage; i++) {
uasonice 2:3c7526a1893a 35 fprintf(fp_jpeg, "%c", buf[i]);
uasonice 2:3c7526a1893a 36 }
uasonice 2:3c7526a1893a 37 }
uasonice 2:3c7526a1893a 38
uasonice 2:3c7526a1893a 39 /**
uasonice 2:3c7526a1893a 40 * Synchronizing.
uasonice 2:3c7526a1893a 41 */
uasonice 2:3c7526a1893a 42 void revSync(void) {
uasonice 2:3c7526a1893a 43 CameraC328::ErrorNumber err = CameraC328::NoError;
uasonice 2:3c7526a1893a 44
uasonice 2:3c7526a1893a 45 err = cam.sync();
uasonice 2:3c7526a1893a 46 if (CameraC328::NoError == err) {
uasonice 2:3c7526a1893a 47 DM_fLN("[ OK ] : CameraC328::sync");
uasonice 2:3c7526a1893a 48 } else {
uasonice 2:3c7526a1893a 49 DM_fLN("[FAIL] : CameraC328::sync (Error=%02X)", (int)err);
uasonice 2:3c7526a1893a 50 }
uasonice 2:3c7526a1893a 51 }
uasonice 2:3c7526a1893a 52
uasonice 2:3c7526a1893a 53 /**
uasonice 2:3c7526a1893a 54 * jpeg snapshot picture.
uasonice 2:3c7526a1893a 55 * param strFile: "/fs/file01.jpg"
uasonice 2:3c7526a1893a 56 * param resol : CameraC328::JpegResolution640x480, CameraC328::JpegResolution320x240
uasonice 2:3c7526a1893a 57 */
uasonice 2:3c7526a1893a 58 void revJpeg_snapshot(char *strFile, CameraC328::JpegResolution resol) {
uasonice 2:3c7526a1893a 59 CameraC328::ErrorNumber err = CameraC328::NoError;
uasonice 2:3c7526a1893a 60
uasonice 2:3c7526a1893a 61 err = cam.init(CameraC328::Jpeg, CameraC328::RawResolution80x60, resol);
uasonice 2:3c7526a1893a 62 if (CameraC328::NoError == err) {
uasonice 2:3c7526a1893a 63 DM_fLN("[ OK ] : CameraC328::init");
uasonice 2:3c7526a1893a 64 } else {
uasonice 2:3c7526a1893a 65 DM_fLN("[FAIL] : CameraC328::init (Error=%02X)", (int)err);
uasonice 2:3c7526a1893a 66 }
uasonice 2:3c7526a1893a 67
uasonice 2:3c7526a1893a 68 fp_jpeg = fopen(strFile, "w");
uasonice 2:3c7526a1893a 69 err = cam.getJpegSnapshotPicture(cb_jpeg);
uasonice 2:3c7526a1893a 70 if (CameraC328::NoError == err) {
uasonice 2:3c7526a1893a 71 DM_fLN("[ OK ] : CameraC328::getJpegPreview");
uasonice 2:3c7526a1893a 72 } else {
uasonice 2:3c7526a1893a 73 DM_fLN("[FAIL] : CameraC328::getJpegPreview (Error=%02X)", (int)err);
uasonice 2:3c7526a1893a 74 }
uasonice 2:3c7526a1893a 75
uasonice 2:3c7526a1893a 76 fclose(fp_jpeg);
uasonice 2:3c7526a1893a 77 }
uasonice 2:3c7526a1893a 78
uasonice 2:3c7526a1893a 79 /**
uasonice 2:3c7526a1893a 80 * jpeg preview picture.
uasonice 2:3c7526a1893a 81 * param strFile: "/fs/file01.jpg"
uasonice 2:3c7526a1893a 82 * param resol : CameraC328::JpegResolution640x480, CameraC328::JpegResolution320x240
uasonice 2:3c7526a1893a 83 */
uasonice 2:3c7526a1893a 84 void revJpeg_preview(char *strFile, CameraC328::JpegResolution resol) {
uasonice 2:3c7526a1893a 85 CameraC328::ErrorNumber err = CameraC328::NoError;
uasonice 2:3c7526a1893a 86 err = cam.init(CameraC328::Jpeg, CameraC328::RawResolution80x60, resol);
uasonice 2:3c7526a1893a 87 if (CameraC328::NoError == err) {
uasonice 2:3c7526a1893a 88 DM_fLN("[ OK ] : CameraC328::init");
uasonice 2:3c7526a1893a 89 } else {
uasonice 2:3c7526a1893a 90 DM_fLN("[FAIL] : CameraC328::init (Error=%02X)", (int)err);
uasonice 2:3c7526a1893a 91 }
uasonice 2:3c7526a1893a 92
uasonice 2:3c7526a1893a 93 fp_jpeg = fopen(strFile, "w");
uasonice 2:3c7526a1893a 94
uasonice 2:3c7526a1893a 95 err = cam.getJpegPreviewPicture(cb_jpeg);
uasonice 2:3c7526a1893a 96 if (CameraC328::NoError == err) {
uasonice 2:3c7526a1893a 97 DM_fLN("[ OK ] : CameraC328::getJpegPreview");
uasonice 2:3c7526a1893a 98 } else {
uasonice 2:3c7526a1893a 99 DM_fLN("[FAIL] : CameraC328::getJpegPreview (Error=%02X)", (int)err);
uasonice 2:3c7526a1893a 100 }
uasonice 2:3c7526a1893a 101
uasonice 2:3c7526a1893a 102 fclose(fp_jpeg);
uasonice 2:3c7526a1893a 103 }
uasonice 2:3c7526a1893a 104
uasonice 2:3c7526a1893a 105 #endif // defined(USE_CAMERA)
uasonice 2:3c7526a1893a 106
uasonice 2:3c7526a1893a 107