+++ /dev/null
-/*
- * Copyright (c) 2019 G.camp,
- *
- * Contact: Jin Seog Bang <seog814@gmail.com>
- *
- * 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 __distance_H__
-#define __distance_H__
-
-#include <dlog.h>
-
-#ifdef LOG_TAG
-#undef LOG_TAG
-#endif
-#define LOG_TAG "distance"
-
-
-#endif /* __distance_H__ */
#include "resource_internal.h"
#include "resource/resource_illuminance_sensor.h"
-#include "resource/resource_oled.h"
#include "resource/resource_led.h"
#endif /* __POSITION_FINDER_RESOURCE_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2019 G.camp,
- *
- * Contact: Jin Seog Bang <seog814@gmail.com>
- *
- * 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 __RESOURCE_SERVO_MOTOR_H__
-#define __RESOURCE_SERVO_MOTOR_H__
-
-void resource_close_servo_motor(void);
-
-void resource_close_OLED(void);
-
-/**
- * This module is sample codes to handling Servo motors in Tizen platform.
- * Hardware is configured with HS-53,
- * Bus : 0
- * Pin : 2
- * @param[in] duty_cycle_ms
- * @return 0 on success, otherwise a negative error value
- */
-int resource_set_servo_motor_value(double duty_cycle_ms);
-
-int resource_OLED_initial(int i2c_bus);
-
-int resource_OLED_disp_logo(int i2c_bus);
-
-#endif /* __RESOURCE_SERVO_MOTOR_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2019 G.camp,
- *
- * Contact: Jin Seog Bang <seog814@gmail.com>
- *
- * 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 __RESOURCE_DISTANCE_SENSOR_INTERNAL_H__
-#define __RESOURCE_DISTANCE_SENSOR_INTERNAL_H__
-
-
-void resource_close_OLED(void);
-
-/**
- * This module is sample codes to handling Servo motors in Tizen platform.
- * Hardware is configured with HS-53,
- * Bus : 0
- * Pin : 2
- * @param[in] duty_cycle_ms
- * @return 0 on success, otherwise a negative error value
- */
-
-
-#endif /* __RESOURCE_DISTANCE_SENSOR_INTERNAL_H__ */
#include "resource/resource_illuminance_sensor_internal.h"
-#include "resource/resource_oled_internal.h"
-
#define PIN_MAX 40
struct _resource_s {
+++ /dev/null
-/*
- * Copyright (c) 2019 G.camp,
- *
- * Contact: Jin Seog Bang <seog814@gmail.com>
- *
- * 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 __ST_THINGS_H__
-#define __ST_THINGS_H__
-
-#include <stdint.h>
-#include <stdbool.h>
-
-#ifdef __ST_THINGS_RTOS__
-#include <st_things/st_things_types.h>
-#else
-#include "st_things_types.h"
-#endif // __ST_THINGS_RTOS__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * @brief Set prefix paths (ReadOnly and ReadWrite) for configuration files for the device.
- * This is Optional API, and should be used if relative location is used in
- * filePath variable in JSON Configuration file.
- * @param[in] ro_path Prefix Path for Read Only directory location.
- * @param[in] rw_path Prefix Path for Read Write directory location.
- * @return @c 0 on success, otherwise a negative error value
- * @retval #ST_THINGS_ERROR_NONE Successful
- * @retval #ST_THINGS_ERROR_INVALID_PARAMETER Invalid parameter(both ro_path and rw_path are NULL).
- * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed
- * @retval #ST_THINGS_ERROR_STACK_ALREADY_INITIALIZED Stack already initialized.
- * To set Prefix Paths, stack should be deinitilized first by calling st_things_deinitialize().
- * @retval #ST_THINGS_ERROR_STACK_RUNNING Stack is currently running.
- * To set Prefix Paths, stack should be stopped first by calling st_things_stop()
- * and then deinitialized by calling st_things_deinitialize().
- */
-int st_things_set_configuration_prefix_path(const char* ro_path, const char* rw_path);
-
-/**
- * @brief Initializes things stack and returns whether easy-setup is completed or not.
- * Easy-setup enable users to acquire the ownership of things and to connect the things with the cloud.
- * After performing easy-setup, users can access things from anywhere through the cloud.
- * In things stack, easy-setup is a primary and the first operation to be performed on the thing.
- * Application running on the thing can know whether easy-setup is done already or not.
- * If easy-setup is done, app can start the things stack by calling st_things_start().
- * If easy-setup is not done, app can either wait for the user interaction before starting the things stack or
- * start the things stack directly without waiting for any events(This case is for those things which doesn't
- * support input capability and for all other unknown cases).
- * To use a new json file after initialization, stack should be deinitialized
- * and stopped(if its started already).
- * @param[in] json_path Path to Json file which defines a thing. Definition includes the device information,
- * resources and their properties, configuration info for connectivity and easy-setup, etc.
- * @param[out] easysetup_complete Indicates whether easysetup is completed already or not.
- * @return @c 0 on success, otherwise a negative error value
- * @retval #ST_THINGS_ERROR_NONE Successful
- * @retval #ST_THINGS_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed
- * @retval #ST_THINGS_ERROR_STACK_ALREADY_INITIALIZED Stack already initialized.
- * To initialize again, stack should be deinitilized first by calling st_things_deinitialize().
- * @retval #ST_THINGS_ERROR_STACK_RUNNING Stack is currently running.
- * To initialize again, stack should be stopped first by calling st_things_stop()
- * and then deinitialized by calling st_things_deinitialize().
- */
-int st_things_initialize(const char *json_path, bool *easysetup_complete);
-
-/**
- * @brief Deinitializes things stack.
- * Stack should have been initialized before calling this API.
- * @return @c 0 on success, otherwise a negative error value
- * @retval #ST_THINGS_ERROR_NONE Successful
- * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed
- * @retval #ST_THINGS_ERROR_STACK_NOT_INITIALIZED Stack is not initialized.
- * Initialize the stack by calling st_things_initialize().
- * @retval #ST_THINGS_ERROR_STACK_RUNNING Stack is currently running.
- * Before deinitialize, stack needs to be stopped by calling st_things_stop().
- */
-int st_things_deinitialize(void);
-
-/**
- * @brief Callback for handling GET request.
- * @param[in] req_msg GET request message.
- * @param[out] resp_rep Representation that will be set to payload of response.
- * @return @c true in case of success, otherwise @c false
- */
-typedef bool (*st_things_get_request_cb)(st_things_get_request_message_s *req_msg, st_things_representation_s *resp_rep);
-
-/**
- * @brief Callback for handling SET(POST) request.
- * @param[in] req_msg SET request message.
- * @param[out] resp_rep Representation that will be set to payload of response.
- * @return @c true in case of success, otherwise @c false
- */
-typedef bool (*st_things_set_request_cb)(st_things_set_request_message_s *req_msg, st_things_representation_s *resp_rep);
-
-/**
- * @brief Callback registration function for handling request messages.
- * @details The callbacks ensure that a request message will be carried with one of the resource uris from json file of st_things_start().
- * @remarks Only one callback function can be set with this API.\n
- * If multiple callbacks are set, the last one is registered only.\n
- * And the callbacks are called in the internal thread, which is not detached,\n
- * so application should return it to get the next callbacks.
- * @param[in] get_cb Reference of the callback function to handle GET request.
- * @param[in] set_cb Reference of the callback function to handle SET(POST) request.
- * @return @c 0 on success, otherwise a negative error value
- * @retval #ST_THINGS_ERROR_NONE Successful
- * @retval #ST_THINGS_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed
- */
-int st_things_register_request_cb(st_things_get_request_cb get_cb, st_things_set_request_cb set_cb);
-
-/**
- * @brief Starts things stack.
- * Parses the thing definition(whose path is passed to st_things_initialize(), configures the thing,
- * creates the resources and prepares it for easy-setup.
- * If easy-setup is not done yet, onboarding will be started using either SoftAP or BLE connection.
- * Onboarding creates an ad-hoc network between the thing and the client for performing easy-setup.
- * If easy-setup is already done, thing will be connected with the cloud.
- * Application can know whether easy-setup is done or not through st_things_initialize API.
- * Stack should have been initialized before calling this API.
- * @return @c 0 on success, otherwise a negative error value
- * @retval #ST_THINGS_ERROR_NONE Successful.
- * It is also used for the case that the stack is started already.
- * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed
- * @retval #ST_THINGS_ERROR_STACK_NOT_INITIALIZED Stack is not initialized.
- * Initialize the stack by calling st_things_initialize().
- */
-int st_things_start(void);
-
-/**
- * @brief Stops things stack.
- * Removes all the data being used internally and releases all the memory allocated for the stack.
- * Stack should have been initialized and started before calling this API.
- * @return @c 0 on success, otherwise a negative error value
- * @retval #ST_THINGS_ERROR_NONE Successful
- * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed
- * @retval #ST_THINGS_ERROR_STACK_NOT_INITIALIZED Stack is not initialized.
- * Initialize the stack by calling st_things_initialize().
- * @retval #ST_THINGS_ERROR_STACK_NOT_STARTED Stack is not started.
- * Start the stack by calling st_things_start().
- */
-int st_things_stop(void);
-
-/**
- * @brief Callback for getting user's opinion regarding device reset.
- * @return @c true to confirm, otherwise @c to deny
- */
-typedef bool (*st_things_reset_confirm_cb)(void);
-
-/**
- * @brief Callback for carrying the result of reset.
- * @param[in] is_success Result of Stack-reset. (true : success, false : failure)
- */
-typedef void (*st_things_reset_result_cb)(bool is_success);
-
-/**
- * @brief Callback registration function for Reset-Confirmation and Reset-Result functions.
- * @remarks Only one callback function can be set with this API.\n
- * If multiple callbacks are set, the last one is registered only.\n
- And the callbacks are called in the internal thread, which is not detached,\n
- * so application should return it to get the next callbacks.
- * @param[in] confirm_cb Callback function that will be called to get the user's input when reset is triggered.
- * @param[in] result_cb Callback function that will be called after the reset process is done.
- * This parameter can be NULL if notification for result of reset is not needed.
- * @return @c 0 on success, otherwise a negative error value
- * @retval #ST_THINGS_ERROR_NONE Successful
- * @retval #ST_THINGS_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed
- */
-int st_things_register_reset_cb(st_things_reset_confirm_cb confirm_cb, st_things_reset_result_cb result_cb);
-
-/**
- * @brief Reset all the data related to security and cloud being used in the stack.
- * Stack should have been initialized and started before calling this API.
- * @return @c 0 on success, otherwise a negative error value
- * @retval #ST_THINGS_ERROR_NONE Successful
- * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed
- * @retval #ST_THINGS_ERROR_STACK_NOT_INITIALIZED Stack is not intialized.
- * Initialize the stack by calling st_things_initialize().
- * @retval #ST_THINGS_ERROR_STACK_NOT_STARTED Stack is not started.
- * Start the stack by calling st_things_start().
- */
-int st_things_reset(void);
-
-/**
- * @brief Callback for carrying the randomly generated PIN info.
- * @details Device should show the PIN on display.
- * @param[in] pin_data PIN data in string format.
- * @param[in] pin_size Length of the PIN String.
- */
-typedef void (*st_things_pin_generated_cb)(const char *pin_data, const size_t pin_size);
-
-/**
- * @brief Callback for informing the application to close the PIN display.
- */
-typedef void (*st_things_pin_display_close_cb)(void);
-
-/**
- * @brief Callback registration function for getting randomly generated PIN for the PIN-Based Ownership Transfer Request.
- * @remarks Only one callback function can be set with this API.\n
- * If multiple callbacks are set, the last one is registered only.\n
- * And the callbacks are called in the internal thread, which is not detached,\n
- * so application should return it to get the next callbacks.
- * @param[in] generated_cb Callback function that will be called when device receives a Ownership Transfer request from client.
- * @param[in] close_cb Callback function that will be called when Ownership Transfer is done so device can stop showing PIN on display.
- * This parameter can be NULL if stop triggering is not needed.
- * @return @c 0 on success, otherwise a negative error value
- * @retval #ST_THINGS_ERROR_NONE Successful
- * @retval #ST_THINGS_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed
- */
-int st_things_register_pin_handling_cb(st_things_pin_generated_cb generated_cb, st_things_pin_display_close_cb close_cb);
-
-/**
- * @brief Callback for getting user's input regarding mutual verification.
- * @return @c true true in cse of confirmed, otherwise @c false
- */
-typedef bool (*st_things_user_confirm_cb)(void);
-
-/**
- * @brief Callback registration function for getting user confirmation for MUTUAL VERIFICATION BASED JUST WORK Ownership transfer.
- * @remarks Only one callback function can be set with this API.\n
- * If multiple callbacks are set, the last one is registered only.\n
- * And the callbacks are called in the internal thread, which is not detached,\n
- * so application should return it to get the next callbacks.
- * @param[in] confirm_cb Callback function that will be called when device receives a confirm request from client.
- * @return @c 0 on success, otherwise a negative error value
- * @retval #ST_THINGS_ERROR_NONE Successful
- * @retval #ST_THINGS_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed
- */
-int st_things_register_user_confirm_cb(st_things_user_confirm_cb confirm_cb);
-
-/**
- * @brief Callback for getting the current state of ST Things.
- * @param[in] things_status ST Things State
- */
-typedef void (*st_things_status_change_cb)(st_things_status_e things_status);
-
-/**
- * @brief Callback registration function for getting notified when ST Things state changes.
- * @remarks Only one callback function can be set with this API.\n
- * If multiple callbacks are set, the last one is registered only.\n
- * And the callbacks are called in the internal thread, which is not detached,\n
- * so application should return it to get the next callbacks.
- * @param[in] status_cb Refernce of the callback function to get ST Things status
- * @return @c 0 on success, otherwise a negative error value
- * @retval #ST_THINGS_ERROR_NONE Successful
- * @retval #ST_THINGS_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed
- */
-int st_things_register_things_status_change_cb(st_things_status_change_cb status_cb);
-
-/**
- * @brief Notify the observers of a specific resource.
- * Stack should have been initialized and started before calling this API.
- * @param[in] resource_uri Resource URI of the resource which will be notified to observers.
- * @return @c 0 on success, otherwise a negative error value
- * @retval #ST_THINGS_ERROR_NONE Successful
- * @retval #ST_THINGS_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #ST_THINGS_ERROR_OPERATION_FAILED Operation failed
- * @retval #ST_THINGS_ERROR_STACK_NOT_INITIALIZED Stack is not intialized.
- * Initialize the stack by calling st_things_initialize().
- * @retval #ST_THINGS_ERROR_STACK_NOT_STARTED Stack is not started.
- * Start the stack by calling st_things_start().
- */
-int st_things_notify_observers(const char *resource_uri);
-
-/**
- * @brief Create an instance of representation.
- * @remarks To destroy an instance, st_things_destroy_representation_inst() should be used.
- * @return a pointer of the created representation, otherwise a null pointer if the memory is insufficient.
- */
-st_things_representation_s *st_things_create_representation_inst(void);
-
-/**
- * @brief Destroy an instance of representation.
- * @param[in] rep Representation that will be destroyed.
- */
-void st_things_destroy_representation_inst(st_things_representation_s *rep);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __ST_THINGS_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2019 G.camp,
- *
- * Contact: Jin Seog Bang <seog814@gmail.com>
- *
- * 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 __ST_THINGS_TYPES_H__
-#define __ST_THINGS_TYPES_H__
-
-#include <stdint.h>
-#include <stdlib.h>
-#include <stdbool.h>
-
-/**
- * @brief Enumeration for ST Things error code.
- */
-typedef enum {
- ST_THINGS_ERROR_NONE = 0, /**< Successful */
- ST_THINGS_ERROR_INVALID_PARAMETER = -1, /**< Invalid parameter (If parameter is null or empty)*/
- ST_THINGS_ERROR_OPERATION_FAILED = -2, /**< Operation Failed */
- ST_THINGS_ERROR_STACK_NOT_INITIALIZED = -3, /**< Stack is not yet initialized*/
- ST_THINGS_ERROR_STACK_ALREADY_INITIALIZED = -4, /**< Stack is already initialized*/
- ST_THINGS_ERROR_STACK_NOT_STARTED = -5, /**< Stack is not yet started*/
- ST_THINGS_ERROR_STACK_RUNNING = -6, /**< Stack is currently running*/
-} st_things_error_e;
-
-/**
- * @brief Enumeration for ST Things status.
- */
-typedef enum {
- ST_THINGS_STATUS_INIT = 0, /**< Initial state of ST Things */
- ST_THINGS_STATUS_ES_STARTED, /**< Easy-setup is started */
- ST_THINGS_STATUS_ES_DONE, /**< Easy-setup is done */
- ST_THINGS_STATUS_ES_FAILED_ON_OWNERSHIP_TRANSFER, /**< Easy-setup failed due to Ownership-Transfer failure */
- ST_THINGS_STATUS_CONNECTING_TO_AP, /**< Connecting to target Wi-Fi access point */
- ST_THINGS_STATUS_CONNECTED_TO_AP, /**< Connected to target Wi-Fi access point */
- ST_THINGS_STATUS_CONNECTING_TO_AP_FAILED, /**< Failed to connect to target Wi-Fi access point */
- ST_THINGS_STATUS_REGISTERING_TO_CLOUD, /**< Trying to Sign-up/Sign-in/Publish-Resource(s) to Cloud */
- ST_THINGS_STATUS_REGISTERED_TO_CLOUD, /**< Publish resource(s) to cloud is complete. Now the Thing is ready to be controlled via Cloud */
- ST_THINGS_STATUS_REGISTERING_FAILED_ON_SIGN_IN, /**< Failed to sign-in to Cloud */
- ST_THINGS_STATUS_REGISTERING_FAILED_ON_PUB_RES /**< Failed to publish resources to Cloud */
-} st_things_status_e;
-
-/**
- * @brief Structure for Representation.
- */
-typedef struct _st_things_representation
-{
- void* payload; /**< Payload of representation */
-
- /**
- * @brief API for getting the value of string type property with a key.
- * @remarks This API will return deep-copied string value as out parameter, so application must free it after use.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which represents the value.
- * @param[out] value String value
- * @return @c true if value exist, otherwise @c false
- */
- bool (*get_str_value) (struct _st_things_representation* rep, const char* key, char** value);
-
- /**
- * @brief API for getting the value of boolean type property with a key.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which represents the value.
- * @param[out] value Bool value
- * @return @c true if value exist, otherwise @c false
- */
- bool (*get_bool_value) (struct _st_things_representation* rep, const char* key, bool* value);
-
- /**
- * @brief API for getting the value of integer type property with a key.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which represents the value.
- * @param[out] value Integer value
- * @return @c true if value exist, otherwise @c false
- */
- bool (*get_int_value) (struct _st_things_representation* rep, const char* key, int64_t* value);
-
- /**
- * @brief API for getting the value of double type property with a key.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which represents the value.
- * @param[out] value Double value
- * @return @c true if value exist, otherwise @c false
- */
- bool (*get_double_value) (struct _st_things_representation* rep, const char* key, double* value);
-
- /**
- * @brief API for getting the value of byte array type property with a key.
- * @remarks This API will return deep-copied byte value as out parameter, so application must free it after use.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which represents the value.
- * @param[out] value Byte value
- * @param[out] size Size of Byte value
- * @return @c true if value exist, otherwise @c false
- */
- bool (*get_byte_value) (struct _st_things_representation* rep, const char* key, uint8_t** value, size_t* size);
-
- /**
- * @brief API for getting the value of object type property with a key.
- * @remarks This API will return deep-copied object value as out parameter, so application must free it after use.\n
- * To free an object, st_things_destroy_representation_inst() in st_things.h should be used.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which represents the value.
- * @param[out] value Object value
- * @return @c true if value exist, otherwise @c false
- */
- bool (*get_object_value) (struct _st_things_representation* rep, const char* key, struct _st_things_representation** value);
-
- /**
- * @brief API for setting the value of string type property with a key.
- * @remarks This API will deep-copy the string value inside, so application still has an ownership of memory for the string value.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which will represent the value.
- * @param[in] value String value.
- * @return @c true if setting value is successful, otherwise @c false
- */
- bool (*set_str_value) (struct _st_things_representation* rep, const char* key, const char* value);
-
- /**
- * @brief API for setting the value of boolean type property with a key.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which will represent the value.
- * @param[in] value Bool value.
- * @return @c true if setting value is successful, otherwise @c false
- */
- bool (*set_bool_value) (struct _st_things_representation* rep, const char* key, bool value);
-
- /**
- * @brief API for setting the value of integer type property with a key.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which will represent the value.
- * @param[in] value Integer value.
- * @return @c true if setting value is successful, otherwise @c false
- */
- bool (*set_int_value) (struct _st_things_representation* rep, const char* key, int64_t value);
-
- /**
- * @brief API for setting the value of double type property with a key.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which will represent the value.
- * @param[in] value Double value.
- * @return @c true if setting value is successful, otherwise @c false
- */
- bool (*set_double_value) (struct _st_things_representation* rep, const char* key, double value);
-
- /**
- * @brief API for setting the value of byte array type property with a key.
- * @remarks This API will deep-copy the byte value inside, so application still has an ownership of memory for the byte value.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which will represent the value.
- * @param[in] value Byte value.
- * @param[in] size Size of Byte value.
- * @return @c true if setting value is successful, otherwise @c false
- */
- bool (*set_byte_value) (struct _st_things_representation* rep, const char* key, const uint8_t* value, size_t size);
-
- /**
- * @brief API for setting the value of object type property with a key.
- * @remarks This API will deep-copy the object value inside, so application still has an ownership of memory for the object value.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which will represent the value.
- * @param[in] value Object value.
- * @return @c true if value exist, otherwise @c false
- */
- bool (*set_object_value) (struct _st_things_representation* rep, const char* key, const struct _st_things_representation* value);
-
- /**
- * @brief API for getting the value of string array type property with a key.
- * @remarks This API will return deep-copied array value as out parameter, so application must free it after use.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which will represent the array type of value.
- * @param[out] array Reference of the string array to where the value will be copied.
- * @param[out] length Total number of elements in the array.
- * @return @c true if value exist, otherwise @c false
- */
- bool (*get_str_array_value) (struct _st_things_representation* rep, const char* key, char*** array, size_t* length);
-
- /**
- * @brief API for getting the value of integer array type property with a key.
- * @remarks This API will return deep-copied array value as out parameter, so application must free it after use.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which will represent the array type of value.
- * @param[out] array Reference of the integer array where the value will be copied.
- * @param[out] length Total number of elements in the array.
- * @return @c true if value exist, otherwise @c false
- */
- bool (*get_int_array_value) (struct _st_things_representation* rep, const char* key, int64_t** array, size_t* length);
-
- /**
- * @brief API for getting the value of double array type property with a key.
- * @remarks This API will return deep-copied array value as out parameter, so application must free it after use.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which will represent the array type of value.
- * @param[out] array Reference of the double array where the value will be copied.
- * @param[out] length Total number of elements in the array.
- * @return @c true if value exist, otherwise @c false
- */
- bool (*get_double_array_value) (struct _st_things_representation* rep, const char* key, double** array, size_t* length);
-
- /**
- * @brief API for getting the value of object array type property with a key.
- * @remarks This API will return deep-copied array value as out parameter, so application must free it after use.\n
- * To free each object in array, st_things_destroy_representation_inst() in st_things.h should be used.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which represents the array type of value.
- * @param[out] array Reference of the object array where the value will be copied.
- * @param[out] length Total number of elements in the array.
- * @return @c true if value exist, otherwise @c false
- */
- bool (*get_object_array_value) (struct _st_things_representation* rep, const char* key, struct _st_things_representation*** array, size_t* length);
-
- /**
- * @brief API for setting the value of string array type property with a key.
- * @remarks This API will deep-copy the array value inside, so application still has an ownership of memory for the array value.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which represents the value.
- * @param[in] array String array type value.
- * @param[in] length Total number of elements in the array.
- * @return @c true if setting value is successful, otherwise @c false
- */
- bool (*set_str_array_value) (struct _st_things_representation* rep, const char* key, const char** array, size_t length);
-
- /**
- * @brief API for setting the value of integer array type property with a key.
- * @remarks This API will deep-copy the array value inside, so application still has an ownership of memory for the array value.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which represents the value.
- * @param[in] array Integer array type value.
- * @param[in] length Total number of elements in the array.
- * @return @c true if setting value is successful, otherwise @c false
- */
- bool (*set_int_array_value) (struct _st_things_representation* rep, const char* key, const int64_t* array, size_t length);
-
- /**
- * @brief API for setting the value of double array type property with a key.
- * @remarks This API will deep-copy the array value inside, so application still has an ownership of memory for the array value.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which represents the value.
- * @param[in] array Double array type value.
- * @param[in] length Total number of elements in the array.
- * @return @c true if setting value is successful, otherwise @c false
- */
- bool (*set_double_array_value) (struct _st_things_representation* rep, const char* key, const double* array, size_t length);
-
- /**
- * @brief API for setting the value of object array type property with a key.
- * @remarks This API will deep-copy the array value inside, so application still has an ownership of memory for the array value.
- * @param[in] rep Instance of Representation.
- * @param[in] key Property Name which represents the value.
- * @param[in] array Object array type value.
- * @param[in] length Total number of elements in the array.
- * @return @c true if setting value is successful, otherwise @c false
- */
- bool (*set_object_array_value) (struct _st_things_representation* rep, const char* key, const struct _st_things_representation** array, size_t length);
-
-} st_things_representation_s;
-
-/**
- * @brief Structure for representing the Get Request Message.
- */
-typedef struct _st_things_get_request_message
-{
- char* resource_uri; /**< Resource URI */
- char* query; /**< One or more query parameters of the request message. Ex: key1=value1;key2=value2;... */
- char* property_key; /**< One or more property key that application needs to set a value for response. Ex: key1;key2;... */
-
- /**
- * @brief API for getting the value of a specific query from the query parameters of the request.
- * @param[in] req_msg Instance of get request message.
- * @param[in] key Name of the query.(ex: key1, key2, etc)
- * @param[out] value Value of the query.(value1, value2, etc)
- * @return @c true if query exist, otherwise @c false
- */
- bool (*get_query_value) (struct _st_things_get_request_message* req_msg, const char* key, char** value);
-
- /**
- * @brief API for checking whether the request has a specific property key or not.
- * @param[in] req_msg Instance of get request message.
- * @param[in] key Name of the property.
- * @return @c true if the property key exists, otherwise @c false
- */
- bool (*has_property_key) (struct _st_things_get_request_message* req_msg, const char* key);
-
-} st_things_get_request_message_s;
-
-/**
- * @brief Structure for representing the Set Request Message.
- */
-typedef struct _st_things_set_request_message
-{
- char* resource_uri; /**< Resource URI */
- char* query; /**< One or more query parameters of the request message. Ex: key1=value1?key2=value2?... */
- struct _st_things_representation* rep; /**< Representation of the set request message */
-
- /**
- * @brief API for getting the value of a specific query from the query parameters of the request.
- * @param[in] req_msg Instance of request message.
- * @param[in] key Name of the query.(ex: key1, key2, etc)
- * @param[out] value Value of the query.(value1, value2, etc)
- * @return @c true if query exist, otherwise @c false
- */
- bool (*get_query_value) (struct _st_things_set_request_message* req_msg, const char* key, char** value);
-
-} st_things_set_request_message_s;
-
-#endif /* __ST_THINGS_TYPES_H__ */
#include <unistd.h>
#include <Ecore.h>
-#include "st_things.h"
#include "log.h"
#include "sensor-data.h"
#include "resource.h"
#define SENSOR_KEY_ILLUMINANCE "illuminance"
#define SENSOR_KEY_RANGE "range"
-#define SENSOR_URI_DOOR "/capability/doorControl/main/0"
-#define SENSOR_KEY_DOOR "doorState"
-#define SENSOR_POWER_INITIALIZING BLIND_DOWN
-
#define I2C_BUS_NUMBER (1)
#define SENSOR_GATHER_INTERVAL (1.0f)
retv_if(ret != 0, -1);
ret = resource_two_read_set_LIDAR_sensor(I2C_BUS_NUMBER);
retv_if(ret != 0, -1);
-
+
usleep(delay_usec);
-
+
ret = resource_read_LIDAR_sensor(I2C_BUS_NUMBER, illuminance_value);
retv_if(ret != 0, -1);
sensor_data_set_uint(ad->illuminance_data, *illuminance_value);
_D2("Distance value : %u", *illuminance_value);
-#ifdef USE_ST_SDK
- st_things_notify_observers(SENSOR_URI_ILLUMINANCE);
-#endif
-
return 0;
}
_E("Failed to add getter_illuminance");
}
-#ifdef USE_ST_SDK
-static bool handle_reset_request(void)
-{
- _D("Received a request for RESET.");
- return false;
-}
-
-static void handle_reset_result(bool result)
-{
- _D("Reset %s.\n", result ? "succeeded" : "failed");
-}
-
-static bool handle_ownership_transfer_request(void)
-{
- _D("Received a request for Ownership-transfer.");
- return true;
-}
-
-static void handle_things_status_change(st_things_status_e things_status)
-{
- _D("Things status is changed: %d", things_status);
-
- if (things_status == ST_THINGS_STATUS_REGISTERED_TO_CLOUD) {
- ecore_main_loop_thread_safe_call_async(gathering_start, g_ad);
- }
-}
-
-static bool handle_get_request(st_things_get_request_message_s* req_msg, st_things_representation_s* resp_rep)
-{
- _D("resource_uri [%s]", req_msg->resource_uri);
- retv_if(!g_ad, false);
-
- if (0 == strcmp(req_msg->resource_uri, SENSOR_URI_ILLUMINANCE)) {
- if (req_msg->has_property_key(req_msg, SENSOR_KEY_ILLUMINANCE)) {
- unsigned int value = 0;
- sensor_data_get_uint(g_ad->illuminance_data, &value);
- resp_rep->set_int_value(resp_rep, SENSOR_KEY_ILLUMINANCE, value);
- }
- return true;
- // QUIZ
- } else if (0 == strcmp(req_msg->resource_uri, SENSOR_URI_DOOR)) {
- if (req_msg->has_property_key(req_msg, SENSOR_KEY_DOOR)) {
- const char *str = NULL;
- sensor_data_get_string(g_ad->power_data, &str);
- if (!str) {
- str = SENSOR_POWER_INITIALIZING;
- }
- resp_rep->set_str_value(resp_rep, SENSOR_KEY_DOOR, str);
- _D("Power : %s", str);
- }
- return true;
- }
- _E("not supported uri");
- return false;
-}
-
-static bool handle_set_request(st_things_set_request_message_s* req_msg, st_things_representation_s* resp_rep)
-{
- _D("resource_uri [%s]", req_msg->resource_uri);
- retv_if(!g_ad, false);
-
- // QUIZ
- if (0 == strcmp(req_msg->resource_uri, SENSOR_URI_DOOR)) {
- int ret = 0;
- char *str = NULL;
-
- if (req_msg->rep->get_str_value(req_msg->rep, SENSOR_KEY_DOOR, &str)) {
- retv_if(!str, false);
- _D("set [%s:%s] == %s", SENSOR_URI_DOOR, SENSOR_KEY_DOOR, str);
-
- sensor_data_set_string(g_ad->power_data, str, strlen(str));
- resp_rep->set_str_value(resp_rep, SENSOR_KEY_DOOR, str);
-
- if (0 == strcmp(str, "opening")) {
- ret = __set_servo_motor(g_ad, 1);
- } else {
- ret = __set_servo_motor(g_ad, 0);
- }
- free(str);
- retv_if(ret != 0, false);
- } else {
- _E("cannot get a string value");
- }
-
- return true;
- }
- return false;
-}
-
-static int __st_things_init(void)
-{
- bool easysetup_complete = false;
- char app_json_path[128] = {'\0', };
- char *app_res_path = NULL;
- char *app_data_path = NULL;
-
- app_res_path = app_get_resource_path();
- if (!app_res_path) {
- _E("app_res_path is NULL!!");
- return -1;
- }
-
- app_data_path = app_get_data_path();
- if (!app_data_path) {
- _E("app_data_path is NULL!!");
- free(app_res_path);
- return -1;
- }
-
- snprintf(app_json_path, sizeof(app_json_path), "%s%s", app_res_path, JSON_PATH);
-
- if (0 != st_things_set_configuration_prefix_path(app_res_path, app_data_path)) {
- _E("st_things_set_configuration_prefix_path() failed!!");
- free(app_res_path);
- free(app_data_path);
- return -1;
- }
-
- free(app_res_path);
- free(app_data_path);
-
- if (0 != st_things_initialize(app_json_path, &easysetup_complete)) {
- _E("st_things_initialize() failed!!");
- return -1;
- }
-
- _D("easysetup_complete:[%d] ", easysetup_complete);
-
- st_things_register_request_cb(handle_get_request, handle_set_request);
- st_things_register_reset_cb(handle_reset_request, handle_reset_result);
- st_things_register_user_confirm_cb(handle_ownership_transfer_request);
- st_things_register_things_status_change_cb(handle_things_status_change);
-
- return 0;
-}
-
-static int __st_things_deinit(void)
-{
- st_things_deinitialize();
- return 0;
-}
-
-static int __st_things_start(void)
-{
- st_things_start();
- return 0;
-}
-
-static int __st_things_stop(void)
-{
- st_things_stop();
- return 0;
-}
-#endif /* USE_ST_SDK */
-
static bool service_app_create(void *user_data)
{
app_data *ad = (app_data *)user_data;
ad->illuminance_data = sensor_data_new(SENSOR_DATA_TYPE_UINT);
if (!ad->illuminance_data)
return false;
-
- resource_write_led(5, 1);
-
-
-
-
-#ifdef USE_ST_SDK
- resource_OLED_initial(I2C_BUS_NUMBER);
- resource_OLED_disp_logo(I2C_BUS_NUMBER);
-
- if (__st_things_init())
- return false;
-#endif
+ resource_write_led(5, 1);
return true;
}
static void service_app_control(app_control_h app_control, void *user_data)
{
-#ifdef USE_ST_SDK
- __st_things_start();
-#else
gathering_start(user_data);
-#endif
}
static void service_app_terminate(void *user_data)
resource_write_led(5, 0);
resource_close_all();
- resource_close_OLED();
-/*
- resource_close_initial_LIDAR_sensor();
- resource_close_two_read_set_LIDAR_sensor();
- resource_close_read_LIDAR_sensor();
-*/
-#ifdef USE_ST_SDK
- __st_things_stop();
- __st_things_deinit();
-#else
+
gathering_stop(ad);
-#endif
sensor_data_free(ad->illuminance_data);
free(ad);
resource_sensor_s.opened = 1;
}
-// resource_write_led(5, 1); // debug led on
-
ret = peripheral_i2c_read(resource_sensor_s.sensor_h, buf, 2);
if (ret != PERIPHERAL_ERROR_NONE) {
*out_value = (buf[0] << 8 | buf[1]) / LIDAR_CONSTANT_NUM;
- resource_write_led(5, 0); // debug led off
+ resource_write_led(5, 0); // debug led off
return 0;
-}
+}
+++ /dev/null
-/*
- * Copyright (c) 2019 G.camp,
- *
- * Contact: Jin Seog Bang <seog814@gmail.com>
- *
- * 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 <peripheral_io.h>
-#include "log.h"
-#include "resource.h"
-
-/* I2C */
-#define SSD1306_ADDR 0x03c /* Address of SSD1306 OLED */
-
-static struct {
- int opened;
- peripheral_i2c_h sensor_h;
-} resource_sensor_s1;
-
-void resource_close_OLED(void)
-{
- if (!resource_sensor_s1.opened)
- return;
-
- _I("OLED display is finishing...");
- peripheral_i2c_close(resource_sensor_s1.sensor_h);
- resource_sensor_s1.opened = 0;
-}
-
-int resource_OLED_initial(int i2c_bus)
-{
- int ret = PERIPHERAL_ERROR_NONE;
- static int write = 0;
- unsigned char buff_count ;
- unsigned char page_count;
- unsigned char buf[10] = { 0, };
- unsigned char tcbuf[10] = { 0, };
- unsigned char tmbuf[30] = { 0xae, 0xd5, 0x80, 0xa8, 0x3f,
- 0xd3, 0x00, 0x40, 0x8d, 0x14,
- 0x20, 0x00, 0xda, 0x12, 0x81,
- 0x9f, 0xd9, 0x22, 0xdb, 0x40,
- 0xa4, 0xa6, 0xaf};
-
- if (!resource_sensor_s1.opened) {
-
- ret = peripheral_i2c_open(i2c_bus, SSD1306_ADDR, &resource_sensor_s1.sensor_h);
- if (ret != PERIPHERAL_ERROR_NONE) {
- _E("i2c open error OLED1 : %s", get_error_message(ret));
-
- return -1;
- }
- resource_sensor_s1.opened = 1;
- write = 0;
- }
-
-// buf[0] = 0x00; // OLED control command
-// buf[1] = 0xae; // OLED command
-
-#if 1
- for (buff_count = 0; buff_count < 24; buff_count++)
- {
- if (!write) {
- buf[0] = 0x00;
- buf[1] = tmbuf[buff_count];
-
- ret = peripheral_i2c_write(resource_sensor_s1.sensor_h, buf, 2);
- if (ret != PERIPHERAL_ERROR_NONE) {
- _E("i2c write error OLED : %s", get_error_message(ret));
- return -1;
- }
- write = 0; //write = 1;???
- }
-
- _I("iic OLED control initial .. step ");
- }
-#endif
-
-#if 1
- buf[0] = 0x20;
- buf[1] = 0x10;
- for (buff_count = 0; buff_count < 2; buff_count++)
- {
- if (!write) {
- buf[0] = 0x00;
- buf[1] = tcbuf[buff_count];
- ret = peripheral_i2c_write(resource_sensor_s1.sensor_h, buf, 2);
- if (ret != PERIPHERAL_ERROR_NONE) {
- _E("i2c write error OLED 1: %s", get_error_message(ret));
-
- return -1;
- }
- write = 0; //write = 1;???
- }
- }
-
- _I("iic OLED control pageaddr .. step ");
-#endif
-
-#if 1
- tcbuf[0] = 0x21;
- tcbuf[1] = 0x00;
- tcbuf[2] = 0x7f;
- for (buff_count = 0; buff_count < 3; buff_count++)
- {
- if (!write) {
- buf[0] = 0x00;
- buf[1] = tcbuf[buff_count];
- ret = peripheral_i2c_write(resource_sensor_s1.sensor_h, buf, 2);
- if (ret != PERIPHERAL_ERROR_NONE) {
- _E("i2c write error OLED 2: %s", get_error_message(ret));
- return -1;
- }
- write = 0; //write = 1;???
-
- }
- }
- _I("iic OLED control columnaddr .. step ");
-#endif
-
-#if 0
- buf[0] = 0x22;
- buf[1] = 0x00;
- buf[2] = 0x00;
- for (buff_count = 0; buff_count < 3; buff_count++)
- {
- if (!write) {
- buf[0] = 0x00;
- buf[1] = tcbuf[buff_count];
- ret = peripheral_i2c_write(resource_sensor_s1.sensor_h, buf, 2);
- if (ret != PERIPHERAL_ERROR_NONE) {
- _E("i2c write error OLED 3: %s", get_error_message(ret));
- return -1;
- }
- write = 0; //write = 1;???
- }
- }
- _I("iic OLED control pageaddr .. step ");
-#endif
-
-#if 1
- for (page_count = 0; page_count < 8; page_count ++)
- {
- tcbuf[0] = (0xb0 + page_count);
- buff_count = 0;
- if (!write) {
- buf[0] = 0x00;
- buf[1] = tcbuf[buff_count];
- ret = peripheral_i2c_write(resource_sensor_s1.sensor_h, buf, 2);
- if (ret != PERIPHERAL_ERROR_NONE) {
- _E("i2c write error OLED 4: %s", get_error_message(ret));
- return -1;
- }
- write = 0; //write = 1;???
- }
- _I("iic OLED control pageaddr .. step ");
-
-
- for (buff_count = 0; buff_count < 128; buff_count++)
- {
- if (!write) {
- buf[0] = 0x40;
- buf[1] = 0x00;
-
- ret = peripheral_i2c_write(resource_sensor_s1.sensor_h, buf, 2);
- if (ret != PERIPHERAL_ERROR_NONE) {
- _E("i2c write error OLED 5 : %s", get_error_message(ret));
- return -1;
- }
- write = 0; //write = 1;???
- }
- _I("iic OLED data .. step ");
-
- }
- }
-#endif
-
- return 0;
-}
-
-int resource_OLED_disp_logo(int i2c_bus)
-{
- int ret = PERIPHERAL_ERROR_NONE;
- static int write = 0;
- unsigned char buff_count ;
- unsigned char page_count;
- unsigned char buf[10] = { 0, };
- unsigned char tcbuf[10] = { 0, };
- unsigned char font_G_l[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x1f, 0x20, 0x20, 0x20, 0x20, 0x1f, 0x00, // G font
- 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, // - font
- 0x00, 0x1f, 0x20, 0x20, 0x20, 0x20, 0x10, 0x00, // C font
- 0x00, 0x3f, 0x01, 0x01, 0x01, 0x01, 0x3f, 0x00, // A font
- 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, // M font
- 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // P font
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
- unsigned char font_G_h[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xf8, 0x04, 0x04, 0x84, 0x84, 0x88, 0x00,
- 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
- 0x00, 0xf8, 0x04, 0x04, 0x04, 0x04, 0x08, 0x00,
- 0x00, 0xc0, 0x30, 0x0c, 0x0c, 0x30, 0xc0, 0x00,
- 0x00, 0xfc, 0x08, 0x70, 0x70, 0x08, 0xfc, 0x00,
- 0x00, 0xfc, 0x84, 0x84, 0x84, 0x84, 0x78, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
-
-// resource_write_led(5, 1);
-
-
- tcbuf[0] = 0x21;
- tcbuf[1] = 0x00;
- tcbuf[2] = 0x7f;
- for (buff_count = 0; buff_count < 3; buff_count++)
- {
- if (!write) {
- buf[0] = 0x00;
- buf[1] = tcbuf[buff_count];
- ret = peripheral_i2c_write(resource_sensor_s1.sensor_h, buf, 2);
- if (ret != PERIPHERAL_ERROR_NONE) {
- _E("i2c write error OLED 2: %s", get_error_message(ret));
- return -1;
- }
- write = 0; //write = 1;???
- }
- }
- _I("iic OLED control columnaddr .. step ");
-
- page_count = 2;
- tcbuf[0] = (0xb0 + page_count);
- buff_count = 0;
- if (!write) {
- buf[0] = 0x00;
- buf[1] = tcbuf[buff_count];
- ret = peripheral_i2c_write(resource_sensor_s1.sensor_h, buf, 2);
- if (ret != PERIPHERAL_ERROR_NONE) {
- _E("i2c write error OLED 6: %s", get_error_message(ret));
- return -1;
- }
- write = 0; //write = 1;???
- }
- _I("iic OLED logo disp high pageaddr .. step ");
-
-
- for (buff_count = 0; buff_count < 135; buff_count++)
- {
- if (!write) {
- buf[0] = 0x40;
- buf[1] = font_G_h[buff_count];
-
- ret = peripheral_i2c_write(resource_sensor_s1.sensor_h, buf, 2);
- if (ret != PERIPHERAL_ERROR_NONE) {
- _E("i2c write error OLED 7 : %s", get_error_message(ret));
- return -1;
- }
- write = 0; //write = 1;???
- }
- _I("iic OLED logo font high data .. step ");
-
- }
-
- tcbuf[0] = 0x21;
- tcbuf[1] = 0x00;
- tcbuf[2] = 0x7e;
- for (buff_count = 0; buff_count < 3; buff_count++)
- {
- if (!write) {
- buf[0] = 0x00;
- buf[1] = tcbuf[buff_count];
- ret = peripheral_i2c_write(resource_sensor_s1.sensor_h, buf, 2);
- if (ret != PERIPHERAL_ERROR_NONE) {
- _E("i2c write error OLED 2: %s", get_error_message(ret));
- return -1;
- }
- write = 0; //write = 1;???
- }
- }
- _I("iic OLED control columnaddr .. step ");
-
- page_count = 3;
- tcbuf[0] = (0xb0 + page_count );
- buff_count = 0;
- if (!write) {
- buf[0] = 0x00;
- buf[1] = tcbuf[buff_count];
- ret = peripheral_i2c_write(resource_sensor_s1.sensor_h, buf, 2);
- if (ret != PERIPHERAL_ERROR_NONE) {
- _E("i2c write error OLED 6: %s", get_error_message(ret));
- return -1;
- }
- write = 0; //write = 1;???
- }
- _I("iic OLED logo disp low pageaddr .. step ");
-
- for (buff_count = 0; buff_count < 135; buff_count++)
- {
- if (!write) {
- buf[0] = 0x40;
- buf[1] = font_G_l[buff_count];
-
- ret = peripheral_i2c_write(resource_sensor_s1.sensor_h, buf, 2);
- if (ret != PERIPHERAL_ERROR_NONE) {
- _E("i2c write error OLED 7 : %s", get_error_message(ret));
- return -1;
- }
- write = 0; //write = 1;???
- }
- _I("iic OLED logo font high data .. step ");
-
- }
- return 0;
-}