Welcome to mirror list, hosted at ThFree Co, Russian Federation.

sensors_client.h « Inc « MeshModel « mesh « ble « STM32_WPAN « ST « Middlewares - github.com/Flipper-Zero/STM32CubeWB.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 27c46fffb8e6ab3eeabf21598cbb00a8893ec8e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
/**
******************************************************************************
* @file    sensors_client.h
* @author  BLE Mesh Team
* @brief   Header file for the user application file 
******************************************************************************
* @attention
*
* Copyright (c) 2018-2021 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __SENSORS_CLIENT_H
#define __SENSORS_CLIENT_H

/* Includes ------------------------------------------------------------------*/
#include "types.h"
#include "ble_mesh.h"


/* Exported macro ------------------------------------------------------------*/
/* Variable-------------------------------------------------------------------*/
#pragma pack(1)
typedef union  
{
  sensor_CadenceCbParam_t sSensor_CadenceParam;
  MOBLEUINT8 a_Cadence_param[sizeof(sensor_CadenceCbParam_t)]; 
} _Sensor_CadenceParam;

typedef union  
{
  sensor_SettingCbParams_t sSensor_SettingParam;
  MOBLEUINT8 a_Setting_param[sizeof(sensor_SettingCbParams_t)]; 
} _Sensor_SettingParam;

/**
*  structure of sensor server function pointers callback
*/
typedef struct
{
  void (*Sensor_Descriptor_Status_cb)(const MOBLEUINT8 *pDescriptor,
                                      MOBLEUINT32 length,
                                      MOBLE_ADDRESS dstPeer,
                                      MOBLEUINT8 elementIndex);
  void (*Sensor_Cadence_Status_cb)(const MOBLEUINT8 *pCadence,
                                   MOBLEUINT32 length,
                                   MOBLE_ADDRESS dstPeer,
                                   MOBLEUINT8 elementIndex);
  void (*Sensor_Settings_Status_cb)(const MOBLEUINT8 *pSettings,
                                    MOBLEUINT32 length,
                                    MOBLE_ADDRESS dstPeer,
                                    MOBLEUINT8 elementIndex);
  void (*Sensor_Setting_Status_cb)(const MOBLEUINT8 *pSetting,
                                   MOBLEUINT32 length,
                                   MOBLE_ADDRESS dstPeer,
                                   MOBLEUINT8 elementIndex);
  void (*Sensor_Status_cb)(const MOBLEUINT8 *pStatus,
                           MOBLEUINT32 length,
                           MOBLE_ADDRESS dstPeer,
                           MOBLEUINT8 elementIndex);
  void (*Sensor_Column_Status_cb)(const MOBLEUINT8 *pColumn,
                                  MOBLEUINT32 length,
                                  MOBLE_ADDRESS dstPeer,
                                  MOBLEUINT8 elementIndex);
  void (*Sensor_Series_Status_cb)(const MOBLEUINT8 *pSeries,
                                  MOBLEUINT32 length,
                                  MOBLE_ADDRESS dstPeer,
                                  MOBLEUINT8 elementIndex);  
} sensor_client_cb_t;

extern const sensor_client_cb_t SensorAppli_cb;

/******************************************************************************/
/********** Following Section defines the Opcodes for the Messages ************/
/******************************************************************************/


/* Exported Functions Prototypes ---------------------------------------------*/
MOBLE_RESULT SensorsModelClient_GetOpcodeTableCb(const MODEL_OpcodeTableParam_t **data, 
                                                 MOBLEUINT16 *length);

MOBLE_RESULT SensorsModelClient_GetStatusRequestCb(MODEL_MessageHeader_t *pmsgParam,
                                                   MOBLEUINT16 opcode, 
                                                   MOBLEUINT8 *pResponsedata, 
                                                   MOBLEUINT32 *plength, 
                                                   MOBLEUINT8 const *pRxData,
                                                   MOBLEUINT32 dataLength,
                                                   MOBLEBOOL response);

MOBLE_RESULT SensorsModelClient_ProcessMessageCb(MODEL_MessageHeader_t *pmsgParam,
                                                 MOBLEUINT16 opcode, 
                                                 MOBLEUINT8 const *pRxData, 
                                                 MOBLEUINT32 dataLength, 
                                                 MOBLEBOOL response);

MOBLE_RESULT SensorsClient_Descriptor_Get(MOBLEUINT8 elementIndex, 
                                          MOBLEUINT8 * ppropertyId);

MOBLE_RESULT SensorsClient_Cadence_Get(MOBLEUINT8 elementIndex, 
                                       MOBLEUINT8 * ppropertyId);

MOBLE_RESULT SensorsClient_Cadence_Set(MOBLEUINT8 elementIndex, 
                                       MOBLEUINT8 *pCadence_param, 
                                       MOBLEUINT32 length);

MOBLE_RESULT SensorsClient_Cadence_Set_Unack(MOBLEUINT8 elementIndex, 
                                             MOBLEUINT8 *pCadence_param, 
                                             MOBLEUINT32 length); 

MOBLE_RESULT SensorsClient_Settings_Get(MOBLEUINT8 elementIndex, 
                                        MOBLEUINT8 * ppropertyId);

MOBLE_RESULT SensorsClient_Setting_Get(MOBLEUINT8 elementIndex, 
                                       MOBLEUINT8 * pparam,
                                       MOBLEUINT8 length);

MOBLE_RESULT SensorsClient_Setting_Set(MOBLEUINT8 elementIndex, 
                                       MOBLEUINT8 *pSetting_param, 
                                       MOBLEUINT32 length); 

MOBLE_RESULT SensorsClient_Setting_Set_Unack(MOBLEUINT8 elementIndex, 
                                             MOBLEUINT8 *pSetting_param, 
                                             MOBLEUINT32 length); 

MOBLE_RESULT SensorsClient_Get(MOBLEUINT8 elementIndex, 
                               MOBLEUINT8 * ppropertyId);

MOBLE_RESULT SensorsClient_Column_Get(MOBLEUINT8 elementIndex, 
                               MOBLEUINT8 * pparam,
                               MOBLEUINT8 length);

MOBLE_RESULT SensorsClient_Series_Get(MOBLEUINT8 elementIndex, 
                               MOBLEUINT8 * pparam,
                               MOBLEUINT8 length);

#endif /* __SENSORS_CLIENT */