use TCP to connect to mbed connector
Fork of mbedConnectorInterfaceWithDM by
Diff: source/TickerResourceObserver.cpp
- Revision:
- 0:1f1f55e73248
- Child:
- 13:9edad7677211
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/source/TickerResourceObserver.cpp Fri Feb 19 17:32:14 2016 +0000 @@ -0,0 +1,69 @@ +/** + * @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" + + // DEBUG + //DigitalOut __ticker_led(LED2); + + // constructor + TickerResourceObserver::TickerResourceObserver(DynamicResource *resource,int sleep_time) : + ResourceObserver(resource,(int)(sleep_time/1000)) { + this->setObserving(false); + // DEBUG + std::printf("TickerResourceObserver being used for %s (sleep_time=%d)\r\n",resource->getFullName().c_str(),sleep_time); + } + + // destructor + TickerResourceObserver::~TickerResourceObserver() { + this->stopObservation(); + } + + // notifier + void TickerResourceObserver::observationNotifier() { + if (this->isObserving() == true && this->getResource() != NULL) { + // + // implementsObservation(): This switch denotes whether this ticker resource generates its own observations or relies on the ticker (time-based) mechanism. + // -- if resource itself doesn't implement it, then we can call notify() with the get() on each heartbeat of the tickered resource (see note below) + // -- otherwise, we let the resource itself call observe() as part of its observation implementation + // + // note: this is independent of whether the resource, when declared, is defined as an observable resource or not. If not, then notify() wont be called + // as there will be no observations for this resource regardless of this switch value. + // + bool do_notify = !(this->getResource()->implementsObservation()); + this->getResource()->observe(); + //__ticker_led = !__ticker_led; + } + } + + // begin observing... + void TickerResourceObserver::beginObservation() { + if (this->isObserving() == false) { + this->m_ticker.attach(this,&TickerResourceObserver::observationNotifier,(float)this->getSleepTime()); + this->setObserving(true); + } + } + + // begin observing... + void TickerResourceObserver::stopObservation() { + this->setObserving(false); + } \ No newline at end of file