HOme Sheriff And Lamp

Dependencies:   CameraC328 HCSR04 SDFileSystem WIZnetInterface mbed

Fork of HoSAL by pi bae

Committer:
uasonice
Date:
Thu Aug 13 19:35:01 2015 +0000
Revision:
13:cefc034543a5
Parent:
6:089da4f2fb39
update: web server image view

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 3:8c4e0e7c8cea 42 void revSync(CameraC328 *pH) {
uasonice 2:3c7526a1893a 43 CameraC328::ErrorNumber err = CameraC328::NoError;
uasonice 2:3c7526a1893a 44
uasonice 6:089da4f2fb39 45 if(pH == NULL) return;
uasonice 3:8c4e0e7c8cea 46 err = pH->sync();
uasonice 2:3c7526a1893a 47 if (CameraC328::NoError == err) {
uasonice 2:3c7526a1893a 48 DM_fLN("[ OK ] : CameraC328::sync");
uasonice 2:3c7526a1893a 49 } else {
uasonice 2:3c7526a1893a 50 DM_fLN("[FAIL] : CameraC328::sync (Error=%02X)", (int)err);
uasonice 2:3c7526a1893a 51 }
uasonice 2:3c7526a1893a 52 }
uasonice 2:3c7526a1893a 53
uasonice 2:3c7526a1893a 54 /**
uasonice 2:3c7526a1893a 55 * jpeg snapshot picture.
uasonice 2:3c7526a1893a 56 * param strFile: "/fs/file01.jpg"
uasonice 2:3c7526a1893a 57 * param resol : CameraC328::JpegResolution640x480, CameraC328::JpegResolution320x240
uasonice 2:3c7526a1893a 58 */
uasonice 3:8c4e0e7c8cea 59 void revJpeg_snapshot(CameraC328 *pH, char *strFile, CameraC328::JpegResolution resol) {
uasonice 2:3c7526a1893a 60 CameraC328::ErrorNumber err = CameraC328::NoError;
uasonice 2:3c7526a1893a 61
uasonice 6:089da4f2fb39 62 if(pH == NULL) return;
uasonice 3:8c4e0e7c8cea 63 err = pH->init(CameraC328::Jpeg, CameraC328::RawResolution80x60, resol);
uasonice 2:3c7526a1893a 64 if (CameraC328::NoError == err) {
uasonice 2:3c7526a1893a 65 DM_fLN("[ OK ] : CameraC328::init");
uasonice 2:3c7526a1893a 66 } else {
uasonice 2:3c7526a1893a 67 DM_fLN("[FAIL] : CameraC328::init (Error=%02X)", (int)err);
uasonice 2:3c7526a1893a 68 }
uasonice 2:3c7526a1893a 69
uasonice 2:3c7526a1893a 70 fp_jpeg = fopen(strFile, "w");
uasonice 3:8c4e0e7c8cea 71 err = pH->getJpegSnapshotPicture(cb_jpeg);
uasonice 2:3c7526a1893a 72 if (CameraC328::NoError == err) {
uasonice 2:3c7526a1893a 73 DM_fLN("[ OK ] : CameraC328::getJpegPreview");
uasonice 2:3c7526a1893a 74 } else {
uasonice 2:3c7526a1893a 75 DM_fLN("[FAIL] : CameraC328::getJpegPreview (Error=%02X)", (int)err);
uasonice 2:3c7526a1893a 76 }
uasonice 2:3c7526a1893a 77
uasonice 2:3c7526a1893a 78 fclose(fp_jpeg);
uasonice 2:3c7526a1893a 79 }
uasonice 2:3c7526a1893a 80
uasonice 2:3c7526a1893a 81 /**
uasonice 2:3c7526a1893a 82 * jpeg preview picture.
uasonice 2:3c7526a1893a 83 * param strFile: "/fs/file01.jpg"
uasonice 2:3c7526a1893a 84 * param resol : CameraC328::JpegResolution640x480, CameraC328::JpegResolution320x240
uasonice 2:3c7526a1893a 85 */
uasonice 3:8c4e0e7c8cea 86 void revJpeg_preview(CameraC328 *pH, char *strFile, CameraC328::JpegResolution resol) {
uasonice 2:3c7526a1893a 87 CameraC328::ErrorNumber err = CameraC328::NoError;
uasonice 6:089da4f2fb39 88
uasonice 6:089da4f2fb39 89 if(pH == NULL) return;
uasonice 3:8c4e0e7c8cea 90 err = pH->init(CameraC328::Jpeg, CameraC328::RawResolution80x60, resol);
uasonice 2:3c7526a1893a 91 if (CameraC328::NoError == err) {
uasonice 2:3c7526a1893a 92 DM_fLN("[ OK ] : CameraC328::init");
uasonice 2:3c7526a1893a 93 } else {
uasonice 2:3c7526a1893a 94 DM_fLN("[FAIL] : CameraC328::init (Error=%02X)", (int)err);
uasonice 2:3c7526a1893a 95 }
uasonice 2:3c7526a1893a 96
uasonice 2:3c7526a1893a 97 fp_jpeg = fopen(strFile, "w");
uasonice 2:3c7526a1893a 98
uasonice 13:cefc034543a5 99 //err = pH->getJpegPreviewPicture(cb_jpeg);
uasonice 13:cefc034543a5 100 err = pH->getJpegSnapshotPicture(cb_jpeg);
uasonice 2:3c7526a1893a 101 if (CameraC328::NoError == err) {
uasonice 2:3c7526a1893a 102 DM_fLN("[ OK ] : CameraC328::getJpegPreview");
uasonice 2:3c7526a1893a 103 } else {
uasonice 2:3c7526a1893a 104 DM_fLN("[FAIL] : CameraC328::getJpegPreview (Error=%02X)", (int)err);
uasonice 2:3c7526a1893a 105 }
uasonice 2:3c7526a1893a 106
uasonice 2:3c7526a1893a 107 fclose(fp_jpeg);
uasonice 2:3c7526a1893a 108 }
uasonice 2:3c7526a1893a 109
uasonice 2:3c7526a1893a 110 #endif // defined(USE_CAMERA)
uasonice 2:3c7526a1893a 111