您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ uint16_encode函数代码示例

51自学网 2021-06-03 09:07:18
  C++
这篇教程C++ uint16_encode函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中uint16_encode函数的典型用法代码示例。如果您正苦于以下问题:C++ uint16_encode函数的具体用法?C++ uint16_encode怎么用?C++ uint16_encode使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了uint16_encode函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: gls_meas_encode

/**@brief Function for encoding a Glucose measurement. * * @param[in]  p_meas            Measurement to be encoded. * @param[out] p_encoded_buffer  Pointer to buffer where the encoded measurement is to be stored. * * @return Size of encoded measurement. */static uint8_t gls_meas_encode(const ble_gls_meas_t * p_meas, uint8_t * p_encoded_buffer){    uint8_t len = 0;    p_encoded_buffer[len++] = p_meas->flags;    len += uint16_encode(p_meas->sequence_number, &p_encoded_buffer[len]);    len += ble_date_time_encode(&p_meas->base_time, &p_encoded_buffer[len]);    if (p_meas->flags & BLE_GLS_MEAS_FLAG_TIME_OFFSET)    {        len += uint16_encode(p_meas->time_offset, &p_encoded_buffer[len]);    }    if (p_meas->flags & BLE_GLS_MEAS_FLAG_CONC_TYPE_LOC)    {        uint16_t encoded_concentration;        encoded_concentration = ((p_meas->glucose_concentration.exponent << 12) & 0xF000) |                                ((p_meas->glucose_concentration.mantissa <<  0) & 0x0FFF);        p_encoded_buffer[len++] = (uint8_t)(encoded_concentration);        p_encoded_buffer[len++] = (uint8_t)(encoded_concentration >> 8);        p_encoded_buffer[len++] = (p_meas->sample_location << 4) | (p_meas->type & 0x0F);    }
开发者ID:451506709,项目名称:automated_machine,代码行数:32,


示例2: ble_gattc_primary_services_discover_req_enc

uint32_t ble_gattc_primary_services_discover_req_enc(uint16_t                 conn_handle,                                                     uint16_t                 start_handle,                                                     ble_uuid_t const * const p_srvc_uuid,                                                     uint8_t * const          p_buf,                                                     uint32_t *               p_buf_len){    uint32_t index = 0;    SER_ASSERT_NOT_NULL(p_buf);    SER_ASSERT_NOT_NULL(p_buf_len);    SER_ASSERT_LENGTH_LEQ(index + 5, *p_buf_len);    p_buf[index++] = SD_BLE_GATTC_PRIMARY_SERVICES_DISCOVER;    index         += uint16_encode(conn_handle, &p_buf[index]);    index         += uint16_encode(start_handle, &p_buf[index]);    SER_ASSERT_LENGTH_LEQ(index + 1, *p_buf_len);    p_buf[index++] = (p_srvc_uuid != NULL) ? SER_FIELD_PRESENT : SER_FIELD_NOT_PRESENT;    if (p_srvc_uuid != NULL)    {        SER_ASSERT_LENGTH_LEQ(index + 3, *p_buf_len);        index         += uint16_encode(p_srvc_uuid->uuid, &p_buf[index]);        p_buf[index++] = p_srvc_uuid->type;    }    *p_buf_len = index;    return NRF_SUCCESS;}
开发者ID:451506709,项目名称:automated_machine,代码行数:33,


示例3: count16_cond_data16_enc

uint32_t count16_cond_data16_enc(uint16_t const * const p_data,                                 uint16_t const         count,                                 uint8_t * const        p_buf,                                 uint32_t               buf_len,                                 uint32_t * const       p_index){    uint32_t i = 0;    SER_ASSERT_LENGTH_LEQ(3, ((int32_t)buf_len - *p_index));    *p_index += uint16_encode(count, &p_buf[*p_index]);    if (p_data)    {        SER_ASSERT_LENGTH_LEQ((int32_t)(2 * count + 1), ((int32_t)buf_len - *p_index));        p_buf[*p_index] = SER_FIELD_PRESENT;        *p_index       += 1;        //memcpy may fail in case of Endianness difference between application and connectivity processor        for (i = 0; i < count; i++)        {            *p_index += uint16_encode(p_data[i], &p_buf[*p_index]);        }    }    else    {        SER_ASSERT_LENGTH_LEQ((1), ((int32_t)buf_len - *p_index));        p_buf[*p_index] = SER_FIELD_NOT_PRESENT;        *p_index       += 1;    }    return NRF_SUCCESS;}
开发者ID:rm2k3ru6ru6,项目名称:nRF51_SDK_8.1.0,代码行数:32,


示例4: ble_rpc_evt_gatts_encode

uint32_t ble_rpc_evt_gatts_encode(ble_evt_t * p_ble_evt, uint8_t * p_buffer){    uint32_t index    = 0;    // Encode packet type.    p_buffer[index++] = BLE_RPC_PKT_EVT;    // Encode header.    index += uint16_encode(p_ble_evt->header.evt_id,  &p_buffer[index]);    // Encode common part of the event.    index += uint16_encode(p_ble_evt->evt.gatts_evt.conn_handle, &p_buffer[index]);    // Encode events.    switch (p_ble_evt->header.evt_id)    {        case BLE_GATTS_EVT_WRITE:            index += gatts_write_evt_encode(p_ble_evt, &p_buffer[index]);            break;        case BLE_GATTS_EVT_SYS_ATTR_MISSING:            index += gatts_sys_attr_missing_encode(p_ble_evt, &p_buffer[index]);            break;        default:            // No implementation needed.            break;    }    return index;}
开发者ID:GhostMouse7369,项目名称:work,代码行数:30,


示例5: ble_version_get_rsp_enc

uint32_t ble_version_get_rsp_enc(uint32_t                    return_code,                                 uint8_t * const             p_buf,                                 uint32_t * const            p_buf_len,                                 ble_version_t const * const p_version){    SER_ASSERT_NOT_NULL(p_buf);    SER_ASSERT_NOT_NULL(p_buf_len);    uint32_t total_len = *p_buf_len;    uint32_t err_code = ser_ble_cmd_rsp_status_code_enc(SD_BLE_VERSION_GET, return_code,                                                        p_buf, p_buf_len);    if (err_code != NRF_SUCCESS)    {        return err_code;    }    if (return_code != NRF_SUCCESS)    {        return NRF_SUCCESS;    }    SER_ASSERT_NOT_NULL(p_version);    uint32_t index = *p_buf_len;    SER_ASSERT_LENGTH_LEQ(index + 5, total_len);    p_buf[index++] = p_version->version_number;    index         += uint16_encode(p_version->company_id, &p_buf[index]);    index         += uint16_encode(p_version->subversion_number, &p_buf[index]);    *p_buf_len = index;    return NRF_SUCCESS;}
开发者ID:451506709,项目名称:automated_machine,代码行数:35,


示例6: conn_int_encode

static uint32_t conn_int_encode(const ble_advdata_conn_int_t * p_conn_int,                                uint8_t *                      p_encoded_data,                                uint8_t *                      p_len){    uint32_t err_code;    // Check for buffer overflow    if ((*p_len) + 2 + 2 * sizeof(uint16_le_t) > BLE_GAP_ADV_MAX_SIZE)    {        return NRF_ERROR_DATA_SIZE;    }        // Check parameters    err_code = conn_int_check(p_conn_int);    if (err_code != NRF_SUCCESS)    {        return err_code;    }        // Encode Length and AD Type    p_encoded_data[(*p_len)++] = 1 + 2 * sizeof(uint16_le_t);    p_encoded_data[(*p_len)++] = BLE_GAP_AD_TYPE_SLAVE_CONNECTION_INTERVAL_RANGE;        // Encode Minimum and Maximum Connection Intervals    (*p_len) += uint16_encode(p_conn_int->min_conn_interval, &p_encoded_data[*p_len]);    (*p_len) += uint16_encode(p_conn_int->max_conn_interval, &p_encoded_data[*p_len]);        return NRF_SUCCESS;}
开发者ID:Abdellbar,项目名称:nrf51,代码行数:29,


示例7: sd_ble_gap_ppcp_set

uint32_t sd_ble_gap_ppcp_set(ble_gap_conn_params_t const * const p_conn_params){    uint32_t index = 0;    g_cmd_buffer[index++] = BLE_RPC_PKT_CMD;    g_cmd_buffer[index++] = SD_BLE_GAP_PPCP_SET;    if (p_conn_params != NULL)    {        g_cmd_buffer[index++] = RPC_BLE_FIELD_PRESENT;        index += uint16_encode(p_conn_params->min_conn_interval, &g_cmd_buffer[index]);        index += uint16_encode(p_conn_params->max_conn_interval, &g_cmd_buffer[index]);        index += uint16_encode(p_conn_params->slave_latency    , &g_cmd_buffer[index]);        index += uint16_encode(p_conn_params->conn_sup_timeout, &g_cmd_buffer[index]);    }    else    {        g_cmd_buffer[index++] = RPC_BLE_FIELD_NOT_PRESENT;    }    uint32_t err_code = hci_transport_pkt_write(g_cmd_buffer, index);    if (err_code != NRF_SUCCESS)    {        return err_code;    }    err_code = ble_rpc_cmd_resp_wait(SD_BLE_GAP_PPCP_SET);    UNUSED_VARIABLE(hci_transport_rx_pkt_consume(g_cmd_response_buf));    return err_code;}
开发者ID:Aidan-zhang,项目名称:nRF51SDK,代码行数:31,


示例8: csc_measurement_encode

/**@brief Function for encoding a CSCS Measurement. * * @param[in]   p_cscs              Cycling Speed and Cadence Service structure. * @param[in]   p_csc_measurement   Measurement to be encoded. * @param[out]  p_encoded_buffer    Buffer where the encoded data will be written. * * @return      Size of encoded data. */static uint8_t csc_measurement_encode(ble_cscs_t *       p_cscs,                                      ble_cscs_meas_t *  p_csc_measurement,                                      uint8_t *          p_encoded_buffer){    uint8_t flags = 0;    uint8_t len   = 1;    // Cumulative Wheel Revolutions and Last Wheel Event Time Fields    if (p_cscs->feature & BLE_CSCS_FEATURE_WHEEL_REV_BIT)    {        if (p_csc_measurement->is_wheel_rev_data_present)        {            flags |= CSC_MEAS_FLAG_MASK_WHEEL_REV_DATA_PRESENT;            len += uint32_encode(p_csc_measurement->cumulative_wheel_revs, &p_encoded_buffer[len]);            len += uint16_encode(p_csc_measurement->last_wheel_event_time, &p_encoded_buffer[len]);        }    }        // Cumulative Crank Revolutions and Last Crank Event Time Fields    if (p_cscs->feature & BLE_CSCS_FEATURE_CRANK_REV_BIT)    {        if (p_csc_measurement->is_crank_rev_data_present)        {            flags |= CSC_MEAS_FLAG_MASK_CRANK_REV_DATA_PRESENT;            len += uint16_encode(p_csc_measurement->cumulative_crank_revs, &p_encoded_buffer[len]);            len += uint16_encode(p_csc_measurement->last_crank_event_time, &p_encoded_buffer[len]);        }    }        // Flags Field    p_encoded_buffer[0] = flags;        return len;}
开发者ID:Aidan-zhang,项目名称:nRF51SDK,代码行数:42,


示例9: ble_gap_authenticate_req_enc

uint32_t ble_gap_authenticate_req_enc(uint16_t                           conn_handle,                                      ble_gap_sec_params_t const * const p_sec_params,                                      uint8_t * const                    p_buf,                                      uint32_t * const                   p_buf_len){    uint32_t index = 0;    SER_ASSERT_NOT_NULL(p_buf);    SER_ASSERT_NOT_NULL(p_buf_len);    SER_ASSERT_LENGTH_LEQ(1 + 2 + 1, *p_buf_len);    p_buf[index++] = SD_BLE_GAP_AUTHENTICATE;    index         += uint16_encode(conn_handle, &p_buf[index]);    p_buf[index++] = (p_sec_params != NULL) ? SER_FIELD_PRESENT : SER_FIELD_NOT_PRESENT;    if (p_sec_params != NULL)    {        SER_ASSERT_LENGTH_LEQ(index + 2 + 1 + 1 + 1, *p_buf_len);        index         += uint16_encode(p_sec_params->timeout, &p_buf[index]);        p_buf[index++] = ((p_sec_params->oob << 5) |                          (p_sec_params->io_caps << 2) |                          (p_sec_params->mitm << 1) |                          (p_sec_params->bond << 0));        p_buf[index++] = p_sec_params->min_key_size;        p_buf[index++] = p_sec_params->max_key_size;    }    *p_buf_len = index;    return NRF_SUCCESS;}
开发者ID:451506709,项目名称:automated_machine,代码行数:34,


示例10: conn_int_encode

static uint32_t conn_int_encode(const ble_advdata_conn_int_t * p_conn_int,                                uint8_t                      * p_encoded_data,                                uint16_t                     * p_offset,                                uint16_t                       max_size){    uint32_t err_code;    // Check for buffer overflow.    if (((*p_offset) + AD_TYPE_CONN_INT_SIZE) > max_size)    {        return NRF_ERROR_DATA_SIZE;    }    // Check parameters.    err_code = conn_int_check(p_conn_int);    if (err_code != NRF_SUCCESS)    {        return err_code;    }    // Encode Length and AD Type.    p_encoded_data[*p_offset]  = (uint8_t)(ADV_AD_TYPE_FIELD_SIZE + AD_TYPE_CONN_INT_DATA_SIZE);    *p_offset                 += ADV_LENGTH_FIELD_SIZE;    p_encoded_data[*p_offset]  = BLE_GAP_AD_TYPE_SLAVE_CONNECTION_INTERVAL_RANGE;    *p_offset                 += ADV_AD_TYPE_FIELD_SIZE;    // Encode Minimum and Maximum Connection Intervals.    *p_offset += uint16_encode(p_conn_int->min_conn_interval, &p_encoded_data[*p_offset]);    *p_offset += uint16_encode(p_conn_int->max_conn_interval, &p_encoded_data[*p_offset]);    return NRF_SUCCESS;}
开发者ID:RepRapThailand,项目名称:Espruino,代码行数:32,


示例11: encode_adv_packet

static uint8_t encode_adv_packet(uint8_t * p_data){    uint8_t offset    = 0;    // Adding advertising data: Flags    p_data[offset++] =  ADV_TYPE_LEN;    p_data[offset++] =  BLE_GAP_AD_TYPE_FLAGS;    p_data[offset++] =  BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE;    // Adding advertising data: Manufacturer specific data.    p_data[offset++] =  ADV_DATA_MANUF_DATA_LEN + 1;                              p_data[offset++] =  BLE_GAP_AD_TYPE_MANUFACTURER_SPECIFIC_DATA;    offset           += uint16_encode(m_beacon.manuf_id, &p_data[offset]);    p_data[offset++] =  APP_DEVICE_TYPE;    // Adding manufacturer specific data (beacon data).    p_data[offset++] = ADV_DATA_BEACON_DATA_LEN;     memcpy(&p_data[offset], &m_beacon.uuid, sizeof(ble_uuid128_t));    offset += sizeof(ble_uuid128_t);    offset += uint16_encode(m_beacon.major, &p_data[offset]);    offset += uint16_encode(m_beacon.minor, &p_data[offset]);    p_data[offset++] = m_beacon.rssi;       return offset;}
开发者ID:BlockWorksCo,项目名称:Playground,代码行数:25,


示例12: ble_gattc_characteristics_discover_req_enc

uint32_t ble_gattc_characteristics_discover_req_enc(    uint16_t                               conn_handle,    ble_gattc_handle_range_t const * const p_handle_range,    uint8_t * const                        p_buf,    uint32_t *                             p_buf_len){    uint32_t index = 0;    SER_ASSERT_NOT_NULL(p_buf);    SER_ASSERT_NOT_NULL(p_buf_len);    SER_ASSERT_LENGTH_LEQ(index + 1 + 2, *p_buf_len);    p_buf[index++] = SD_BLE_GATTC_CHARACTERISTICS_DISCOVER;    index         += uint16_encode(conn_handle, &p_buf[index]);    SER_ASSERT_LENGTH_LEQ(index + 1, *p_buf_len);    p_buf[index++] = (p_handle_range != NULL) ? SER_FIELD_PRESENT : SER_FIELD_NOT_PRESENT;    if (p_handle_range != NULL)    {        SER_ASSERT_LENGTH_LEQ(index + 2 + 2, *p_buf_len);        index += uint16_encode(p_handle_range->start_handle, &p_buf[index]);        index += uint16_encode(p_handle_range->end_handle, &p_buf[index]);    }    *p_buf_len = index;    return NRF_SUCCESS;}
开发者ID:AlpX,项目名称:pc-ble-driver-js,代码行数:31,


示例13: ble_gatts_hvx_req_enc

uint32_t ble_gatts_hvx_req_enc(uint16_t                             conn_handle,                               ble_gatts_hvx_params_t const * const p_hvx_params,                               uint8_t * const                      p_buf,                               uint32_t * const                     p_buf_len){    uint32_t index = 0;    SER_ASSERT_NOT_NULL(p_buf);    SER_ASSERT_NOT_NULL(p_buf_len);    SER_ASSERT(p_hvx_params == NULL ||               !(p_hvx_params->p_len == NULL && p_hvx_params->p_data != NULL), NRF_ERROR_NULL);    SER_ASSERT_LENGTH_LEQ(index + 1 + 2 + 1 + 1, *p_buf_len);    p_buf[index++] = SD_BLE_GATTS_HVX;    index         += uint16_encode(conn_handle, &p_buf[index]);    p_buf[index++] = (p_hvx_params != NULL) ? SER_FIELD_PRESENT : SER_FIELD_NOT_PRESENT;    if (p_hvx_params != NULL)    {        SER_ASSERT_LENGTH_LEQ(index + 2 + 1 + 2 + 2, *p_buf_len);        index         += uint16_encode(p_hvx_params->handle, &p_buf[index]);        p_buf[index++] = p_hvx_params->type;        index         += uint16_encode(p_hvx_params->offset, &p_buf[index]);        if (p_hvx_params->p_len != NULL)        {            SER_ASSERT_LENGTH_LEQ(index + 1 + 2 + 1, *p_buf_len);            SER_ERROR_CHECK(*p_hvx_params->p_len <= BLE_GATTS_VAR_ATTR_LEN_MAX,                            NRF_ERROR_INVALID_PARAM);            p_buf[index++] = SER_FIELD_PRESENT;            index         += uint16_encode(*(p_hvx_params->p_len), &p_buf[index]);            if (p_hvx_params->p_data != NULL)            {                SER_ASSERT_LENGTH_LEQ(index + 1 + *(p_hvx_params->p_len), *p_buf_len);                p_buf[index++] = SER_FIELD_PRESENT;                memcpy(&(p_buf[index]), p_hvx_params->p_data, *(p_hvx_params->p_len));                index += *(p_hvx_params->p_len);            }            else            {                p_buf[index++] = SER_FIELD_NOT_PRESENT;            }        }        else        {            p_buf[index++] = SER_FIELD_NOT_PRESENT;            p_buf[index++] = SER_FIELD_NOT_PRESENT;        }    }    *p_buf_len = index;    return NRF_SUCCESS;}
开发者ID:451506709,项目名称:automated_machine,代码行数:59,


示例14: iss_measurement_encode

/**@brief Function for encoding a ITU Sensor Service Measurement. * * @param[in]   p_iss			         ITU Sensor Service structure. * @param[in]   measurement        Measurement to be encoded. * @param[out]  p_encoded_buffer   Buffer where the encoded data will be written. * * @return      Size of encoded data. */static uint8_t iss_measurement_encode(iss_t * p_iss, int32_t * measurement,uint8_t * p_encoded_buffer,uint32_t * value){    uint8_t flags = 0;    uint8_t len   = 1;			//Value always present		*value = (((p_iss->IEEE_exponent << 24) & 0xFF000000) | (*measurement & 0x00FFFFFF));		len += uint32_encode(*value, &p_encoded_buffer[len]);				//Remember, to increament the seq nr so we have a continuous flow		++(p_iss->curr_seq_nr);			// Space + Time value    if (p_iss->space_time_present)    {        flags |= ITS_MEAS_FLAG_SPACE_TIME_BIT;				p_encoded_buffer[len++]  = p_iss->coord;        len   += uint16_encode(p_iss->curr_seq_nr, &p_encoded_buffer[len]);    }	    // Unit value    if (p_iss->unit_present)    {        flags |= ITS_MEAS_FLAG_UNIT_BIT;        len   += uint16_encode(p_iss->unit, &p_encoded_buffer[len]);		}				// Type value    if (p_iss->type_make_present)    {        flags |= ITS_MEAS_FLAG_TYPE_MAKE_BIT;        p_encoded_buffer[len++]  = p_iss->type;				p_encoded_buffer[len++]  = p_iss->make;		}				// ID field    if (p_iss->ID_present)    {        flags |= ITS_MEAS_FLAG_ID_BIT;        len   += uint16_encode(p_iss->ID, &p_encoded_buffer[len]);    }				// Sampling Frequency field    if (p_iss->samp_freq_present)    {        flags |= ITS_MEAS_FLAG_SAMP_FREQ_BIT;        len   += uint32_encode(p_iss->samp_freq_in_m_sec, &p_encoded_buffer[len]);    }    // Flags field    p_encoded_buffer[0] = flags;    return len;}
开发者ID:EnergyFutures,项目名称:ITU_BLE_Measurement_Service,代码行数:62,


示例15: its_conf_encode

/**@brief Function for encoding a ITU Sensor Service Configuration. * * @param[in]   p_iss			         ITU Sensor Service structure. * @param[out]  p_encoded_buffer   Buffer where the encoded data will be written. * * @return      Size of encoded data. */static uint8_t its_conf_encode(iss_t * p_iss, uint8_t * p_encoded_buffer){		uint8_t pres_flags = 0;    uint8_t len   = 1;			/*    // Sequence number field    if (p_iss->space_time_present)    {        pres_flags |= ITS_MEAS_FLAG_SPACE_TIME_BIT;    }			// Unit value    if (p_iss->unit_present)    {        pres_flags |= ITS_MEAS_FLAG_UNIT_BIT;		}				// Type value    if (p_iss->type_make_present)    {        pres_flags |= ITS_MEAS_FLAG_TYPE_MAKE_BIT;		}				// ID field    if (p_iss->ID_present)    {        pres_flags |= ITS_MEAS_FLAG_ID_BIT;    }				// Sampling Frequency field    if (p_iss->samp_freq_present)    {        pres_flags |= ITS_MEAS_FLAG_SAMP_FREQ_BIT;    }*/				pres_flags |= ITS_MEAS_FLAG_SPACE_TIME_BIT;		pres_flags |= ITS_MEAS_FLAG_UNIT_BIT;		pres_flags |= ITS_MEAS_FLAG_TYPE_MAKE_BIT;		pres_flags |= ITS_MEAS_FLAG_ID_BIT;		pres_flags |= ITS_MEAS_FLAG_SAMP_FREQ_BIT;    // Presentation Flag field    p_encoded_buffer[0] = pres_flags;				p_encoded_buffer[len++]  = p_iss->coord;		len += uint16_encode(p_iss->curr_seq_nr, &p_encoded_buffer[len]);		len += uint16_encode(p_iss->unit, &p_encoded_buffer[len]);		p_encoded_buffer[len++]  = p_iss->type;		p_encoded_buffer[len++]  = p_iss->make;		len += uint16_encode(p_iss->ID, &p_encoded_buffer[len]);		len += uint32_encode(p_iss->samp_freq_in_m_sec, &p_encoded_buffer[len]);    return len;}
开发者ID:EnergyFutures,项目名称:ITU_BLE_Measurement_Service,代码行数:61,


示例16: cgms_meas_encode

/**@brief Function for encoding a Glucose measurement. * * @param[in]  p_meas           Measurement to be encoded. * @param[out] p_encoded_buffer Pointer to buffer where the encoded measurement is to be stored. * * @return Size of encoded measurement. */static uint8_t cgms_meas_encode(nrf_ble_cgms_t            * p_cgms,                                const nrf_ble_cgms_meas_t * p_meas,                                uint8_t                   * p_encoded_buffer){    uint8_t len = 2;    uint8_t flags = p_meas->flags;    len += uint16_encode(p_meas->glucose_concentration,                         &p_encoded_buffer[len]);    len += uint16_encode(p_meas->time_offset,                         &p_encoded_buffer[len]);    if (p_meas->sensor_status_annunciation.warning != 0)    {        p_encoded_buffer[len++] = p_meas->sensor_status_annunciation.warning;        flags                  |= NRF_BLE_CGMS_STATUS_FLAGS_WARNING_OCT_PRESENT;    }    if (p_meas->sensor_status_annunciation.calib_temp != 0)    {        p_encoded_buffer[len++] = p_meas->sensor_status_annunciation.calib_temp;        flags                  |= NRF_BLE_CGMS_STATUS_FLAGS_CALTEMP_OCT_PRESENT;    }    if (p_meas->sensor_status_annunciation.status != 0)    {        p_encoded_buffer[len++] = p_meas->sensor_status_annunciation.status;        flags                  |= NRF_BLE_CGMS_STATUS_FLAGS_STATUS_OCT_PRESENT;    }    // Trend field    if (p_cgms->feature.feature & NRF_BLE_CGMS_FEAT_CGM_TREND_INFORMATION_SUPPORTED)    {        if (flags & NRF_BLE_CGMS_FLAG_TREND_INFO_PRESENT)        {            len += uint16_encode(p_meas->trend, &p_encoded_buffer[len]);        }    }    // Quality field    if (p_cgms->feature.feature & NRF_BLE_CGMS_FEAT_CGM_QUALITY_SUPPORTED)    {        if (flags & NRF_BLE_CGMS_FLAGS_QUALITY_PRESENT)        {            len += uint16_encode(p_meas->quality, &p_encoded_buffer[len]);        }    }    p_encoded_buffer[1] = flags;    p_encoded_buffer[0] = len;    return len;}
开发者ID:lyncxy119,项目名称:Sentry,代码行数:60,


示例17: hrm_encode

/**@brief Function for encoding a Heart Rate Measurement. * * @param[in]   p_hrs              Heart Rate Service structure. * @param[in]   heart_rate         Measurement to be encoded. * @param[out]  p_encoded_buffer   Buffer where the encoded data will be written. * * @return      Size of encoded data. */static uint8_t hrm_encode(ble_hrs_t * p_hrs, uint16_t heart_rate, uint8_t * p_encoded_buffer){    uint8_t flags = 0;    uint8_t len   = 1;    int     i;    // Set sensor contact related flags    if (p_hrs->is_sensor_contact_supported)    {        flags |= HRM_FLAG_MASK_SENSOR_CONTACT_SUPPORTED;    }    if (p_hrs->is_sensor_contact_detected)    {        flags |= HRM_FLAG_MASK_SENSOR_CONTACT_DETECTED;    }    // Encode heart rate measurement    if (heart_rate > 0xff)    {        flags |= HRM_FLAG_MASK_HR_VALUE_16BIT;        len   += uint16_encode(heart_rate, &p_encoded_buffer[len]);    }    else    {        p_encoded_buffer[len++] = (uint8_t)heart_rate;    }    // Encode rr_interval values    if (p_hrs->rr_interval_count > 0)    {        flags |= HRM_FLAG_MASK_RR_INTERVAL_INCLUDED;    }    for (i = 0; i < p_hrs->rr_interval_count; i++)    {        if (len + sizeof(uint16_t) > MAX_HRM_LEN)        {            // Not all stored rr_interval values can fit into the encoded hrm,            // move the remaining values to the start of the buffer.            memmove(&p_hrs->rr_interval[0],                    &p_hrs->rr_interval[i],                    (p_hrs->rr_interval_count - i) * sizeof(uint16_t));            break;        }        len += uint16_encode(p_hrs->rr_interval[i], &p_encoded_buffer[len]);    }    p_hrs->rr_interval_count -= i;    // Add flags    p_encoded_buffer[0] = flags;    return len;}
开发者ID:DroneBucket,项目名称:Drone_Bucket_CrazyFlie2_NRF_Firmware,代码行数:60,


示例18: ant_bpwr_page_torque_encode

void ant_bpwr_page_torque_encode(uint8_t                           * p_page_buffer,                                 ant_bpwr_page_torque_data_t const * p_page_data){    ant_bpwr_page_torque_data_layout_t * p_outcoming_data =        (ant_bpwr_page_torque_data_layout_t *)p_page_buffer;    p_outcoming_data->update_event_count    = p_page_data->update_event_count;    p_outcoming_data->tick                  = p_page_data->tick;    UNUSED_PARAMETER(uint16_encode(p_page_data->period, p_outcoming_data->period));    UNUSED_PARAMETER(uint16_encode(p_page_data->accumulated_torque,                                   p_outcoming_data->accumulated_torque));}
开发者ID:syrmo,项目名称:nrf5x-sdk,代码行数:13,


示例19: gatts_write_evt_encode

/** @brief Function for encoding the BLE_GATTS_EVT_WRITE event. * * @param[in]   p_ble_evt       Input BLE event. * @param[out]  p_buffer        Pointer to a buffer for the encoded event. * * @return Number of bytes encoded. */static uint32_t gatts_write_evt_encode(const ble_evt_t * const p_ble_evt,                                       uint8_t * const         p_buffer){    uint32_t                      index = 0;    const ble_gatts_evt_write_t * p_evt_write;    p_evt_write = &(p_ble_evt->evt.gatts_evt.params.write);    index            += uint16_encode(p_evt_write->handle, &p_buffer[index]);    p_buffer[index++] = p_evt_write->op;    index            += uint16_encode(p_evt_write->context.srvc_uuid.uuid, &p_buffer[index]);    p_buffer[index++] = p_evt_write->context.srvc_uuid.type;    index            += uint16_encode(p_evt_write->context.char_uuid.uuid, &p_buffer[index]);    p_buffer[index++] = p_evt_write->context.char_uuid.type;    index            += uint16_encode(p_evt_write->context.desc_uuid.uuid, &p_buffer[index]);    p_buffer[index++] = p_evt_write->context.desc_uuid.type;    index            += uint16_encode(p_evt_write->context.srvc_handle, &p_buffer[index]);    index            += uint16_encode(p_evt_write->context.value_handle, &p_buffer[index]);    p_buffer[index++] = p_evt_write->context.type;    index            += uint16_encode(p_evt_write->offset, &p_buffer[index]);    index            += uint16_encode(p_evt_write->len, &p_buffer[index]);    if (p_evt_write->len != 0)    {        memcpy(&(p_buffer[index]), p_evt_write->data, p_evt_write->len);        index += p_evt_write->len;    }    return index;}
开发者ID:GhostMouse7369,项目名称:work,代码行数:37,


示例20: pnp_id_encode

/**@brief Function for encoding a PnP ID. * * @param[out]  p_encoded_buffer   Buffer where the encoded data will be written. * @param[in]   p_pnp_id           PnP ID to be encoded. */static void pnp_id_encode(uint8_t * p_encoded_buffer, const ble_dis_pnp_id_t * p_pnp_id){    uint8_t len = 0;    APP_ERROR_CHECK_BOOL(p_pnp_id != NULL);    APP_ERROR_CHECK_BOOL(p_encoded_buffer != NULL);    p_encoded_buffer[len++] = p_pnp_id->vendor_id_source;    len += uint16_encode(p_pnp_id->vendor_id, &p_encoded_buffer[len]);    len += uint16_encode(p_pnp_id->product_id, &p_encoded_buffer[len]);    len += uint16_encode(p_pnp_id->product_version, &p_encoded_buffer[len]);    APP_ERROR_CHECK_BOOL(len == BLE_DIS_PNP_ID_LEN);}
开发者ID:BlueSkyGjj,项目名称:nRF52,代码行数:20,


示例21: ble_gap_appearance_get_rsp_enc

uint32_t ble_gap_appearance_get_rsp_enc(uint32_t               return_code,                                        uint8_t * const        p_buf,                                        uint32_t * const       p_buf_len,                                        uint16_t const * const p_appearance){    SER_ASSERT_NOT_NULL(p_buf);    SER_ASSERT_NOT_NULL(p_buf_len);    uint32_t total_len = *p_buf_len;    uint32_t err_code = ser_ble_cmd_rsp_status_code_enc(SD_BLE_GAP_APPEARANCE_GET, return_code,                                                        p_buf, p_buf_len);    if (err_code != NRF_SUCCESS)    {        return err_code;    }    if (return_code != NRF_SUCCESS)    {        return NRF_SUCCESS;    }    SER_ASSERT_NOT_NULL(p_appearance);    uint32_t index = *p_buf_len;    SER_ASSERT_LENGTH_LEQ(index + sizeof (uint16_t), total_len);    index += uint16_encode(*p_appearance, &p_buf[index]);    *p_buf_len = index;    return NRF_SUCCESS;}
开发者ID:DanielOld,项目名称:wlock,代码行数:33,


示例22: appearance_encode

static uint32_t appearance_encode(uint8_t * p_encoded_data, uint8_t * p_len){    uint32_t err_code;    uint16_t appearance;    // Check for buffer overflow    if ((*p_len) + 4 > BLE_GAP_ADV_MAX_SIZE)    {        return NRF_ERROR_DATA_SIZE;    }    // Get GAP appearance field    err_code = sd_ble_gap_appearance_get(&appearance);    if (err_code != NRF_SUCCESS)    {        return err_code;    }        // Encode Length, AD Type and Appearance    p_encoded_data[(*p_len)++] = 3;    p_encoded_data[(*p_len)++] = BLE_GAP_AD_TYPE_APPEARANCE;    (*p_len) += uint16_encode(appearance, &p_encoded_data[*p_len]);        return NRF_SUCCESS;}
开发者ID:Abdellbar,项目名称:nrf51,代码行数:26,


示例23: manuf_specific_data_encode

static uint32_t manuf_specific_data_encode(const ble_advdata_manuf_data_t * p_manuf_sp_data,                                           uint8_t *                        p_encoded_data,                                           uint8_t *                        p_len){    uint8_t data_size = sizeof(uint16_le_t) + p_manuf_sp_data->data.size;        // Check for buffer overflow    if ((*p_len) + 2 + data_size > BLE_GAP_ADV_MAX_SIZE)    {        return NRF_ERROR_DATA_SIZE;    }    // Encode Length and AD Type    p_encoded_data[(*p_len)++] = 1 + data_size;    p_encoded_data[(*p_len)++] = BLE_GAP_AD_TYPE_MANUFACTURER_SPECIFIC_DATA;        // Encode Company Identifier    (*p_len) += uint16_encode(p_manuf_sp_data->company_identifier, &p_encoded_data[*p_len]);        // Encode additional manufacturer specific data    if (p_manuf_sp_data->data.size > 0)    {        if (p_manuf_sp_data->data.p_data == NULL)        {            return NRF_ERROR_INVALID_PARAM;        }        memcpy(&p_encoded_data[*p_len], p_manuf_sp_data->data.p_data, p_manuf_sp_data->data.size);        (*p_len) += p_manuf_sp_data->data.size;    }        return NRF_SUCCESS;}
开发者ID:Abdellbar,项目名称:nrf51,代码行数:32,


示例24: ble_agsensor_create_sensor_read_data_msg

void ble_agsensor_create_sensor_read_data_msg(void) {	hvx_p_config_len = 0;	(hvx_p_config_len) += uint16_encode(BLE_AGSENSOR_CONFIGURATION_OPCODE_START_MEASUREMENT, &hvx_encoded_buffer[hvx_p_config_len]);	// Add the sensor count in the sending msg	uint8_t indice = sentek_measurement_get_Indice_toSend();	hvx_encoded_buffer[hvx_p_config_len] = indice;	hvx_p_config_len ++;	// Add the time-stamp value in the sending msg	(hvx_p_config_len) += uint32_encode(sentek_get_measurement(indice, SENTEK_RESULT_DATA_TIMESTAMP), &hvx_encoded_buffer[hvx_p_config_len]);	// Add the temperature value in the sending msg	uint32_t temp = sentek_get_measurement_float(indice, SENTEK_RESULT_DATA_TEMPERATURE);//	char* tempfloat = &temp;	(hvx_p_config_len) += uint32_encode(temp, &hvx_encoded_buffer[hvx_p_config_len]);	// Add the moisture value in the sending msg//	(hvx_p_config_len) += uint32_encode(sentek_get_measurement(indice, SENTEK_RESULT_DATA_MOISTURE), &hvx_encoded_buffer[hvx_p_config_len]);	(hvx_p_config_len) += uint32_encode(sentek_get_measurement_float(indice, SENTEK_RESULT_DATA_MOISTURE), &hvx_encoded_buffer[hvx_p_config_len]);	// Add the salinity value in the sending msg//	(hvx_p_config_len) += uint32_encode(sentek_get_measurement(indice, SENTEK_RESULT_DATA_SALINITY), &hvx_encoded_buffer[hvx_p_config_len]);	(hvx_p_config_len) += uint32_encode(sentek_get_measurement_float(indice, SENTEK_RESULT_DATA_SALINITY), &hvx_encoded_buffer[hvx_p_config_len]);}
开发者ID:dhavalengg06,项目名称:Probe-Dongle-Firmware,代码行数:26,


示例25: ant_channel_id_set_req_enc

uint32_t ant_channel_id_set_req_enc(uint8_t          channel,                                    uint16_t         device_number,                                    uint8_t          device_type,                                    uint8_t          transmit_type,                                    uint8_t * const  p_buf,                                    uint32_t * const p_buf_len){    uint32_t index    = 0;    uint32_t err_code = NRF_SUCCESS;    SER_ASSERT_NOT_NULL(p_buf);    SER_ASSERT_NOT_NULL(p_buf_len);    p_buf[index++] = SVC_ANT_CHANNEL_ID_SET;    p_buf[index++] = channel;    index += uint16_encode(device_number,  &p_buf[index]);    p_buf[index++] = device_type;    p_buf[index++] = transmit_type;    SER_ASSERT_LENGTH_LEQ(index, *p_buf_len);    *p_buf_len = index;    return err_code;}
开发者ID:kiibohd,项目名称:controller,代码行数:25,


示例26: ble_gatts_service_add_req_enc

uint32_t ble_gatts_service_add_req_enc(uint8_t                  type,                                       ble_uuid_t const * const p_uuid,                                       uint16_t const * const   p_conn_handle,                                       uint8_t * const          p_buf,                                       uint32_t * const         p_buf_len){    uint32_t index = 0;    SER_ASSERT_NOT_NULL(p_buf);    SER_ASSERT_NOT_NULL(p_buf_len);    SER_ASSERT_LENGTH_LEQ(index + 1 + 1 + 1 + 1, *p_buf_len);    p_buf[index++] = SD_BLE_GATTS_SERVICE_ADD;    p_buf[index++] = type;    p_buf[index++] = (p_uuid != NULL) ? SER_FIELD_PRESENT : SER_FIELD_NOT_PRESENT;    if (p_uuid != NULL)    {        SER_ASSERT_LENGTH_LEQ(index + 3, *p_buf_len);        index         += uint16_encode(p_uuid->uuid, &p_buf[index]);        p_buf[index++] = p_uuid->type;    }    SER_ASSERT_LENGTH_LEQ(index + 1, *p_buf_len);    p_buf[index++] = (p_conn_handle != NULL) ? SER_FIELD_PRESENT : SER_FIELD_NOT_PRESENT;    *p_buf_len = index;    return NRF_SUCCESS;}
开发者ID:NordicSemiconductor,项目名称:pc-ble-driver,代码行数:32,


示例27: ant_bpwr_page_16_encode

void ant_bpwr_page_16_encode(uint8_t                      * p_page_buffer,                             ant_bpwr_page16_data_t const * p_page_data){    ant_bpwr_page16_data_layout_t * p_outcoming_data =        (ant_bpwr_page16_data_layout_t *)p_page_buffer;    p_outcoming_data->update_event_count    = p_page_data->update_event_count;    p_outcoming_data->pedal_power           = p_page_data->pedal_power.byte;    UNUSED_PARAMETER(uint16_encode(p_page_data->accumulated_power,                                   p_outcoming_data->accumulated_power));    UNUSED_PARAMETER(uint16_encode(p_page_data->instantaneous_power,                                   p_outcoming_data->instantaneous_power));    page16_data_log(p_page_data);}
开发者ID:BLEHexapod,项目名称:nrf_sdk,代码行数:16,


示例28: gap_appearance_get_handle

/**@brief Function for decoding a command packet with RPC_SD_BLE_GAP_APPEARANCE_GET opcode. * * This function will decode the command, call the BLE Stack API, and also send command response * to the peer through the the transport layer. * * @param[in] p_command         The encoded structure that needs to be decoded and passed on *                              to the BLE Stack API. * @param[in] command_len       The length of the encoded command read from transport layer. * * @retval NRF_SUCCESS               If the decoding of the command was successful, the SoftDevice *                                   API was called, and the command response was sent to peer, *                                   otherwise an error code. * @retval NRF_ERROR_INVALID_LENGTH  If the content length of the packet is not conforming to the *                                   codec specification. */static uint32_t gap_appearance_get_handle(uint8_t const * const p_command, uint32_t command_len){    uint8_t  resp_data[sizeof(uint16_t)];    uint16_t appearance;    uint32_t err_code;    uint32_t   index        = 0;    uint8_t    out_index    = 0;    uint16_t * p_appearance = &appearance;        // If appearance field is present.    if (p_command[index++] == RPC_BLE_FIELD_NOT_PRESENT)    {        p_appearance = NULL;    }        RPC_DECODER_LENGTH_CHECK(command_len, index, SD_BLE_GAP_APPEARANCE_GET);    err_code  = sd_ble_gap_appearance_get(p_appearance);        if (err_code == NRF_SUCCESS)    {        out_index += uint16_encode(*p_appearance, resp_data);        return ble_rpc_cmd_resp_data_send(SD_BLE_GAP_APPEARANCE_GET,                                          err_code,                                          resp_data,                                          out_index);    }    else    {        return ble_rpc_cmd_resp_send(SD_BLE_GAP_APPEARANCE_GET, err_code);    }       }
开发者ID:huiyue000,项目名称:51822,代码行数:49,


示例29: ser_phy_tx_pkt_send

uint32_t ser_phy_tx_pkt_send(const uint8_t * p_buffer, uint16_t num_of_bytes){    if (p_buffer == NULL)    {        return NRF_ERROR_NULL;    }    else if (num_of_bytes == 0)    {        return NRF_ERROR_INVALID_PARAM;    }    //Check if there is no ongoing transmission at the moment    if ((mp_tx_stream == NULL) && (m_tx_stream_length == 0) && (m_tx_stream_index == 0))    {        (void) uint16_encode(num_of_bytes, m_tx_length_buf);        mp_tx_stream       = (uint8_t *)p_buffer;        m_tx_stream_length = num_of_bytes + SER_PHY_HEADER_SIZE;        //Call tx procedure to start transmission of a packet        ser_phy_uart_tx();    }    else    {        return NRF_ERROR_BUSY;    }    return NRF_SUCCESS;}
开发者ID:RepRapThailand,项目名称:Espruino,代码行数:28,


示例30: ant_common_page_80_encode

void ant_common_page_80_encode(uint8_t                                 * p_page_buffer,                               volatile ant_common_page80_data_t const * p_page_data){    ant_common_page80_data_layout_t * p_outcoming_data =        (ant_common_page80_data_layout_t *)p_page_buffer;    memset(p_page_buffer, UINT8_MAX, sizeof (p_outcoming_data->reserved));    p_outcoming_data->hw_revision = p_page_data->hw_revision;    UNUSED_PARAMETER(uint16_encode(p_page_data->manufacturer_id,                                   p_outcoming_data->manufacturer_id));    UNUSED_PARAMETER(uint16_encode(p_page_data->model_number, p_outcoming_data->model_number));    page80_data_log(p_page_data);}
开发者ID:DanielOld,项目名称:wlock,代码行数:16,



注:本文中的uint16_encode函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ uint16_fromregion函数代码示例
C++ uint16_decode函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。