Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languageyml
titletuya_bulb_baci.yml
linenumberstrue
working_dir: /home/francisco/workspace
prefix: ACSIOT
module: acsiot
component_name: TuyaBulbBaci
functions:
  - 'void turnOn(in string api_region, in string api_key, in string api_secret)'
  - 'void turnOff(in string api_region, in string api_key, in string api_secret)'
  - 'ACS::ROboolean getStatus()'properties:
  - 'readonly attribute ACS::ROboolean status'

...

Code Block
languagecpp
titleidlTuyaBulbBaci/idl/TuyaBulbBaci.idl
linenumberstrue
#ifndef _TUYABULBBACI_IDL_
#define _TUYABULBBACI_IDL_
  
#pragma prefix "ACSIOT"
  
#include <baci.idl>
  
module acsiot {
    interface TuyaBulbBaci : ACS::CharacteristicComponent {
        void turnOn(in string api_region, in string api_key, in string api_secret);
        void turnOff(in string api_region, in string api_key, in string api_secret);
        readonly attribute ACS::ROboolean status;
    };
};
 
#endif


Component implementation

Code Block
languagecpp
titlecppTuyaBulbBaci/include/TuyaBulbBaciImpl.h
#ifndef _TUYABULBBACI_IMPL_H
#define _TUYABULBBACI_IMPL_H
  
#ifndef __cplusplus
#error This is a C++ include file and cannot be used from plain C
#endif
  
//Base component implementation, including container services and component lifecycle infrastructure
//#include <acscomponentImpl.h>
  
//Skeleton interface for server implementation
#include <TuyaBulbBaciS.h>

// TuyaBulbBaci
#include <baciCharacteristicComponentImpl.h>

// BACI smart bulb
#include <baciROboolean.h>
  
//Error definitions for catching and raising exceptions
class TuyaBulbBaciImpl : public virtual acscomponentbaci::ACSComponentImplCharacteristicComponentImpl, public virtual POA_acsiot::TuyaBulbBaci {
    public:
        TuyaBulbBaciImpl(const ACE_CString& name, maci::ContainerServices * containerServices);
        virtual ~TuyaBulbBaciImpl();

        virtual void turnOn(const char* api_region, const char* api_key, const char* api_secret);
        virtual void turnOff(const char* api_region, const char* api_key, const char* api_secret);
        virtual ACS::ROboolean_ptr status();

    private:
        const  ACSchar* device_id;
        baci::ROboolean * status_p;
};
  
#endif
Code Block
languagecpp
titlecppTuyaBulbBaci/src/TuyaBulbBaciImpl.cpp
#include <TuyaBulbBaciImpl.h>

#include <stdexcept>
  
TuyaBulbBaciImpl::TuyaBulbBaciImpl(const ACE_CString& name, maci::ContainerServices * containerServices) : ACSComponentImplCharacteristicComponentImpl(name, containerServices) {
    cout << "Constructing object." << endl;
}
  
TuyaBulbBaciImpl::~TuyaBulbBaciImpl() {
}

// functions    cout << "Destroying object." << endl;
}

void TuyaBulbBaciImpl::turnOn(const char* api_region, const char* api_key, const char* api_secret) {
    cout << "Turning smart bulb throw CORBA::NO_IMPLEMENT()ON" << endl;
}

void TuyaBulbBaciImpl::turnOff(const char* api_region, const char* api_key, const char* api_secret) {
    throw CORBA::NO_IMPLEMENT();
}

// properties
ACS::ROboolean* status;cout << "Turning smart bulb OFF" << endl;
}

ACS::ROboolean_ptr TuyaBulbBaciImpl::status () {
    cout << "Returning smart bulb status" << endl;
    return ACS::ROboolean::_nil();
}
  
/* --------------- [ MACI DLL support functions ] -----------------*/
#include <maciACSComponentDefines.h>
MACI_DLL_SUPPORT_FUNCTIONS(TuyaBulbBaciImpl)
/* ----------------------------------------------------------------*/

...