HOme Sheriff And Lamp

Dependencies:   CameraC328 HCSR04 SDFileSystem WIZnetInterface mbed

Fork of HoSAL by pi bae

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers rev_Camera.cpp Source File

rev_Camera.cpp

00001 /*
00002 # coded by revival / uasonice (at) gmail.com
00003 # DATE: 2015/08/09 / Sun Aug  9 23:55:31 KST 2015
00004 #
00005 # DESCRIPTION:
00006 #       rev Camera utility
00007 */
00008 
00009 #include "mbed.h"
00010 #include "CameraC328.h"
00011 
00012 #define DEBUG_TYPE 1
00013 #define P_ uart.printf
00014 #include "rev_config.h"
00015 
00016 #include "rev_Camera.h"
00017 
00018 
00019 #if defined(USE_CAMERA)
00020 static FILE *fp_jpeg;
00021 
00022 //CameraC328 cam(PA_14, PA_13, CameraC328::Baud14400);
00023 //CameraC328::JpegResolution camResul;
00024 
00025 
00026 /**
00027  * A callback function for jpeg images.
00028  * You can block this function until saving the image datas.
00029  *
00030  * @param buf A pointer to the image buffer.
00031  * @param siz A size of the image buffer.
00032  */
00033 void cb_jpeg(char *buf, size_t szImage) {
00034     for (int i = 0; i < (int)szImage; i++) {
00035         fprintf(fp_jpeg, "%c", buf[i]);
00036     }
00037 }
00038 
00039 /**
00040  * Synchronizing.
00041  */
00042 void revSync(CameraC328 *pH) {
00043     CameraC328::ErrorNumber err = CameraC328::NoError;
00044 
00045     if(pH == NULL) return;
00046     err = pH->sync();
00047     if (CameraC328::NoError == err) {
00048         DM_fLN("[ OK ] : CameraC328::sync");
00049     } else {
00050         DM_fLN("[FAIL] : CameraC328::sync (Error=%02X)", (int)err);
00051     }
00052 }
00053 
00054 /**
00055  * jpeg snapshot picture.
00056  * param strFile: "/fs/file01.jpg"
00057  * param resol  : CameraC328::JpegResolution640x480, CameraC328::JpegResolution320x240
00058  */
00059 void revJpeg_snapshot(CameraC328 *pH, char *strFile, CameraC328::JpegResolution resol) {
00060     CameraC328::ErrorNumber err = CameraC328::NoError;
00061 
00062     if(pH == NULL) return;
00063     err = pH->init(CameraC328::Jpeg, CameraC328::RawResolution80x60, resol);
00064     if (CameraC328::NoError == err) {
00065         DM_fLN("[ OK ] : CameraC328::init");
00066     } else {
00067         DM_fLN("[FAIL] : CameraC328::init (Error=%02X)", (int)err);
00068     }
00069 
00070     fp_jpeg = fopen(strFile, "w");
00071     err = pH->getJpegSnapshotPicture(cb_jpeg);
00072     if (CameraC328::NoError == err) {
00073         DM_fLN("[ OK ] : CameraC328::getJpegPreview");
00074     } else {
00075         DM_fLN("[FAIL] : CameraC328::getJpegPreview (Error=%02X)", (int)err);
00076     }
00077 
00078     fclose(fp_jpeg);
00079 }
00080 
00081 /**
00082  * jpeg preview picture.
00083  * param strFile: "/fs/file01.jpg"
00084  * param resol  : CameraC328::JpegResolution640x480, CameraC328::JpegResolution320x240
00085  */
00086 void revJpeg_preview(CameraC328 *pH, char *strFile, CameraC328::JpegResolution resol) {
00087     CameraC328::ErrorNumber err = CameraC328::NoError;
00088 
00089     if(pH == NULL) return;
00090     err = pH->init(CameraC328::Jpeg, CameraC328::RawResolution80x60, resol);
00091     if (CameraC328::NoError == err) {
00092         DM_fLN("[ OK ] : CameraC328::init");
00093     } else {
00094         DM_fLN("[FAIL] : CameraC328::init (Error=%02X)", (int)err);
00095     }
00096 
00097     fp_jpeg = fopen(strFile, "w");
00098 
00099     //err = pH->getJpegPreviewPicture(cb_jpeg);
00100     err = pH->getJpegSnapshotPicture(cb_jpeg);
00101     if (CameraC328::NoError == err) {
00102         DM_fLN("[ OK ] : CameraC328::getJpegPreview");
00103     } else {
00104         DM_fLN("[FAIL] : CameraC328::getJpegPreview (Error=%02X)", (int)err);
00105     }
00106 
00107     fclose(fp_jpeg);
00108 }
00109 
00110 #endif // defined(USE_CAMERA)
00111