summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Van Doorn <vandoorn.nick@gmail.com>2017-11-09 09:03:48 -0800
committerNick Van Doorn <vandoorn.nick@gmail.com>2017-11-09 09:03:48 -0800
commitdf604080f553b4007ff865a53133573515a31c49 (patch)
treea93a5a1706afe77b1055e03689e5032e43a4afcc
parent728ac460d4fcf1f9747aa36ec9cc12c43a213596 (diff)
Remove confusing typedef
-rw-r--r--README.md48
-rw-r--r--camera.c76
-rw-r--r--camera.h42
3 files changed, 78 insertions, 88 deletions
diff --git a/README.md b/README.md
index 47d41f7..e9de3cd 100644
--- a/README.md
+++ b/README.md
@@ -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;
-
```
diff --git a/camera.c b/camera.c
index 7e4ffc4..cfe8719 100644
--- a/camera.c
+++ b/camera.c
@@ -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);
diff --git a/camera.h b/camera.h
index b24d508..2ef0f03 100644
--- a/camera.h
+++ b/camera.h
@@ -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);