maxds3231m :: added working example (set/get date and temperature)
authorKiveisha Yevgeniy <yevgeniy.kiveisha@intel.com>
Mon, 4 Aug 2014 11:44:07 +0000 (11:44 +0000)
committerKiveisha Yevgeniy <yevgeniy.kiveisha@intel.com>
Mon, 4 Aug 2014 11:44:07 +0000 (11:44 +0000)
Signed-off-by: Kiveisha Yevgeniy <yevgeniy.kiveisha@intel.com>
examples/CMakeLists.txt
examples/maxds3231m.cxx [new file with mode: 0644]

index 5813d0f..9fc6ffa 100644 (file)
@@ -21,6 +21,7 @@ add_executable (stepmotor-example stepmotor.cxx)
 add_executable (pulsensor-example pulsensor.cxx)
 add_executable (mic-example mic-example.cxx)
 add_executable (mpu9150-example mpu9150-example.cxx)
+add_executable (maxds3231m-example maxds3231m.cxx)
 
 include_directories (${PROJECT_SOURCE_DIR}/src/hmc5883l)
 include_directories (${PROJECT_SOURCE_DIR}/src/grove)
@@ -40,6 +41,7 @@ include_directories (${PROJECT_SOURCE_DIR}/src/stepmotor)
 include_directories (${PROJECT_SOURCE_DIR}/src/pulsensor)
 include_directories (${PROJECT_SOURCE_DIR}/src/mic)
 include_directories (${PROJECT_SOURCE_DIR}/src/mpu9150)
+include_directories (${PROJECT_SOURCE_DIR}/src/maxds3231m)
 
 target_link_libraries (compass hmc5883l ${CMAKE_THREAD_LIBS_INIT})
 target_link_libraries (groveled grove ${CMAKE_THREAD_LIBS_INIT})
@@ -64,3 +66,4 @@ target_link_libraries (stepmotor-example stepmotor ${CMAKE_THREAD_LIBS_INIT})
 target_link_libraries (pulsensor-example pulsensor ${CMAKE_THREAD_LIBS_INIT})
 target_link_libraries (mic-example mic ${CMAKE_THREAD_LIBS_INIT})
 target_link_libraries (mpu9150-example mpu9150 ${CMAKE_THREAD_LIBS_INIT})
+target_link_libraries (maxds3231m-example maxds3231m ${CMAKE_THREAD_LIBS_INIT})
diff --git a/examples/maxds3231m.cxx b/examples/maxds3231m.cxx
new file mode 100644 (file)
index 0000000..e5a6fc1
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * Author: Yevgeniy Kiveisha <yevgeniy.kiveisha@intel.com>
+ * Copyright (c) 2014 Intel Corporation.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <unistd.h>
+#include <iostream>
+#include "maxds3231m.h"
+#include <signal.h>
+
+int doWork = 0;
+upm::MAXDS3231M *sensor = NULL;
+
+void
+sig_handler(int signo)
+{
+    printf("got signal\n");
+    if (signo == SIGINT) {
+        printf("exiting application\n");
+        doWork = 1;
+    }
+}
+
+int
+main(int argc, char **argv)
+{
+    //! [Interesting]
+    upm::Time3231 t;
+    sensor = new upm::MAXDS3231M(0, ADDR);
+
+    t.second    = 1;
+    t.minute    = 3;
+    t.hour      = 3;
+    t.day       = 3;
+    t.month     = 3;
+    t.year      = 3;
+    t.weekDay   = 3;
+    sensor->setDate (t); // Note, second should be set to 1.
+
+    usleep (500000);
+
+    while (!doWork) {
+        if (sensor->getDate (t)) {
+            std::cout << (int)t.hour << ":" << (int)t.minute << ":" << (int)t.second << std::endl;
+        }
+        std::cout << "Temperature " << sensor->getTemperature() << std::endl;
+        usleep (1000000);
+    }
+    //! [Interesting]
+
+    std::cout << "exiting application" << std::endl;
+
+    delete sensor;
+
+    return 0;
+}