Mesh: Add generic mesh messages opcodes 89/243989/1
authorAbhay Agarwal <ay.agarwal@samsung.com>
Sat, 12 Sep 2020 08:00:21 +0000 (13:30 +0530)
committerAbhay Agarwal <ay.agarwal@samsung.com>
Sat, 12 Sep 2020 08:00:33 +0000 (13:30 +0530)
This patch adds support for mesh generic mesh messages.

Change-Id: Id28df7b6782e5c6b8ce912945d937f98fee1d3ae
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
bt-service/services/include/bt-service-mesh-util.h
bt-service/services/mesh/bt-service-mesh-model.c

index 7e3247b..655d31b 100644 (file)
@@ -186,10 +186,71 @@ extern "C" {
 #define MESH_OPCODE_VENDOR_MODEL_APP_LIST                0x804E
 
 /*Model msg opcodes */
-#define MESH_OPCODE_MODEL_GENERIC_ONOFF_GET              0x8201
-#define MESH_OPCODE_MODEL_GENERIC_ONOFF_SET              0x8202
-#define MESH_OPCODE_MODEL_GENERIC_ONOFF_SET_UNACK        0x8203
-#define MESH_OPCODE_MODEL_GENERIC_ONOFF_STATUS           0x8204
+#define MESH_OPCODE_GENERIC_ONOFF_GET                    0x8201
+#define MESH_OPCODE_GENERIC_ONOFF_SET                    0x8202
+#define MESH_OPCODE_GENERIC_ONOFF_SET_UNACK              0x8203
+#define MESH_OPCODE_GENERIC_ONOFF_STATUS                 0x8204
+#define MESH_OPCODE_GENERIC_LEVEL_GET                    0X8205
+#define MESH_OPCODE_GENERIC_LEVEL_SET                    0X8206
+#define MESH_OPCODE_GENERIC_LEVEL_SET_UNACK              0X8207
+#define MESH_OPCODE_GENERIC_LEVEL_STATUS                 0X8208
+#define MESH_OPCODE_GENERIC_DELTA_SET                    0X8209
+#define MESH_OPCODE_GENERIC_DELTA_SET_UNACK              0X820A
+#define MESH_OPCODE_GENERIC_MOVE_SET                     0X820B
+#define MESH_OPCODE_GENERIC_MOVE_SET_UNACK               0X820C
+#define MESH_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_GET       0X820D
+#define MESH_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_SET       0x820E
+#define MESH_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_SET_UNACK 0X820F
+#define MESH_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_STATUS    0X8210
+#define MESH_OPCODE_GENERIC_ONPOWERUP_GET                0X8211
+#define MESH_OPCODE_GENERIC_ONPOWERUP_STATUS             0X8212
+#define MESH_OPCODE_GENERIC_ONPOWERUP_SET                0X8213
+#define MESH_OPCODE_GENERIC_ONPOWERUP_SET_UNACK          0X8214
+#define MESH_OPCODE_GENERIC_POWER_LEVEL_GET              0X8215
+#define MESH_OPCODE_GENERIC_POWER_LEVEL_SET              0X8216
+#define MESH_OPCODE_GENERIC_POWER_LEVEL_SET_UNACK        0X8217
+#define MESH_OPCODE_GENERIC_POWER_LEVEL_STATUS           0X8218
+#define MESH_OPCODE_GENERIC_POWER_LAST_GET               0X8219
+#define MESH_OPCODE_GENERIC_POWER_LAST_STATUS            0x821A
+#define MESH_OPCODE_GENERIC_POWER_DEFAULT_GET            0X821B
+#define MESH_OPCODE_GENERIC_POWER_DEFAULT_STATUS         0X821C
+#define MESH_OPCODE_GENERIC_POWER_RANGE_GET              0X821D
+#define MESH_OPCODE_GENERIC_POWER_RANGE_STATUS           0X821E
+#define MESH_OPCODE_GENERIC_POWER_DEFAULT_SET            0X821F
+#define MESH_OPCODE_GENERIC_POWER_DEFAULT_SET_UNACK      0X8220
+#define MESH_OPCODE_GENERIC_POWER_RANGE_SET              0X8221
+#define MESH_OPCODE_GENERIC_POWER_RANGE_SET_UNACK        0X8222
+#define MESH_OPCODE_GENERIC_BATTERY_GET                  0X8223
+#define MESH_OPCODE_GENERIC_BATTERY_STATUS               0X8224
+#define MESH_OPCODE_GENERIC_LOCATION_GLOBAL_GET          0X8225
+#define MESH_OPCODE_GENERIC_LOCATION_GLOBAL_STATUS       0X40
+#define MESH_OPCODE_GENERIC_LOCATION_LOCAL_GET           0X8226
+#define MESH_OPCODE_GENERIC_LOCATION_LOCAL_STATUS        0X8227
+#define MESH_OPCODE_GENERIC_LOCATION_GLOBAL_SET          0X41
+#define MESH_OPCODE_GENERIC_LOCATION_GLOBAL_SET_UNACK    0X42
+#define MESH_OPCODE_GENERIC_LOCATION_LOCAL_SET           0X8228
+#define MESH_OPCODE_GENERIC_LOCATION_LOCAL_SET_UNACK     0X8229
+#define MESH_OPCODE_GENERIC_MANUFACTURER_PROPERTIES_GET  0X822A
+#define MESH_OPCODE_GENERIC_MANUFACTURER_PROPERTIES_STATUS 0X43
+#define MESH_OPCODE_GENERIC_MANUFACTURER_PROPERTY_GET    0X822B
+#define MESH_OPCODE_GENERIC_MANUFACTURER_PROPERTY_SET    0X44
+#define MESH_OPCODE_GENERIC_MANUFACTURER_PROPERTY_SET_UNACK 0X45
+#define MESH_OPCODE_GENERIC_MANUFACTURER_PROPERTY_STATUS 0X46
+#define MESH_OPCODE_GENERIC_ADMIN_PROPERTIES_GET         0X822C
+#define MESH_OPCODE_GENERIC_ADMIN_PROPERTIES_STATUS      0X47
+#define MESH_OPCODE_GENERIC_ADMIN_PROPERTY_GET           0X822D
+#define MESH_OPCODE_GENERIC_ADMIN_PROPERTY_SET           0X48
+#define MESH_OPCODE_GENERIC_ADMIN_PROPERTY_SET_UNACK     0X49
+#define MESH_OPCODE_GENERIC_ADMIN_PROPERTY_STATUS        0X4A
+#define MESH_OPCODE_GENERIC_USER_PROPERTIES_GET          0X822E
+#define MESH_OPCODE_GENERIC_USER_PROPERTIES_STATUS       0X4B
+#define MESH_OPCODE_GENERIC_USER_PROPERTY_GET            0X822F
+#define MESH_OPCODE_GENERIC_USER_PROPERTY_SET            0X4C
+#define MESH_OPCODE_GENERIC_USER_PROPERTY_SET_UNACK      0X4D
+#define MESH_OPCODE_GENERIC_USER_PROPERTY_STATUS         0X4E
+#define MESH_OPCODE_GENERIC_CLIENT_PROPERTIES_GET        0X4F
+#define MESH_OPCODE_GENERIC_CLIENT_PROPERTIES_STATUS     0X50
+
 /*TO-DO Add more model msg opcodes */
 
 uint32_t _bt_mesh_util_get_timestamp_secs(void);
index f341f0c..65bea08 100644 (file)
@@ -85,10 +85,69 @@ struct mesh_pending_request {
 };
 
 static struct mesh_msg_cmd commands[] = {
-       { MESH_OPCODE_MODEL_GENERIC_ONOFF_GET, MESH_OPCODE_MODEL_GENERIC_ONOFF_STATUS, "ModelGenericOnoffGet" },
-       { MESH_OPCODE_MODEL_GENERIC_ONOFF_SET, MESH_OPCODE_MODEL_GENERIC_ONOFF_STATUS, "ModelGenericOnoffSet" },
-       { MESH_OPCODE_MODEL_GENERIC_ONOFF_SET_UNACK, MESH_RESPONSE_NONE, "ModelGenericOnoffSetUnack" },
-       { MESH_OPCODE_MODEL_GENERIC_ONOFF_STATUS, MESH_RESPONSE_NONE, "ModelGenericOnoffStatus" }
+       { MESH_OPCODE_GENERIC_ONOFF_GET, MESH_OPCODE_GENERIC_ONOFF_STATUS, "GenericOnoffGet" },
+       { MESH_OPCODE_GENERIC_ONOFF_SET, MESH_OPCODE_GENERIC_ONOFF_STATUS, "GenericOnoffSet" },
+       { MESH_OPCODE_GENERIC_ONOFF_SET_UNACK, MESH_RESPONSE_NONE, "GenericOnoffSetUnack" },
+       { MESH_OPCODE_GENERIC_ONOFF_STATUS, MESH_RESPONSE_NONE, "GenericOnoffStatus" },
+       { MESH_OPCODE_GENERIC_LEVEL_GET, MESH_OPCODE_GENERIC_LEVEL_STATUS, "GenericLevelGet" },
+       { MESH_OPCODE_GENERIC_LEVEL_SET, MESH_OPCODE_GENERIC_LEVEL_STATUS, "GenericLevelSet" },
+       { MESH_OPCODE_GENERIC_LEVEL_SET_UNACK, MESH_RESPONSE_NONE, "GenericLevelSetUnack" },
+       { MESH_OPCODE_GENERIC_LEVEL_STATUS, MESH_RESPONSE_NONE, "GenericLevelStatus" },
+       { MESH_OPCODE_GENERIC_DELTA_SET, MESH_RESPONSE_NONE, "GenericDeltaGet" },
+       { MESH_OPCODE_GENERIC_DELTA_SET_UNACK, MESH_RESPONSE_NONE, "GenericDeltaSetUnack" },
+       { MESH_OPCODE_GENERIC_MOVE_SET, MESH_RESPONSE_NONE, "GenericMoveSet" },
+       { MESH_OPCODE_GENERIC_MOVE_SET_UNACK, MESH_RESPONSE_NONE, "GenericMoveSetUnack" },
+       { MESH_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_GET, MESH_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_STATUS, "GenericTransitionTimeGet" },
+       { MESH_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_SET, MESH_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_STATUS, "GenericTransitionTimeSet" },
+       { MESH_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_SET_UNACK, MESH_RESPONSE_NONE, "GenericTransitionTimeSetUnack" },
+       { MESH_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_STATUS, MESH_RESPONSE_NONE, "GenericTransitionTimeStatus" },
+       { MESH_OPCODE_GENERIC_ONPOWERUP_GET, MESH_OPCODE_GENERIC_ONPOWERUP_STATUS, "GenericOnPowerUpGet" },
+       { MESH_OPCODE_GENERIC_ONPOWERUP_STATUS, MESH_RESPONSE_NONE, "GenericOnPowerUpStatus" },
+       { MESH_OPCODE_GENERIC_ONPOWERUP_SET, MESH_OPCODE_GENERIC_ONPOWERUP_STATUS, "GenericOnPowerUpSet" },
+       { MESH_OPCODE_GENERIC_ONPOWERUP_SET_UNACK, MESH_RESPONSE_NONE, "GenericOnPowerUpSetUnack" },
+       { MESH_OPCODE_GENERIC_POWER_LEVEL_GET, MESH_OPCODE_GENERIC_POWER_LEVEL_STATUS, "GenericPowerLevelGet" },
+       { MESH_OPCODE_GENERIC_POWER_LEVEL_SET, MESH_OPCODE_GENERIC_POWER_LEVEL_STATUS, "GenericPowerLevelSet" },
+       { MESH_OPCODE_GENERIC_POWER_LEVEL_SET_UNACK, MESH_RESPONSE_NONE, "GenericPowerLevelSetUnack" },
+       { MESH_OPCODE_GENERIC_POWER_LEVEL_STATUS, MESH_RESPONSE_NONE, "GenericPowerLevelStatus" },
+       { MESH_OPCODE_GENERIC_POWER_LAST_GET, MESH_OPCODE_GENERIC_POWER_LAST_STATUS, "GenericPowerLastGet" },
+       { MESH_OPCODE_GENERIC_POWER_LAST_STATUS, MESH_RESPONSE_NONE, "GenericPowerLastStatus" },
+       { MESH_OPCODE_GENERIC_POWER_DEFAULT_GET, MESH_OPCODE_GENERIC_POWER_DEFAULT_STATUS, "GenericPowerDefaultGet" },
+       { MESH_OPCODE_GENERIC_POWER_DEFAULT_STATUS, MESH_RESPONSE_NONE, "GenericPowerDefaultStatus" },
+       { MESH_OPCODE_GENERIC_POWER_RANGE_GET, MESH_OPCODE_GENERIC_POWER_RANGE_STATUS, "GenericPowerRangeGet" },
+       { MESH_OPCODE_GENERIC_POWER_RANGE_STATUS, MESH_RESPONSE_NONE, "GenericPowerRangeStatus" },
+       { MESH_OPCODE_GENERIC_POWER_DEFAULT_SET, MESH_OPCODE_GENERIC_POWER_DEFAULT_STATUS, "GenericPowerDefaultSet" },
+       { MESH_OPCODE_GENERIC_POWER_DEFAULT_SET_UNACK, MESH_RESPONSE_NONE, "GenericPowerDefaultSetUnack" },
+       { MESH_OPCODE_GENERIC_POWER_RANGE_SET, MESH_OPCODE_GENERIC_POWER_RANGE_STATUS, "GenericPowerRangeSet" },
+       { MESH_OPCODE_GENERIC_POWER_RANGE_SET_UNACK, MESH_RESPONSE_NONE, "GenericPowerRangeSetUnack" },
+       { MESH_OPCODE_GENERIC_BATTERY_GET, MESH_OPCODE_GENERIC_BATTERY_STATUS, "GenericBatteryGet" },
+       { MESH_OPCODE_GENERIC_BATTERY_STATUS, MESH_RESPONSE_NONE, "GenericBatteryStatus" },
+       { MESH_OPCODE_GENERIC_LOCATION_GLOBAL_GET, MESH_OPCODE_GENERIC_LOCATION_GLOBAL_STATUS, "GenericLocationGlobalGet" },
+       { MESH_OPCODE_GENERIC_LOCATION_GLOBAL_STATUS, MESH_RESPONSE_NONE, "GenericLocationGlobalStatus" },
+       { MESH_OPCODE_GENERIC_LOCATION_LOCAL_GET, MESH_OPCODE_GENERIC_LOCATION_LOCAL_STATUS, "GenericLocationLocalGet" },
+       { MESH_OPCODE_GENERIC_LOCATION_LOCAL_STATUS, MESH_RESPONSE_NONE, "GenericLocationLocalStatus" },
+       { MESH_OPCODE_GENERIC_LOCATION_GLOBAL_SET, MESH_OPCODE_GENERIC_LOCATION_GLOBAL_STATUS, "GenericLocationGlobalSet" },
+       { MESH_OPCODE_GENERIC_LOCATION_GLOBAL_SET_UNACK, MESH_RESPONSE_NONE, "GenericLocationGlobalSetUnack" },
+       { MESH_OPCODE_GENERIC_LOCATION_LOCAL_SET, MESH_OPCODE_GENERIC_LOCATION_LOCAL_STATUS, "GenericLocationLocalSet" },
+       { MESH_OPCODE_GENERIC_LOCATION_LOCAL_SET_UNACK, MESH_RESPONSE_NONE, "GenericLocationLocalSetUnack" },
+       { MESH_OPCODE_GENERIC_MANUFACTURER_PROPERTIES_GET, MESH_OPCODE_GENERIC_MANUFACTURER_PROPERTIES_STATUS, "GenericManufacturerPropertiesGet" },
+       { MESH_OPCODE_GENERIC_MANUFACTURER_PROPERTIES_STATUS, MESH_RESPONSE_NONE, "GenericManufacturerPropertiesStatus" },
+       { MESH_OPCODE_GENERIC_MANUFACTURER_PROPERTY_GET, MESH_OPCODE_GENERIC_MANUFACTURER_PROPERTY_STATUS, "GenericManufacturerPropertyGet" },
+       { MESH_OPCODE_GENERIC_MANUFACTURER_PROPERTY_SET_UNACK, MESH_RESPONSE_NONE, "GenericManufacturerPropertySetUnack" },
+       { MESH_OPCODE_GENERIC_MANUFACTURER_PROPERTY_STATUS, MESH_RESPONSE_NONE, "GenericManufacturerPropertyStatus" },
+       { MESH_OPCODE_GENERIC_ADMIN_PROPERTIES_GET, MESH_OPCODE_GENERIC_ADMIN_PROPERTIES_STATUS, "GenericAdminPropertiesGet" },
+       { MESH_OPCODE_GENERIC_ADMIN_PROPERTIES_STATUS, MESH_RESPONSE_NONE, "GenericAdminPropertiesStatus" },
+       { MESH_OPCODE_GENERIC_ADMIN_PROPERTY_GET, MESH_OPCODE_GENERIC_ADMIN_PROPERTY_STATUS, "GenericAdminPropertyGet" },
+       { MESH_OPCODE_GENERIC_ADMIN_PROPERTY_SET, MESH_OPCODE_GENERIC_ADMIN_PROPERTY_STATUS, "GenericAdminPropertySet" },
+       { MESH_OPCODE_GENERIC_ADMIN_PROPERTY_SET_UNACK, MESH_RESPONSE_NONE, "GenericAdminPropertySetUnack" },
+       { MESH_OPCODE_GENERIC_ADMIN_PROPERTY_STATUS, MESH_RESPONSE_NONE, "GenericAdminPropertyStatus" },
+       { MESH_OPCODE_GENERIC_USER_PROPERTIES_GET, MESH_OPCODE_GENERIC_USER_PROPERTIES_STATUS, "GenericUserPropertiesGet" },
+       { MESH_OPCODE_GENERIC_USER_PROPERTIES_STATUS, MESH_RESPONSE_NONE, "GenericUserPropertiesStatus" },
+       { MESH_OPCODE_GENERIC_USER_PROPERTY_GET, MESH_OPCODE_GENERIC_USER_PROPERTY_STATUS, "GenericUserPropertyGet" },
+       { MESH_OPCODE_GENERIC_USER_PROPERTY_SET, MESH_OPCODE_GENERIC_USER_PROPERTY_STATUS, "GenericUserPropertySet" },
+       { MESH_OPCODE_GENERIC_USER_PROPERTY_SET_UNACK, MESH_RESPONSE_NONE, "GenericUserPropertySetUnack" },
+       { MESH_OPCODE_GENERIC_USER_PROPERTY_STATUS, MESH_RESPONSE_NONE, "GenericUserPropertyStatus" },
+       { MESH_OPCODE_GENERIC_CLIENT_PROPERTIES_GET, MESH_OPCODE_GENERIC_CLIENT_PROPERTIES_STATUS, "GenericClientPropertiesGet" },
+       { MESH_OPCODE_GENERIC_CLIENT_PROPERTIES_STATUS, MESH_RESPONSE_NONE, "GenericClientPropertiesStatus" },
 };
 
 
@@ -133,10 +192,40 @@ static void __bt_mesh_wait_response_timeout(
        BT_INFO("Mesh: No response for \"%s\" from %4.4x\n",
                        req->cmd->descriptor, req->addr);
 
-
        switch (req->cmd->opcode) {
-       case MESH_OPCODE_MODEL_GENERIC_ONOFF_GET:
-       case MESH_OPCODE_MODEL_GENERIC_ONOFF_SET:
+       case MESH_OPCODE_GENERIC_ONOFF_GET:
+       case MESH_OPCODE_GENERIC_ONOFF_SET:
+       case MESH_OPCODE_GENERIC_LEVEL_GET:
+       case MESH_OPCODE_GENERIC_LEVEL_SET:
+       case MESH_OPCODE_GENERIC_DELTA_SET:
+       case MESH_OPCODE_GENERIC_MOVE_SET:
+       case MESH_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_GET:
+       case MESH_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_SET:
+       case MESH_OPCODE_GENERIC_ONPOWERUP_GET:
+       case MESH_OPCODE_GENERIC_ONPOWERUP_STATUS:
+       case MESH_OPCODE_GENERIC_ONPOWERUP_SET:
+       case MESH_OPCODE_GENERIC_POWER_LEVEL_GET:
+       case MESH_OPCODE_GENERIC_POWER_LEVEL_SET:
+       case MESH_OPCODE_GENERIC_POWER_LAST_GET:
+       case MESH_OPCODE_GENERIC_POWER_DEFAULT_GET:
+       case MESH_OPCODE_GENERIC_POWER_RANGE_GET:
+       case MESH_OPCODE_GENERIC_POWER_DEFAULT_SET:
+       case MESH_OPCODE_GENERIC_POWER_RANGE_SET:
+       case MESH_OPCODE_GENERIC_BATTERY_GET:
+       case MESH_OPCODE_GENERIC_LOCATION_GLOBAL_GET:
+       case MESH_OPCODE_GENERIC_LOCATION_LOCAL_GET:
+       case MESH_OPCODE_GENERIC_LOCATION_GLOBAL_SET:
+       case MESH_OPCODE_GENERIC_LOCATION_LOCAL_SET:
+       case MESH_OPCODE_GENERIC_MANUFACTURER_PROPERTIES_GET:
+       case MESH_OPCODE_GENERIC_MANUFACTURER_PROPERTY_GET:
+       case MESH_OPCODE_GENERIC_MANUFACTURER_PROPERTY_SET:
+       case MESH_OPCODE_GENERIC_ADMIN_PROPERTIES_GET:
+       case MESH_OPCODE_GENERIC_ADMIN_PROPERTY_GET:
+       case MESH_OPCODE_GENERIC_ADMIN_PROPERTY_SET:
+       case MESH_OPCODE_GENERIC_USER_PROPERTIES_GET:
+       case MESH_OPCODE_GENERIC_USER_PROPERTY_GET:
+       case MESH_OPCODE_GENERIC_USER_PROPERTY_SET:
+       case MESH_OPCODE_GENERIC_CLIENT_PROPERTIES_GET:
                /* Send event with timeout */
                 __bt_mesh_handle_pending_msg_request_info(
                        BLUETOOTH_ERROR_TIMEOUT,