Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: IoT_LED_demo ServoTest uWater_Project hackathon ... more
Revision 38:96d15287b6f9, committed 2015-04-11
- Comitter:
- ansond
- Date:
- Sat Apr 11 17:20:56 2015 +0000
- Parent:
- 37:5de33aed0cac
- Child:
- 39:ecd93f60bd6a
- Commit message:
- added ticker resource observer
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/api/TickerResourceObserver.cpp Sat Apr 11 17:20:56 2015 +0000
@@ -0,0 +1,57 @@
+/**
+ * @file TickerResourceObserver.cpp
+ * @brief mbed CoAP DynamicResource Ticker-based observer (implementation)
+ * @author Doug Anson/Chris Paola
+ * @version 1.0
+ * @see
+ *
+ * Copyright (c) 2014
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ #include "TickerResourceObserver.h"
+
+ // determines whether the mDS endpoint has been registered or not...
+ extern "C" bool nsdl_endpoint_is_registered(void);
+
+ // constructor
+ TickerResourceObserver::TickerResourceObserver(DynamicResource *resource,uint8_t timer_id,int sleep_time) :
+ ResourceObserver(resource,(int)(sleep_time/1000)), m_ticker_active(false) {
+ }
+
+ // destructor
+ TickerResourceObserver::~TickerResourceObserver() {
+ this->stopObservation();
+ }
+
+ // notifier
+ void TickerResourceObserver::observationNotifier() {
+ if (this->isObserving() == true && this->getResource() != NULL && nsdl_endpoint_is_registered() == true && this->m_ticker_active == true) {
+ std::printf("Calling observe()...\r\n");
+ this->getResource()->observe();
+ }
+ }
+
+ // begin observing...
+ void TickerResourceObserver::beginObservation() {
+ if (this->m_ticker_active == false) {
+ this->m_ticker.attach(this,&TickerResourceObserver::observationNotifier,(float)this->getSleepTime());
+ this->m_ticker_active = true;
+ }
+ }
+
+ // begin observing...
+ void TickerResourceObserver::stopObservation() {
+ this->m_ticker_active = false;
+ }
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/api/TickerResourceObserver.h Sat Apr 11 17:20:56 2015 +0000
@@ -0,0 +1,75 @@
+/**
+ * @file TickerResourceObserver.h
+ * @brief mbed CoAP DynamicResource Ticker-based observer (header)
+ * @author Doug Anson/Chris Paola
+ * @version 1.0
+ * @see
+ *
+ * Copyright (c) 2014
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __TICKER_RESOURCE_OBSERVER_H__
+#define __TICKER_RESOURCE_OBSERVER_H__
+
+// mbed support
+#include "mbed.h"
+
+// mbedConnectorInterface configuration
+#include "mbedConnectorInterface.h"
+
+// Base class support
+#include "ResourceObserver.h"
+
+class TickerResourceObserver : public ResourceObserver {
+ public:
+ /**
+ Default Constructor
+ @param resource input the resource to observe
+ @param timer_id input the id for our timer (can be index value of each resource that is observed...)
+ @param sleep_time input the time for the observation tasklet to sleep (in whole seconds...)
+ */
+ TickerResourceObserver(DynamicResource *resource,uint8_t timer_id, int sleep_time = NSP_RD_UPDATE_PERIOD);
+
+ /**
+ Copy Constructor
+ */
+ TickerResourceObserver(const TickerResourceObserver &observer);
+
+ /**
+ Destructor
+ */
+ virtual ~TickerResourceObserver();
+
+ /**
+ begin the observation
+ */
+ virtual void beginObservation();
+
+ /**
+ stop the observation
+ */
+ virtual void stopObservation();
+
+ /**
+ tasklet invoke function (static)
+ */
+ void observationNotifier(void);
+
+ private:
+ Ticker m_ticker;
+ bool m_ticker_active;
+};
+
+#endif // __TICKER_RESOURCE_OBSERVER_H__
\ No newline at end of file
