diff options
author | Nick Van Doorn <vandoorn.nick@gmail.com> | 2017-11-09 09:03:48 -0800 |
---|---|---|
committer | Nick Van Doorn <vandoorn.nick@gmail.com> | 2017-11-09 09:03:48 -0800 |
commit | df604080f553b4007ff865a53133573515a31c49 (patch) | |
tree | a93a5a1706afe77b1055e03689e5032e43a4afcc | |
parent | 728ac460d4fcf1f9747aa36ec9cc12c43a213596 (diff) |
Remove confusing typedef
-rw-r--r-- | README.md | 48 | ||||
-rw-r--r-- | camera.c | 76 | ||||
-rw-r--r-- | camera.h | 42 |
3 files changed, 78 insertions, 88 deletions
@@ -10,53 +10,47 @@ The Legato serial API [`le_tty`](http://legato.io/legato-docs/latest/le__tty_8h. ## API ```c -void delay (unsigned int secs); +void delay (unsigned int msecs); int openCameraFd (); -void sendCommand (Camera *cam, byte cmd, byte args[]); -bool runCommand (Camera *cam, byte cmd, byte args[], int respLen); -int readResponse (Camera *cam, int nBytes, int timeout); -bool verifyResponse (Camera *cam, byte cmd); -bool cameraFrameBuffCtrl (Camera *cam, byte cmd); +void sendCommand (Camera *cam, uint8_t cmd, uint8_t args[]); +bool runCommand (Camera *cam, uint8_t cmd, uint8_t args[], int respLen); +uint8_t readResponse (Camera *cam, int nBytes, unsigned int timeout); +bool verifyResponse (Camera *cam, uint8_t cmd); +bool cameraFrameBuffCtrl (Camera *cam, uint8_t cmd); bool takePicture (Camera *cam); -size_t bufferToFile (Camera *cam, char *path); bool reset (Camera *cam); bool TVon (Camera *cam); bool TVOff (Camera *cam); -byte *readPicture (Camera *cam); +uint8_t *readPicture (Camera *cam, uint8_t n); bool resumeVideo (Camera *cam); uint32_t frameLength (Camera *cam); char *getVersion (Camera *cam); -byte available (Camera *cam); -byte getDownsize (Camera *cam); -bool setDownsize(Camera *cam, int newSize); -int getImageSize (Camera *cam); -bool setImageSize (Camera *cam, int size); +uint8_t available (Camera *cam); +uint8_t getDownsize (Camera *cam); +bool setDownsize(Camera *cam, uint8_t newSize); +uint8_t getImageSize (Camera *cam); +bool setImageSize (Camera *cam, uint8_t x); bool getMotionDetect (Camera *cam); -byte getMotionStatus(Camera *cam, byte x); +uint8_t getMotionStatus(Camera *cam, uint8_t x); bool motionDetected (Camera *cam); -bool setMotionDetect (bool flag); -bool setMotionStatus (byte x, byte d1, byte d2); -byte getCompression (Camera *cam); -bool setCompression(Camera *cam, byte c); +bool setMotionDetect (Camera *cam, bool flag); +bool setMotionStatus (Camera *cam, uint8_t x, uint8_t d1, uint8_t d2); +uint8_t getCompression (Camera *cam); +bool setCompression(Camera *cam, uint8_t c); bool getPTZ(Camera *cam, uint16_t *w, uint16_t *h, uint16_t *wz, uint16_t *hz, uint16_t *pan, uint16_t *tilt); bool setPTZ(Camera *cam, uint16_t wz, uint16_t hz, uint16_t pan, uint16_t tilt); +bool snapshotToFile (Camera *cam, char *path, uint8_t imgSize); ``` ## Typedefs -### byte -```c -typedef uint8_t byte; -``` - ### Camera ```c typedef struct { int fd; // file descriptor for the serial port - byte serialNum; // camera serial number - byte buff[BUFF_SIZE]; // byte array to store camera data - int bufferLen; // current length of data in buffer + uint8_t serialNum; // camera serial number + uint8_t buff[BUFF_SIZE]; // uint8_t array to store camera data + uint8_t bufferLen; // current length of data in buffer uint16_t frameptr; } Camera; - ``` @@ -3,8 +3,6 @@ #include "camera.h" #include <time.h> -COMPONENT_INIT { } - // Used to wait for the serial port void delay (unsigned int msecs) { unsigned int secs = msecs / 1000; @@ -21,7 +19,7 @@ int openCameraFd () { } // Send a command to the camera serial port -void sendCommand (Camera *cam, byte cmd, byte args[]) { +void sendCommand (Camera *cam, uint8_t cmd, uint8_t args[]) { uint8_t init = VC0706_PREFIX; write(cam->fd, &init, 1); // send the cmd prefix write(cam->fd, &(cam->serialNum), 1); // send the serial number @@ -32,7 +30,7 @@ void sendCommand (Camera *cam, byte cmd, byte args[]) { } // Run a command -bool runCommand (Camera *cam, byte cmd, byte args[], int respLen) { +bool runCommand (Camera *cam, uint8_t cmd, uint8_t args[], int respLen) { sendCommand(cam, cmd, args); if (readResponse(cam, respLen, TIMEOUT) != respLen) return false; @@ -42,13 +40,13 @@ bool runCommand (Camera *cam, byte cmd, byte args[], int respLen) { } // Reads from the camera and returns how many bytes it read -int readResponse (Camera *cam, int nBytes, unsigned int timeout) { +uint8_t readResponse (Camera *cam, int nBytes, unsigned int timeout) { int counter = 0; cam->bufferLen = 0; // read while below timeout and while the buffer // is still smaller than expected while(timeout >= counter && cam->bufferLen <= nBytes) { - ssize_t bytesRead = read(cam->fd, &(cam->buff[0]) + cam->bufferLen, 1); // read one byte at a time + ssize_t bytesRead = read(cam->fd, &(cam->buff[0]) + cam->bufferLen, 1); // read one uint8_t at a time cam->bufferLen++; // bytesRead will be 0 or -1 if no data was received if (bytesRead <= 0) { @@ -61,7 +59,7 @@ int readResponse (Camera *cam, int nBytes, unsigned int timeout) { return cam->bufferLen; } -bool verifyResponse (Camera *cam, byte cmd) { +bool verifyResponse (Camera *cam, uint8_t cmd) { // If any of these are not equal than // the command failed return @@ -71,8 +69,8 @@ bool verifyResponse (Camera *cam, byte cmd) { cam->buff[3] != 0x0); } -bool cameraFrameBuffCtrl (Camera *cam, byte cmd) { - byte args[] = { 0x1, cmd }; +bool cameraFrameBuffCtrl (Camera *cam, uint8_t cmd) { + uint8_t args[] = { 0x1, cmd }; return runCommand(cam, cmd, args, 5); } @@ -82,22 +80,22 @@ bool takePicture (Camera *cam) { } bool reset (Camera *cam) { - byte args[] = { 0x0 }; + uint8_t args[] = { 0x0 }; return runCommand(cam, VC0706_RESET, args, 5); } bool TVon (Camera *cam) { - byte args[] = { 0x1, 0x1 }; + uint8_t args[] = { 0x1, 0x1 }; return runCommand(cam, VC0706_TVOUT_CTRL, args, 5); } bool TVOff (Camera *cam) { - byte args[] = { 0x1, 0x0 }; + uint8_t args[] = { 0x1, 0x0 }; return runCommand(cam, VC0706_TVOUT_CTRL, args, 5); } -byte *readPicture (Camera *cam, byte n) { - byte args[] = { 0x0C, 0x0, 0x0A, +uint8_t *readPicture (Camera *cam, uint8_t n) { + uint8_t args[] = { 0x0C, 0x0, 0x0A, 0, 0, cam->frameptr >> 8, cam->frameptr & 0xFF, 0, 0, 0, n, DELAY >> 8, DELAY & 0xFF }; @@ -116,7 +114,7 @@ bool resumeVideo (Camera *cam) { } uint32_t frameLength (Camera *cam) { - byte args[] = { 0x01, 0x00 }; + uint8_t args[] = { 0x01, 0x00 }; if (!runCommand(cam, VC0706_GET_FBUF_LEN, args, 9)) return 0; @@ -133,7 +131,7 @@ uint32_t frameLength (Camera *cam) { } char *getVersion (Camera *cam) { - byte args[] = { 0x01 }; + uint8_t args[] = { 0x01 }; sendCommand(cam, VC0706_GEN_VERSION, args); if (!readResponse(cam, BUFF_SIZE, 200)) return 0; @@ -141,43 +139,43 @@ char *getVersion (Camera *cam) { return (char*)&(cam->buff[0]); } -byte available (Camera *cam) { +uint8_t available (Camera *cam) { return cam->bufferLen; } -byte getDownsize (Camera *cam) { - byte args[] = { 0x0 }; +uint8_t getDownsize (Camera *cam) { + uint8_t args[] = { 0x0 }; if (!runCommand(cam, VC0706_DOWNSIZE_STATUS, args, 6)) return -1; return cam->buff[5]; } -bool setDownsize(Camera *cam, byte newSize) { - byte args[] = { 0x01, newSize }; +bool setDownsize (Camera *cam, uint8_t newSize) { + uint8_t args[] = { 0x01, newSize }; return runCommand(cam, VC0706_DOWNSIZE_CTRL, args, 5); } -int getImageSize (Camera *cam) { - byte args[] = { 0x4, 0x4, 0x1, 0x00, 0x19 }; +uint8_t getImageSize (Camera *cam) { + uint8_t args[] = { 0x4, 0x4, 0x1, 0x00, 0x19 }; if (!runCommand(cam, VC0706_READ_DATA, args, 6)) return -1; return cam->buff[5]; } -bool setImageSize (Camera *cam, byte x) { - byte args[] = { 0x05, 0x04, 0x01, 0x00, 0x19, x }; +bool setImageSize (Camera *cam, uint8_t x) { + uint8_t args[] = { 0x05, 0x04, 0x01, 0x00, 0x19, x }; return runCommand(cam, VC0706_WRITE_DATA, args, 5); } bool getMotionDetect (Camera *cam) { - byte args[] = { 0x0 }; + uint8_t args[] = { 0x0 }; if (!runCommand(cam, VC0706_COMM_MOTION_STATUS, args, 6)) return false; return cam->buff[5]; } -byte getMotionStatus(Camera *cam, byte x) { - byte args[] = { 0x01, x }; +uint8_t getMotionStatus(Camera *cam, uint8_t x) { + uint8_t args[] = { 0x01, x }; return runCommand(cam, VC0706_MOTION_STATUS, args, 5); } @@ -192,28 +190,28 @@ bool motionDetected (Camera *cam) { bool setMotionDetect (Camera *cam, bool flag) { if (!setMotionStatus(cam, VC0706_MOTIONCONTROL, VC0706_UARTMOTION, VC0706_ACTIVATEMOTION)) return false; - byte args[] = { 0x1, flag }; + uint8_t args[] = { 0x1, flag }; return runCommand(cam, VC0706_MOTION_STATUS, args, 5); } -bool setMotionStatus (Camera *cam, byte x, byte d1, byte d2) { - byte args[] = { 0x03, x, d1, d2 }; +bool setMotionStatus (Camera *cam, uint8_t x, uint8_t d1, uint8_t d2) { + uint8_t args[] = { 0x03, x, d1, d2 }; return runCommand(cam, VC0706_MOTION_CTRL, args, 5); } -byte getCompression (Camera *cam) { - byte args[] = { 0x4, 0x1, 0x1, 0x12, 0x04 }; +uint8_t getCompression (Camera *cam) { + uint8_t args[] = { 0x4, 0x1, 0x1, 0x12, 0x04 }; runCommand(cam, VC0706_READ_DATA, args, 6); return cam->buff[5]; } -bool setCompression (Camera *cam, byte c) { - byte args[] = { 0x5, 0x1, 0x1, 0x12, 0x04, c }; +bool setCompression (Camera *cam, uint8_t c) { + uint8_t args[] = { 0x5, 0x1, 0x1, 0x12, 0x04, c }; return runCommand(cam, VC0706_WRITE_DATA, args, 5); } bool getPTZ(Camera *cam, uint16_t *w, uint16_t *h, uint16_t *wz, uint16_t *hz, uint16_t *pan, uint16_t *tilt) { - byte args[] = {0x0}; + uint8_t args[] = {0x0}; if (!runCommand(cam, VC0706_GET_ZOOM, args, 16)) return false; @@ -245,7 +243,7 @@ bool getPTZ(Camera *cam, uint16_t *w, uint16_t *h, uint16_t *wz, uint16_t *hz, u } bool setPTZ(Camera *cam, uint16_t wz, uint16_t hz, uint16_t pan, uint16_t tilt) { - byte args[] = { + uint8_t args[] = { 0x08, wz >> 8, wz, hz >> 8, wz, pan>>8, pan, @@ -254,7 +252,7 @@ bool setPTZ(Camera *cam, uint16_t wz, uint16_t hz, uint16_t pan, uint16_t tilt) return !runCommand(cam, VC0706_SET_ZOOM, args, 5); } -bool snapshotToFile (Camera *cam, char *path, byte imgSize) { +bool snapshotToFile (Camera *cam, char *path, uint8_t imgSize) { setImageSize(cam, imgSize); LE_INFO("Taking photo..."); bool photoTaken = takePicture(cam); @@ -269,7 +267,7 @@ bool snapshotToFile (Camera *cam, char *path, byte imgSize) { LE_INFO("Got valid file pointer"); int jpgLen = frameLength(cam); while (jpgLen > 0) { - byte *buff; + uint8_t *buff; uint8_t bytesToRead = 32 < jpgLen ? jpgLen : 32; buff = readPicture(cam, bytesToRead); fwrite(buff, sizeof(*buff), bytesToRead, filePtr); @@ -37,50 +37,48 @@ #define VC0706_GET_ZOOM 0x53 #define CAM_BAUD_RATE LE_TTY_SPEED_38400 -#define BUFF_SIZE 1000 +#define BUFF_SIZE 100 #define DELAY 10 #define TIMEOUT 200 #define CAM_SERIAL 0 static const char SERIAL_PATH[] = "/dev/ttyHS0"; -typedef uint8_t byte; - typedef struct { int fd; // file descriptor for the serial port - byte serialNum; // camera serial number - byte buff[BUFF_SIZE]; // byte array to store camera data - int bufferLen; // current length of data in buffer + uint8_t serialNum; // camera serial number + uint8_t buff[BUFF_SIZE]; // uint8_t array to store camera data + uint8_t bufferLen; // current length of data in buffer uint16_t frameptr; } Camera; void delay (unsigned int msecs); int openCameraFd (); -void sendCommand (Camera *cam, byte cmd, byte args[]); -bool runCommand (Camera *cam, byte cmd, byte args[], int respLen); -int readResponse (Camera *cam, int nBytes, unsigned int timeout); -bool verifyResponse (Camera *cam, byte cmd); -bool cameraFrameBuffCtrl (Camera *cam, byte cmd); +void sendCommand (Camera *cam, uint8_t cmd, uint8_t args[]); +bool runCommand (Camera *cam, uint8_t cmd, uint8_t args[], int respLen); +uint8_t readResponse (Camera *cam, int nBytes, unsigned int timeout); +bool verifyResponse (Camera *cam, uint8_t cmd); +bool cameraFrameBuffCtrl (Camera *cam, uint8_t cmd); bool takePicture (Camera *cam); bool reset (Camera *cam); bool TVon (Camera *cam); bool TVOff (Camera *cam); -byte *readPicture (Camera *cam, byte n); +uint8_t *readPicture (Camera *cam, uint8_t n); bool resumeVideo (Camera *cam); uint32_t frameLength (Camera *cam); char *getVersion (Camera *cam); -byte available (Camera *cam); -byte getDownsize (Camera *cam); -bool setDownsize(Camera *cam, byte newSize); -int getImageSize (Camera *cam); -bool setImageSize (Camera *cam, byte x); +uint8_t available (Camera *cam); +uint8_t getDownsize (Camera *cam); +bool setDownsize(Camera *cam, uint8_t newSize); +uint8_t getImageSize (Camera *cam); +bool setImageSize (Camera *cam, uint8_t x); bool getMotionDetect (Camera *cam); -byte getMotionStatus(Camera *cam, byte x); +uint8_t getMotionStatus(Camera *cam, uint8_t x); bool motionDetected (Camera *cam); bool setMotionDetect (Camera *cam, bool flag); -bool setMotionStatus (Camera *cam, byte x, byte d1, byte d2); -byte getCompression (Camera *cam); -bool setCompression(Camera *cam, byte c); +bool setMotionStatus (Camera *cam, uint8_t x, uint8_t d1, uint8_t d2); +uint8_t getCompression (Camera *cam); +bool setCompression(Camera *cam, uint8_t c); bool getPTZ(Camera *cam, uint16_t *w, uint16_t *h, uint16_t *wz, uint16_t *hz, uint16_t *pan, uint16_t *tilt); bool setPTZ(Camera *cam, uint16_t wz, uint16_t hz, uint16_t pan, uint16_t tilt); -bool snapshotToFile (Camera *cam, char *path, byte imgSize); +bool snapshotToFile (Camera *cam, char *path, uint8_t imgSize); |