Exemple #1
0
/*******************************************************************************
* Function Name: DynamicADVPayloadUpdate
********************************************************************************
*
* Summary:
*  This routine dynamically updates the BLE advertisement packet
*
* Parameters:
*  None
*
* Return:
*  None
*
*******************************************************************************/
void DynamicADVPayloadUpdate(void)
{
    if(CyBle_GetBleSsState() == CYBLE_BLESS_STATE_ACTIVE)
    {
        count++; /* Loop counter */

        /* Once the system enters Sleep/Deepsleep mode during advertisement, the source of wake-up is the next
         * advertisement interval which has a wakeup interval of 1 advertisement (ADV) interval (100ms).
         * LOOP_DELAY * ADV interval is the interval after which ADV data is updated in this firmware.*/

        if(count >= LOOP_DELAY)
        {
            /* Dynamic payload will be continuously updated */
            advPayload[MANUFACTURER_SPECIFIC_DYNAMIC_DATA_INDEX] = dynamicPayload++;

            if(dynamicPayload == MAX_PAYLOAD_VALUE)
            {
                dynamicPayload = MIN_PAYLOAD_VALUE;
            }

            count = 0;

            CyBle_GapUpdateAdvData(cyBle_discoveryModeInfo.advData, cyBle_discoveryModeInfo.scanRspData);
        }
    }
}
Exemple #2
0
void setupType0Adv()
{
    advPacket0 *ap;
    
    ap = (advPacket0 *)&cyBle_discoveryModeInfo.advData->advData[ADVINDEX];
    
    // packet type + LSM9Setting
  
    
    ap->setup = ADVPACKET0 | (LSM9DS0GetSetting()<<2);
    
    // fix this
    ap->tb0 =LO8(systime);
    ap->tb1 =HI8(LO16(systime));
    ap->tb2 =LO8(HI16(systime));
    
    
    // position // if it is a uint16 it causes some unhandled exception
    uint16 val= QD_ReadCounter();
     
    
    ap->position = val;
       
    
    // acceleration x,y,z
    memcpy(&ap->accel , LSM9DS0GetAccel(), 6); // sizeof(LSM9DS0DATA));
    
    // gyro x,y,z
    memcpy(&ap->gyro , LSM9DS0GetGyro(),6 ); // sizeof(LSM9DS0DATA));
    
    // mag x,y,z
    memcpy(&ap->mag , LSM9DS0GetMag(),6); //sizeof(LSM9DS0DATA));
             
    CyBle_GapUpdateAdvData(cyBle_discoveryModeInfo.advData, cyBle_discoveryModeInfo.scanRspData);
}
Exemple #3
0
void setupType1Adv()
{
    advPacket1 *ap;

    Types tempData;
    
    ap = (advPacket1 *)&cyBle_discoveryModeInfo.advData->advData[ADVINDEX];
    
    // packet type + LSM9Setting
    ap->setup = ADVPACKET1;
    
    tempData.longVal = systime;
    
    ap->tb0 = tempData.bytes[0];
    ap->tb1 = tempData.bytes[1];
    ap->tb2 = tempData.bytes[2];

    tempData.f = BMP180GetTemperature(); 
    memcpy(&ap->temperature,&tempData,4);
    
    
    tempData.f = HTU21GetHumidity();
    memcpy(&ap->relativeHumdity,&tempData,4);

    tempData.longVal = BMP180GetPressure();
    memcpy(&ap->airPressure,&tempData,4);
    
    
    tempData.f = BMP180GetAltitude(); 
    memcpy(&ap->altitude,&tempData,4);

    CyBle_GapUpdateAdvData(cyBle_discoveryModeInfo.advData, cyBle_discoveryModeInfo.scanRspData);
    
}
Exemple #4
0
void setupType2Adv()
{
    // packet type

    advPacket3 *ap;
    //Types tempData;

    ap = (advPacket3 *)&cyBle_discoveryModeInfo.advData->advData[ADVINDEX];
    
    // packet type + LSM9Setting
    ap->setup = ADVPACKET2;
    
    ap->wheelCircumfrence = globalDefaults.cmsPerRotation;
    ap->zeroPos = globalDefaults.zeroPos;
    ap->ticksPerRotation = globalDefaults.ticksPerRotation;
    memcpy(&ap->name,globalDefaults.name,sizeof(globalDefaults.name)); 
    
    CyBle_GapUpdateAdvData(cyBle_discoveryModeInfo.advData, cyBle_discoveryModeInfo.scanRspData);
    

}