Bank Account Security System

Dependencies:   FatFileSystemSD mbed

Committer:
Dhruv_Varun
Date:
Thu Oct 11 20:49:25 2012 +0000
Revision:
0:7e4786a3584b
Code For Bank Account Security System

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Dhruv_Varun 0:7e4786a3584b 1 /**
Dhruv_Varun 0:7e4786a3584b 2 * =============================================================================
Dhruv_Varun 0:7e4786a3584b 3 * LS-Y201 device driver class (Version 0.0.1)
Dhruv_Varun 0:7e4786a3584b 4 * Reference documents: LinkSprite JPEG Color Camera Serial UART Interface
Dhruv_Varun 0:7e4786a3584b 5 * January 2010
Dhruv_Varun 0:7e4786a3584b 6 * =============================================================================
Dhruv_Varun 0:7e4786a3584b 7 * Copyright (c) 2010 Shinichiro Nakamura (CuBeatSystems)
Dhruv_Varun 0:7e4786a3584b 8 *
Dhruv_Varun 0:7e4786a3584b 9 * Permission is hereby granted, free of charge, to any person obtaining a copy
Dhruv_Varun 0:7e4786a3584b 10 * of this software and associated documentation files (the "Software"), to deal
Dhruv_Varun 0:7e4786a3584b 11 * in the Software without restriction, including without limitation the rights
Dhruv_Varun 0:7e4786a3584b 12 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
Dhruv_Varun 0:7e4786a3584b 13 * copies of the Software, and to permit persons to whom the Software is
Dhruv_Varun 0:7e4786a3584b 14 * furnished to do so, subject to the following conditions:
Dhruv_Varun 0:7e4786a3584b 15 *
Dhruv_Varun 0:7e4786a3584b 16 * The above copyright notice and this permission notice shall be included in
Dhruv_Varun 0:7e4786a3584b 17 * all copies or substantial portions of the Software.
Dhruv_Varun 0:7e4786a3584b 18 *
Dhruv_Varun 0:7e4786a3584b 19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
Dhruv_Varun 0:7e4786a3584b 20 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
Dhruv_Varun 0:7e4786a3584b 21 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
Dhruv_Varun 0:7e4786a3584b 22 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
Dhruv_Varun 0:7e4786a3584b 23 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
Dhruv_Varun 0:7e4786a3584b 24 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
Dhruv_Varun 0:7e4786a3584b 25 * THE SOFTWARE.
Dhruv_Varun 0:7e4786a3584b 26 * =============================================================================
Dhruv_Varun 0:7e4786a3584b 27 */
Dhruv_Varun 0:7e4786a3584b 28
Dhruv_Varun 0:7e4786a3584b 29 #ifndef LS_Y201_H
Dhruv_Varun 0:7e4786a3584b 30 #define LS_Y201_H
Dhruv_Varun 0:7e4786a3584b 31
Dhruv_Varun 0:7e4786a3584b 32 #include "mbed.h"
Dhruv_Varun 0:7e4786a3584b 33 #include "SerialBuffered.h"
Dhruv_Varun 0:7e4786a3584b 34
Dhruv_Varun 0:7e4786a3584b 35 /**
Dhruv_Varun 0:7e4786a3584b 36 * Camera
Dhruv_Varun 0:7e4786a3584b 37 */
Dhruv_Varun 0:7e4786a3584b 38 class Camera_LS_Y201 {
Dhruv_Varun 0:7e4786a3584b 39 public:
Dhruv_Varun 0:7e4786a3584b 40
Dhruv_Varun 0:7e4786a3584b 41 /**
Dhruv_Varun 0:7e4786a3584b 42 * Create.
Dhruv_Varun 0:7e4786a3584b 43 *
Dhruv_Varun 0:7e4786a3584b 44 * @param tx Transmitter.
Dhruv_Varun 0:7e4786a3584b 45 * @param rx Receiver.
Dhruv_Varun 0:7e4786a3584b 46 */
Dhruv_Varun 0:7e4786a3584b 47 Camera_LS_Y201(PinName tx, PinName rx);
Dhruv_Varun 0:7e4786a3584b 48
Dhruv_Varun 0:7e4786a3584b 49 /**
Dhruv_Varun 0:7e4786a3584b 50 * Dispose.
Dhruv_Varun 0:7e4786a3584b 51 */
Dhruv_Varun 0:7e4786a3584b 52 ~Camera_LS_Y201();
Dhruv_Varun 0:7e4786a3584b 53
Dhruv_Varun 0:7e4786a3584b 54 /**
Dhruv_Varun 0:7e4786a3584b 55 * Error code.
Dhruv_Varun 0:7e4786a3584b 56 */
Dhruv_Varun 0:7e4786a3584b 57 enum ErrorCode {
Dhruv_Varun 0:7e4786a3584b 58 NoError = 0,
Dhruv_Varun 0:7e4786a3584b 59 UnexpectedReply,
Dhruv_Varun 0:7e4786a3584b 60 Timeout,
Dhruv_Varun 0:7e4786a3584b 61 SendError,
Dhruv_Varun 0:7e4786a3584b 62 RecvError,
Dhruv_Varun 0:7e4786a3584b 63 InvalidArguments
Dhruv_Varun 0:7e4786a3584b 64 };
Dhruv_Varun 0:7e4786a3584b 65
Dhruv_Varun 0:7e4786a3584b 66 /**
Dhruv_Varun 0:7e4786a3584b 67 * Image size.
Dhruv_Varun 0:7e4786a3584b 68 */
Dhruv_Varun 0:7e4786a3584b 69 enum ImageSize {
Dhruv_Varun 0:7e4786a3584b 70 ImageSize160x120, /**< 160x120. */
Dhruv_Varun 0:7e4786a3584b 71 ImageSize320x280, /**< 320x280. */
Dhruv_Varun 0:7e4786a3584b 72 ImageSize640x480 /**< 640x480. */
Dhruv_Varun 0:7e4786a3584b 73 };
Dhruv_Varun 0:7e4786a3584b 74
Dhruv_Varun 0:7e4786a3584b 75 /**
Dhruv_Varun 0:7e4786a3584b 76 * Reset module.
Dhruv_Varun 0:7e4786a3584b 77 *
Dhruv_Varun 0:7e4786a3584b 78 * @return Error code.
Dhruv_Varun 0:7e4786a3584b 79 */
Dhruv_Varun 0:7e4786a3584b 80 ErrorCode reset();
Dhruv_Varun 0:7e4786a3584b 81
Dhruv_Varun 0:7e4786a3584b 82 /**
Dhruv_Varun 0:7e4786a3584b 83 * Set image size.
Dhruv_Varun 0:7e4786a3584b 84 *
Dhruv_Varun 0:7e4786a3584b 85 * @param is Image size.
Dhruv_Varun 0:7e4786a3584b 86 * @return Error code.
Dhruv_Varun 0:7e4786a3584b 87 */
Dhruv_Varun 0:7e4786a3584b 88 ErrorCode setImageSize(ImageSize is);
Dhruv_Varun 0:7e4786a3584b 89
Dhruv_Varun 0:7e4786a3584b 90 /**
Dhruv_Varun 0:7e4786a3584b 91 * Take picture.
Dhruv_Varun 0:7e4786a3584b 92 *
Dhruv_Varun 0:7e4786a3584b 93 * @return Error code.
Dhruv_Varun 0:7e4786a3584b 94 */
Dhruv_Varun 0:7e4786a3584b 95 ErrorCode takePicture();
Dhruv_Varun 0:7e4786a3584b 96
Dhruv_Varun 0:7e4786a3584b 97 /**
Dhruv_Varun 0:7e4786a3584b 98 * Read jpeg file size.
Dhruv_Varun 0:7e4786a3584b 99 *
Dhruv_Varun 0:7e4786a3584b 100 * @param fileSize File size.
Dhruv_Varun 0:7e4786a3584b 101 * @return Error code.
Dhruv_Varun 0:7e4786a3584b 102 */
Dhruv_Varun 0:7e4786a3584b 103 ErrorCode readJpegFileSize(int *fileSize);
Dhruv_Varun 0:7e4786a3584b 104
Dhruv_Varun 0:7e4786a3584b 105 /**
Dhruv_Varun 0:7e4786a3584b 106 * Read jpeg file content.
Dhruv_Varun 0:7e4786a3584b 107 *
Dhruv_Varun 0:7e4786a3584b 108 * @param func A pointer to a call back function.
Dhruv_Varun 0:7e4786a3584b 109 * @return Error code.
Dhruv_Varun 0:7e4786a3584b 110 */
Dhruv_Varun 0:7e4786a3584b 111 ErrorCode readJpegFileContent(void (*func)(int done, int total, uint8_t *buf, size_t siz));
Dhruv_Varun 0:7e4786a3584b 112
Dhruv_Varun 0:7e4786a3584b 113 /**
Dhruv_Varun 0:7e4786a3584b 114 * Stop taking pictures.
Dhruv_Varun 0:7e4786a3584b 115 *
Dhruv_Varun 0:7e4786a3584b 116 * @return Error code.
Dhruv_Varun 0:7e4786a3584b 117 */
Dhruv_Varun 0:7e4786a3584b 118 ErrorCode stopTakingPictures();
Dhruv_Varun 0:7e4786a3584b 119
Dhruv_Varun 0:7e4786a3584b 120 private:
Dhruv_Varun 0:7e4786a3584b 121 SerialBuffered serial;
Dhruv_Varun 0:7e4786a3584b 122
Dhruv_Varun 0:7e4786a3584b 123 /**
Dhruv_Varun 0:7e4786a3584b 124 * Wait init end codes.
Dhruv_Varun 0:7e4786a3584b 125 *
Dhruv_Varun 0:7e4786a3584b 126 * @return Error code.
Dhruv_Varun 0:7e4786a3584b 127 */
Dhruv_Varun 0:7e4786a3584b 128 ErrorCode waitInitEnd();
Dhruv_Varun 0:7e4786a3584b 129
Dhruv_Varun 0:7e4786a3584b 130 /**
Dhruv_Varun 0:7e4786a3584b 131 * Send bytes to camera module.
Dhruv_Varun 0:7e4786a3584b 132 *
Dhruv_Varun 0:7e4786a3584b 133 * @param buf Pointer to the data buffer.
Dhruv_Varun 0:7e4786a3584b 134 * @param len Length of the data buffer.
Dhruv_Varun 0:7e4786a3584b 135 *
Dhruv_Varun 0:7e4786a3584b 136 * @return True if the data sended.
Dhruv_Varun 0:7e4786a3584b 137 */
Dhruv_Varun 0:7e4786a3584b 138 bool sendBytes(uint8_t *buf, size_t len, int timeout_us);
Dhruv_Varun 0:7e4786a3584b 139
Dhruv_Varun 0:7e4786a3584b 140 /**
Dhruv_Varun 0:7e4786a3584b 141 * Receive bytes from camera module.
Dhruv_Varun 0:7e4786a3584b 142 *
Dhruv_Varun 0:7e4786a3584b 143 * @param buf Pointer to the data buffer.
Dhruv_Varun 0:7e4786a3584b 144 * @param len Length of the data buffer.
Dhruv_Varun 0:7e4786a3584b 145 *
Dhruv_Varun 0:7e4786a3584b 146 * @return True if the data received.
Dhruv_Varun 0:7e4786a3584b 147 */
Dhruv_Varun 0:7e4786a3584b 148 bool recvBytes(uint8_t *buf, size_t len, int timeout_us);
Dhruv_Varun 0:7e4786a3584b 149
Dhruv_Varun 0:7e4786a3584b 150 /**
Dhruv_Varun 0:7e4786a3584b 151 * Wait received.
Dhruv_Varun 0:7e4786a3584b 152 *
Dhruv_Varun 0:7e4786a3584b 153 * @return True if the data received.
Dhruv_Varun 0:7e4786a3584b 154 */
Dhruv_Varun 0:7e4786a3584b 155 bool waitRecv();
Dhruv_Varun 0:7e4786a3584b 156
Dhruv_Varun 0:7e4786a3584b 157 /**
Dhruv_Varun 0:7e4786a3584b 158 * Wait idle state.
Dhruv_Varun 0:7e4786a3584b 159 *
Dhruv_Varun 0:7e4786a3584b 160 * @return True if it succeed.
Dhruv_Varun 0:7e4786a3584b 161 */
Dhruv_Varun 0:7e4786a3584b 162 bool waitIdle();
Dhruv_Varun 0:7e4786a3584b 163
Dhruv_Varun 0:7e4786a3584b 164 };
Dhruv_Varun 0:7e4786a3584b 165
Dhruv_Varun 0:7e4786a3584b 166 #endif