Logo
DSR GreenBOSS  1.1.0
Functions
GPD Сommissioning API

Functions

zb_ret_t gboss_unidir_commissioning_step (const gboss_device_config_t *device_config, const gboss_tx_cfg_t *tx_cfg)
 Does one step of unidirectional commissioning, or decommissions if a device was marked as "commissioned". More...
 
zb_ret_t gboss_unidir_decommission (const gboss_device_config_t *device_config, const gboss_tx_cfg_t *tx_cfg)
 Decommissions the device - unidirectional. More...
 
void gboss_bidir_operational_init (const gboss_device_config_t *device_config, const gboss_tx_cfg_t *tx_cfg)
 Initializes bidirectional operational mode with an application parameters. More...
 
zb_ret_t gboss_bidir_commissioning_step (const gboss_device_config_t *device_config, const gboss_tx_cfg_t *tx_cfg)
 Does one step of bidirectional commissioning. More...
 
zb_bool_t gboss_bidir_is_commissionned (void)
 Checks if this bidirectional GPP is commissioned. More...
 
zb_ret_t gboss_bidir_decommission (const gboss_device_config_t *device_config, const gboss_tx_cfg_t *tx_cfg)
 Decommissions the device - bidirectional. More...
 
void gboss_bidir_battery_mode (void)
 Configures the device as a battery-powered bidirectional commissioning GPD. More...
 
void gboss_bidir_batteryless_mode (void)
 Configures the device as a battery-less bidirectional commissioning GPD. More...
 

Detailed Description

Function Documentation

§ gboss_unidir_commissioning_step()

zb_ret_t gboss_unidir_commissioning_step ( const gboss_device_config_t device_config,
const gboss_tx_cfg_t tx_cfg 
)

Does one step of unidirectional commissioning, or decommissions if a device was marked as "commissioned".

GreenBOSS supposes that unidirectional commissioning is used at battery-less devices, so it's likely that the GPD doesn't have enough power to perform anything after that function return.

With unidirectional commissioning GreenBOSS marks device as "commissioned" at transmitting first application packet (GPD command), like GBOSS_CMD_ON(), after gboss_unidir_commissioning_step() was called 1 or more times.

Parameters
device_configGPD configuration data structure
tx_cfgConfiguration of transmission - channels and number of repetitions to be used
Returns
zb_ret_t RET_OK if the commissioning was successfully requested, RET_ERROR otherwise
switch (button_id)
{
case BUTTON_COMMISSIONING:
/* Button 0 pressed - commissioning */
gboss_unidir_commissioning_step(&g_device_config, &g_tx_cfg);
break;

References zgpd_get_seq_number().

§ gboss_unidir_decommission()

zb_ret_t gboss_unidir_decommission ( const gboss_device_config_t device_config,
const gboss_tx_cfg_t tx_cfg 
)

Decommissions the device - unidirectional.

Parameters
device_configGPD configuration data structure
tx_cfgConfiguration of transmission - channels and number of repetitions to be used
Returns
zb_ret_t zb_ret_t RET_OK if the decommissioning was successful, RET_ERROR otherwise

References TRACE_MSG.

§ gboss_bidir_operational_init()

void gboss_bidir_operational_init ( const gboss_device_config_t device_config,
const gboss_tx_cfg_t tx_cfg 
)

Initializes bidirectional operational mode with an application parameters.

Parameters
device_configGPD configuration data structure
tx_cfgConfiguration of transmission - channels and number of repetitions to be used
gboss_bidir_operational_init(&g_device_config, &g_tx_cfg);

References TRACE_MSG.

§ gboss_bidir_commissioning_step()

zb_ret_t gboss_bidir_commissioning_step ( const gboss_device_config_t device_config,
const gboss_tx_cfg_t tx_cfg 
)

Does one step of bidirectional commissioning.

Repeats commissioning steps until gboss_bidir_is_commissionned() returns true.

Parameters
device_configGPD configuration data structure
tx_cfgConfiguration of transmission - channels and number of repetitions to be used
Returns
zb_ret_t RET_OK if the commissioning was successfully requested, RET_ERROR otherwise
/* In contrast to batteryless bidir commissioning, here we can do multiple
* iterations until commissioning complete. */
{
gboss_bidir_commissioning_step(&g_device_config, &g_tx_cfg);
/* If can't commission, do not loop there forever */
comm_steps++;
if (comm_steps > COMM_STEPS_LIMIT)
{
break;
}
}
comm_steps = 0;
/* Inform platform layer about buttons number */
/* Get mask of buttons pressed at power ON time - if multiple are pressed
simultaneously, only the higher index is considered */
button_mask = gboss_test_get_button_mask();
button_id = 31 - MAGIC_CLZ(button_mask);
switch (button_id)
{
case BUTTON_COMMISSIONING:
/* Button 0 pressed - commissioning */
{
/* In bidir batteryless we can do only one commissioning iteration a time, then die */
gboss_bidir_commissioning_step(&g_device_config, &g_tx_cfg);
}
break;

References TRACE_MSG.

§ gboss_bidir_is_commissionned()

zb_bool_t gboss_bidir_is_commissionned ( void  )

Checks if this bidirectional GPP is commissioned.

Returns
True if commissioned, else false
/* In contrast to batteryless bidir commissioning, here we can do multiple
* iterations until commissioning complete. */
{
gboss_bidir_commissioning_step(&g_device_config, &g_tx_cfg);
/* If can't commission, do not loop there forever */
comm_steps++;
if (comm_steps > COMM_STEPS_LIMIT)
{
break;
}
}
comm_steps = 0;
/* Inform platform layer about buttons number */
/* Get mask of buttons pressed at power ON time - if multiple are pressed
simultaneously, only the higher index is considered */
button_mask = gboss_test_get_button_mask();
button_id = 31 - MAGIC_CLZ(button_mask);
switch (button_id)
{
case BUTTON_COMMISSIONING:
/* Button 0 pressed - commissioning */
{
/* In bidir batteryless we can do only one commissioning iteration a time, then die */
gboss_bidir_commissioning_step(&g_device_config, &g_tx_cfg);
}
break;

§ gboss_bidir_decommission()

zb_ret_t gboss_bidir_decommission ( const gboss_device_config_t device_config,
const gboss_tx_cfg_t tx_cfg 
)

Decommissions the device - bidirectional.

Parameters
device_configGPD configuration data structure
tx_cfgConfiguration of transmission - channels and number of repetitions to be used
Returns
zb_ret_t zb_ret_t RET_OK if the decommissioning was successful, RET_ERROR otherwise

References TRACE_MSG.

§ gboss_bidir_battery_mode()

void gboss_bidir_battery_mode ( void  )

Configures the device as a battery-powered bidirectional commissioning GPD.

gboss_bidir_battery_mode() SHALL be called at the application initialization before gboss_bidir_is_commissionned().

/* In contrast to batteryless bidir commissioning, here we can do multiple
* iterations until commissioning complete. */
{
gboss_bidir_commissioning_step(&g_device_config, &g_tx_cfg);
/* If can't commission, do not loop there forever */
comm_steps++;
if (comm_steps > COMM_STEPS_LIMIT)
{
break;
}
}
comm_steps = 0;

§ gboss_bidir_batteryless_mode()

void gboss_bidir_batteryless_mode ( void  )

Configures the device as a battery-less bidirectional commissioning GPD.

gboss_bidir_batteryless_mode()SHALL be called at the application initialization before gboss_bidir_is_commissionned().

/* In contrast to batteryless bidir commissioning, here we can do multiple
* iterations until commissioning complete. */
{
gboss_bidir_commissioning_step(&g_device_config, &g_tx_cfg);
/* If can't commission, do not loop there forever */
comm_steps++;
if (comm_steps > COMM_STEPS_LIMIT)
{
break;
}
}
comm_steps = 0;

References TRACE_MSG.