Freedman v2

Dependencies:   CameraC328 WizFi250Interface mbed-src

Fork of WizFi250TcpUdpExample by WIZnet

Committer:
Ricky_Kwon
Date:
Wed Aug 26 07:56:57 2015 +0000
Revision:
5:98fcc092982a
Parent:
4:4c280f259bf8
Freedman v2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kaizen 0:279f250818f6 1 /*
kaizen 0:279f250818f6 2 /* Copyright (C) 2014 Wiznet, MIT License
kaizen 0:279f250818f6 3 *
kaizen 0:279f250818f6 4 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
kaizen 0:279f250818f6 5 * and associated documentation files (the "Software"), to deal in the Software without restriction,
kaizen 0:279f250818f6 6 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
kaizen 0:279f250818f6 7 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
kaizen 0:279f250818f6 8 * furnished to do so, subject to the following conditions:
kaizen 0:279f250818f6 9 *
kaizen 0:279f250818f6 10 * The above copyright notice and this permission notice shall be included in all copies or
kaizen 0:279f250818f6 11 * substantial portions of the Software.
kaizen 0:279f250818f6 12 *
kaizen 0:279f250818f6 13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
kaizen 0:279f250818f6 14 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
kaizen 0:279f250818f6 15 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
kaizen 0:279f250818f6 16 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
kaizen 0:279f250818f6 17 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
kaizen 0:279f250818f6 18 */
kaizen 0:279f250818f6 19
kaizen 0:279f250818f6 20 #include <stdio.h>
kaizen 0:279f250818f6 21 #include "mbed.h"
kaizen 0:279f250818f6 22 #include "WizFi250Interface.h"
Ricky_Kwon 4:4c280f259bf8 23 #include "CameraC328.h"
kaizen 3:390016675fc8 24
kaizen 0:279f250818f6 25 #define SECURE WizFi250::SEC_AUTO
Ricky_Kwon 4:4c280f259bf8 26 #define SSID "Ricky"
Ricky_Kwon 4:4c280f259bf8 27 #define PASS "ricky123"
Ricky_Kwon 4:4c280f259bf8 28
Ricky_Kwon 4:4c280f259bf8 29 //#define ECHO_SERVER_ADDRESS "192.168.0.2"
Ricky_Kwon 4:4c280f259bf8 30 //#define ECHO_SERVER_PORT 5000
kaizen 0:279f250818f6 31
Ricky_Kwon 4:4c280f259bf8 32 /* CAMERA */
Ricky_Kwon 4:4c280f259bf8 33 #define USE_JPEG_HIGH_RESOLUTION 2//1=80x64 <--- not working -_-;;, 2=160x128, 3=320x240, 4=640x480
Ricky_Kwon 4:4c280f259bf8 34 #define START "start"
Ricky_Kwon 4:4c280f259bf8 35 #define END "end"
Ricky_Kwon 4:4c280f259bf8 36 CameraC328 camera(PC_10, PC_11, CameraC328::Baud115200);
kaizen 0:279f250818f6 37
Ricky_Kwon 4:4c280f259bf8 38 /* NETWORK */
kaizen 3:390016675fc8 39 #if defined(TARGET_FRDM_KL25Z)
kaizen 3:390016675fc8 40 WizFi250Interface wizfi250(PTE0,PTE1,PTD5,PTD0,PTD4,NC,115200);
kaizen 3:390016675fc8 41 #else
Ricky_Kwon 4:4c280f259bf8 42 WizFi250Interface wizfi250(D1,D0,D7,D8,PA_12,NC,115200);
Ricky_Kwon 4:4c280f259bf8 43 //Serial pc(USBTX, USBRX);
Ricky_Kwon 4:4c280f259bf8 44 //Serial pc2(PC_10,PC_11);
kaizen 3:390016675fc8 45 #endif
Ricky_Kwon 4:4c280f259bf8 46 TCPSocketConnection Streaming;
Ricky_Kwon 4:4c280f259bf8 47 const char dest_ip[] = "192.168.0.2";
Ricky_Kwon 4:4c280f259bf8 48 int dest_port = 1212;
Ricky_Kwon 4:4c280f259bf8 49 static char buf[128];
kaizen 3:390016675fc8 50
kaizen 3:390016675fc8 51
Ricky_Kwon 4:4c280f259bf8 52 /* Function*/
Ricky_Kwon 4:4c280f259bf8 53 void jpeg_callback(char *buf, size_t siz);
Ricky_Kwon 4:4c280f259bf8 54 void sync(void);
Ricky_Kwon 4:4c280f259bf8 55 void test_jpeg_snapshot_picture(void);
kaizen 0:279f250818f6 56
kaizen 0:279f250818f6 57 int main()
kaizen 0:279f250818f6 58 {
Ricky_Kwon 4:4c280f259bf8 59
kaizen 0:279f250818f6 60 wizfi250.init();
kaizen 0:279f250818f6 61 if ( wizfi250.connect(SECURE, SSID, PASS)) return -1;
kaizen 0:279f250818f6 62 printf("IP Address is %s\r\n", wizfi250.getIPAddress());
kaizen 0:279f250818f6 63
Ricky_Kwon 4:4c280f259bf8 64 sync();
Ricky_Kwon 4:4c280f259bf8 65 while (Streaming.connect(dest_ip, dest_port) < 0) {
Ricky_Kwon 4:4c280f259bf8 66 printf("Unable to connect to (%s) on port (%d)\r\n", dest_ip, dest_port);
Ricky_Kwon 4:4c280f259bf8 67 wait(1);
Ricky_Kwon 4:4c280f259bf8 68 }
Ricky_Kwon 4:4c280f259bf8 69
kaizen 0:279f250818f6 70 while(1)
kaizen 0:279f250818f6 71 {
Ricky_Kwon 4:4c280f259bf8 72 Streaming.send(START, sizeof(START)-1);
Ricky_Kwon 4:4c280f259bf8 73 test_jpeg_snapshot_picture();
Ricky_Kwon 4:4c280f259bf8 74 Streaming.send(END, sizeof(END)-1);
kaizen 0:279f250818f6 75 }
kaizen 0:279f250818f6 76
kaizen 0:279f250818f6 77 }
kaizen 0:279f250818f6 78
Ricky_Kwon 4:4c280f259bf8 79 void jpeg_callback(char *buf, size_t siz) {
Ricky_Kwon 4:4c280f259bf8 80 //for (int i = 0; i < (int)siz; i++) {
Ricky_Kwon 4:4c280f259bf8 81 //fprintf(fp_jpeg, "%c", buf[i]);
Ricky_Kwon 4:4c280f259bf8 82 Streaming.send(buf, siz);
Ricky_Kwon 4:4c280f259bf8 83 //}
Ricky_Kwon 4:4c280f259bf8 84 }
Ricky_Kwon 4:4c280f259bf8 85 void sync(void) {
Ricky_Kwon 4:4c280f259bf8 86 CameraC328::ErrorNumber err = CameraC328::NoError;
kaizen 0:279f250818f6 87
Ricky_Kwon 4:4c280f259bf8 88 err = camera.sync();
Ricky_Kwon 4:4c280f259bf8 89 if (CameraC328::NoError == err) {
Ricky_Kwon 4:4c280f259bf8 90 printf("[ OK ] : CameraC328::sync\r\n");
Ricky_Kwon 4:4c280f259bf8 91 } else {
Ricky_Kwon 4:4c280f259bf8 92 printf("[FAIL] : CameraC328::sync (Error=%02X)\r\n", (int)err);
Ricky_Kwon 4:4c280f259bf8 93 }
Ricky_Kwon 4:4c280f259bf8 94 }
Ricky_Kwon 4:4c280f259bf8 95 void test_jpeg_snapshot_picture() {
Ricky_Kwon 4:4c280f259bf8 96 CameraC328::ErrorNumber err = CameraC328::NoError;
kaizen 0:279f250818f6 97
Ricky_Kwon 4:4c280f259bf8 98 #if (USE_JPEG_HIGH_RESOLUTION==1)
Ricky_Kwon 4:4c280f259bf8 99 err = camera.init(CameraC328::Jpeg, CameraC328::RawResolution80x60, CameraC328::JpegResolution80x64);
Ricky_Kwon 4:4c280f259bf8 100 #elif (USE_JPEG_HIGH_RESOLUTION==2)
Ricky_Kwon 4:4c280f259bf8 101 err = camera.init(CameraC328::Jpeg, CameraC328::RawResolution80x60, CameraC328::JpegResolution160x128);
Ricky_Kwon 4:4c280f259bf8 102 #elif (USE_JPEG_HIGH_RESOLUTION==3)
Ricky_Kwon 4:4c280f259bf8 103 err = camera.init(CameraC328::Jpeg, CameraC328::RawResolution80x60, CameraC328::JpegResolution320x240);
Ricky_Kwon 4:4c280f259bf8 104 #elif (USE_JPEG_HIGH_RESOLUTION==4)
Ricky_Kwon 4:4c280f259bf8 105 err = camera.init(CameraC328::Jpeg, CameraC328::RawResolution80x60, CameraC328::JpegResolution640x480);
Ricky_Kwon 4:4c280f259bf8 106 #endif
Ricky_Kwon 4:4c280f259bf8 107 if (CameraC328::NoError == err) {
Ricky_Kwon 4:4c280f259bf8 108 printf("[ OK ] : CameraC328::init\r\n");
Ricky_Kwon 4:4c280f259bf8 109 } else {
Ricky_Kwon 4:4c280f259bf8 110 printf("[FAIL] : CameraC328::init (Error=%02X)\r\n", (int)err);
Ricky_Kwon 4:4c280f259bf8 111 }
kaizen 0:279f250818f6 112
Ricky_Kwon 4:4c280f259bf8 113 err = camera.getJpegSnapshotPicture(jpeg_callback);
Ricky_Kwon 4:4c280f259bf8 114 if (CameraC328::NoError == err) {
Ricky_Kwon 4:4c280f259bf8 115 printf("[ OK ] : CameraC328::getJpegSnapshotPicture\r\n");
Ricky_Kwon 4:4c280f259bf8 116 } else {
Ricky_Kwon 4:4c280f259bf8 117 printf("[FAIL] : CameraC328::getJpegSnapshotPicture (Error=%02X)\r\n", (int)err);
kaizen 0:279f250818f6 118 }
kaizen 0:279f250818f6 119 }
kaizen 0:279f250818f6 120