This is Ethernet Telescope.

Dependencies:   CameraC328 WIZnetInterface_Ricky mbed-src

Fork of Camera_PCStreaming_WIZwiki-W7500 by Ricky Kwon

Committer:
Ricky_Kwon
Date:
Tue Mar 01 10:52:16 2016 +0000
Revision:
1:7bccc7b293ab
Parent:
0:b2764ee848ec
WIZKon Telescope Project!!
;
; This is Ethernet Telescope.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Ricky_Kwon 0:b2764ee848ec 1 #include "mbed.h"
Ricky_Kwon 0:b2764ee848ec 2 #include "EthernetInterface.h"
Ricky_Kwon 0:b2764ee848ec 3 #include "CameraC328.h"
Ricky_Kwon 0:b2764ee848ec 4
Ricky_Kwon 0:b2764ee848ec 5 /* CAMERA */
Ricky_Kwon 1:7bccc7b293ab 6 #define USE_JPEG_HIGH_RESOLUTION 3//1=80x64 <--- not working -_-;;, 2=160x128, 3=320x240, 4=640x480
Ricky_Kwon 0:b2764ee848ec 7 #define START "start"
Ricky_Kwon 0:b2764ee848ec 8 #define END "end"
Ricky_Kwon 0:b2764ee848ec 9 CameraC328 camera(PA_13, PA_14, CameraC328::Baud115200);
Ricky_Kwon 0:b2764ee848ec 10
Ricky_Kwon 0:b2764ee848ec 11 /* TCP/IP */
Ricky_Kwon 0:b2764ee848ec 12 static char buf[1024];
Ricky_Kwon 0:b2764ee848ec 13 const char dest_ip[] = "192.168.0.11";
Ricky_Kwon 0:b2764ee848ec 14 int dest_port = 1212;
Ricky_Kwon 0:b2764ee848ec 15
Ricky_Kwon 0:b2764ee848ec 16 uint8_t mac_addr[6] = {0x00, 0x08, 0xdc, 0x12, 0x34, 0x45};
Ricky_Kwon 1:7bccc7b293ab 17 const char ip_addr[] = "192.168.0.123";
Ricky_Kwon 0:b2764ee848ec 18 const char mask_addr[] = "255.255.255.0";
Ricky_Kwon 0:b2764ee848ec 19 const char gateway_addr[] = "192.168.0.1";
Ricky_Kwon 0:b2764ee848ec 20
Ricky_Kwon 1:7bccc7b293ab 21
Ricky_Kwon 0:b2764ee848ec 22 EthernetInterface eth;
Ricky_Kwon 0:b2764ee848ec 23 TCPSocketConnection Streaming;
Ricky_Kwon 0:b2764ee848ec 24
Ricky_Kwon 0:b2764ee848ec 25 /* UART */
Ricky_Kwon 0:b2764ee848ec 26 Serial pc(USBTX, USBRX);
Ricky_Kwon 0:b2764ee848ec 27
Ricky_Kwon 0:b2764ee848ec 28 /* Function*/
Ricky_Kwon 0:b2764ee848ec 29 void jpeg_callback(char *buf, size_t siz);
Ricky_Kwon 0:b2764ee848ec 30 void sync(void);
Ricky_Kwon 0:b2764ee848ec 31 void test_jpeg_snapshot_picture(void);
Ricky_Kwon 0:b2764ee848ec 32 void init(void);
Ricky_Kwon 0:b2764ee848ec 33
Ricky_Kwon 0:b2764ee848ec 34 int main() {
Ricky_Kwon 0:b2764ee848ec 35
Ricky_Kwon 1:7bccc7b293ab 36 printf("WIZKon Telescope\r\n");
Ricky_Kwon 0:b2764ee848ec 37
Ricky_Kwon 0:b2764ee848ec 38 eth.init(mac_addr, ip_addr, mask_addr, gateway_addr); //Use Static
Ricky_Kwon 0:b2764ee848ec 39 eth.connect();
Ricky_Kwon 1:7bccc7b293ab 40 while(1)
Ricky_Kwon 1:7bccc7b293ab 41 { //Wait link up
Ricky_Kwon 1:7bccc7b293ab 42 if(eth.link() == true)
Ricky_Kwon 1:7bccc7b293ab 43 break;
Ricky_Kwon 1:7bccc7b293ab 44 }
Ricky_Kwon 1:7bccc7b293ab 45 printf("My IP Address is %s\n\r", eth.getIPAddress());
Ricky_Kwon 0:b2764ee848ec 46 sync();
Ricky_Kwon 0:b2764ee848ec 47 init();
Ricky_Kwon 0:b2764ee848ec 48 while (Streaming.connect(dest_ip, dest_port) < 0) {
Ricky_Kwon 0:b2764ee848ec 49 printf("Unable to connect to (%s) on port (%d)\r\n", dest_ip, dest_port);
Ricky_Kwon 0:b2764ee848ec 50 wait(1);
Ricky_Kwon 0:b2764ee848ec 51 }
Ricky_Kwon 0:b2764ee848ec 52
Ricky_Kwon 0:b2764ee848ec 53 while(true)
Ricky_Kwon 0:b2764ee848ec 54 {
Ricky_Kwon 0:b2764ee848ec 55 int n = Streaming.receive(buf, sizeof(buf));
Ricky_Kwon 0:b2764ee848ec 56 buf[n] = '\0';
Ricky_Kwon 0:b2764ee848ec 57
Ricky_Kwon 0:b2764ee848ec 58 Streaming.send(START, sizeof(START)-1);
Ricky_Kwon 0:b2764ee848ec 59 test_jpeg_snapshot_picture();
Ricky_Kwon 0:b2764ee848ec 60 Streaming.send(END, sizeof(END)-1);
Ricky_Kwon 0:b2764ee848ec 61 }
Ricky_Kwon 0:b2764ee848ec 62 }
Ricky_Kwon 0:b2764ee848ec 63
Ricky_Kwon 0:b2764ee848ec 64 void jpeg_callback(char *buf, size_t siz) {
Ricky_Kwon 0:b2764ee848ec 65 //for (int i = 0; i < (int)siz; i++) {
Ricky_Kwon 0:b2764ee848ec 66 //fprintf(fp_jpeg, "%c", buf[i]);
Ricky_Kwon 0:b2764ee848ec 67 Streaming.send(buf, siz);
Ricky_Kwon 0:b2764ee848ec 68 //}
Ricky_Kwon 0:b2764ee848ec 69 }
Ricky_Kwon 0:b2764ee848ec 70 void sync(void) {
Ricky_Kwon 0:b2764ee848ec 71 CameraC328::ErrorNumber err = CameraC328::NoError;
Ricky_Kwon 0:b2764ee848ec 72
Ricky_Kwon 0:b2764ee848ec 73 err = camera.sync();
Ricky_Kwon 0:b2764ee848ec 74 if (CameraC328::NoError == err) {
Ricky_Kwon 0:b2764ee848ec 75 printf("[ OK ] : CameraC328::sync\r\n");
Ricky_Kwon 0:b2764ee848ec 76 } else {
Ricky_Kwon 0:b2764ee848ec 77 printf("[FAIL] : CameraC328::sync (Error=%02X)\r\n", (int)err);
Ricky_Kwon 0:b2764ee848ec 78 }
Ricky_Kwon 0:b2764ee848ec 79 }
Ricky_Kwon 0:b2764ee848ec 80 void test_jpeg_snapshot_picture() {
Ricky_Kwon 0:b2764ee848ec 81 CameraC328::ErrorNumber err = CameraC328::NoError;
Ricky_Kwon 0:b2764ee848ec 82
Ricky_Kwon 0:b2764ee848ec 83 err = camera.getJpegSnapshotPicture(jpeg_callback);
Ricky_Kwon 0:b2764ee848ec 84 if (CameraC328::NoError == err) {
Ricky_Kwon 0:b2764ee848ec 85 printf("[ OK ] : CameraC328::getJpegSnapshotPicture\r\n");
Ricky_Kwon 0:b2764ee848ec 86 } else {
Ricky_Kwon 0:b2764ee848ec 87 printf("[FAIL] : CameraC328::getJpegSnapshotPicture (Error=%02X)\r\n", (int)err);
Ricky_Kwon 0:b2764ee848ec 88 }
Ricky_Kwon 0:b2764ee848ec 89 }
Ricky_Kwon 0:b2764ee848ec 90 void init()
Ricky_Kwon 0:b2764ee848ec 91 {
Ricky_Kwon 0:b2764ee848ec 92 CameraC328::ErrorNumber err = CameraC328::NoError;
Ricky_Kwon 0:b2764ee848ec 93
Ricky_Kwon 0:b2764ee848ec 94 #if (USE_JPEG_HIGH_RESOLUTION==1)
Ricky_Kwon 0:b2764ee848ec 95 err = camera.init(CameraC328::Jpeg, CameraC328::RawResolution80x60, CameraC328::JpegResolution80x64);
Ricky_Kwon 0:b2764ee848ec 96 #elif (USE_JPEG_HIGH_RESOLUTION==2)
Ricky_Kwon 0:b2764ee848ec 97 err = camera.init(CameraC328::Jpeg, CameraC328::RawResolution80x60, CameraC328::JpegResolution160x128);
Ricky_Kwon 0:b2764ee848ec 98 #elif (USE_JPEG_HIGH_RESOLUTION==3)
Ricky_Kwon 0:b2764ee848ec 99 err = camera.init(CameraC328::Jpeg, CameraC328::RawResolution80x60, CameraC328::JpegResolution320x240);
Ricky_Kwon 0:b2764ee848ec 100 #elif (USE_JPEG_HIGH_RESOLUTION==4)
Ricky_Kwon 0:b2764ee848ec 101 err = camera.init(CameraC328::Jpeg, CameraC328::RawResolution80x60, CameraC328::JpegResolution640x480);
Ricky_Kwon 0:b2764ee848ec 102 #endif
Ricky_Kwon 0:b2764ee848ec 103 if (CameraC328::NoError == err) {
Ricky_Kwon 0:b2764ee848ec 104 printf("[ OK ] : CameraC328::init\r\n");
Ricky_Kwon 0:b2764ee848ec 105 } else {
Ricky_Kwon 0:b2764ee848ec 106 printf("[FAIL] : CameraC328::init (Error=%02X)\r\n", (int)err);
Ricky_Kwon 0:b2764ee848ec 107 }
Ricky_Kwon 0:b2764ee848ec 108 }