summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--example.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/example.c b/example.c
new file mode 100644
index 0000000..3436dab
--- /dev/null
+++ b/example.c
@@ -0,0 +1,36 @@
+#include "legato.h"
+#include "interfaces.h"
+#include "camera.h"
+
+#define RETRY_WAIT_SEC 60
+
+bool takePhoto (Camera *cam, char *dirPath) {
+ cam->fd = fd_openCam();
+ bool resetSucess = cam_reset(cam);
+ LE_INFO("Camera reset %s", resetSucess ? "succeeded" : "failed");
+ LE_DEBUG("Taking photo...");
+ bool snapshotSuccess = cam_snapshotToFile(cam, dirPath, VC0706_640x480);
+ LE_INFO("Snapshot %s", snapshotSuccess ? "succeeded" : "failed");
+ fd_closeCam(cam->fd);
+ return resetSucess && snapshotSuccess;
+}
+
+void photoLoop (Camera *cam, int intervalMintues, char *dirPath) {
+ LE_INFO("Taking photos every %d minutes and storing them in %s", intervalMintues, dirPath);
+ while (true) {
+ bool success = takePhoto(cam, dirPath);
+ int sleepDur = success ? intervalMintues * 60 : RETRY_WAIT_SEC;
+ if (success) LE_INFO("Taking next photo in %d minutes", intervalMintues);
+ else LE_INFO("Retrying after %d seconds", RETRY_WAIT_SEC);
+ sleep(sleepDur);
+ }
+}
+
+COMPONENT_INIT {
+ Camera cam = {
+ .serialNum = 0x00,
+ .bufferLen = 0,
+ .frameptr = 0,
+ };
+ photoLoop(&cam, 10, "/home/root/sd");
+} \ No newline at end of file