北冥小海鸥 发表于 2017-11-19 20:09:52

求助帖。数据上传频率问题

数据上传频率太快了,每隔几秒一次。我希望5分钟或者10分钟上传一次。我找到 gizDevReportPolicy(dataPoint_t *currentData)这个函数了,把前面屏蔽掉了(这一部分是如果采集数值发生变化就上传数据,不需要屏蔽了),网上显示设备在线但是,一直没有上传数据。大家帮帮忙
* @brief Datapoints reporting mechanism
*
* 1. Changes are reported immediately

* 2. Data timing report , 600000 Millisecond
*
*@param currentData       : Current datapoints value
* @return : NULL
*/
static void gizDevReportPolicy(dataPoint_t *currentData)
{
    static uint32_t lastRepTime = 0;
    uint32_t timeNow = gizGetTimerCount();

    if((1 == gizCheckReport(currentData, (dataPoint_t *)&gizwitsProtocol.gizLastDataPoint)))
    {
      GIZWITS_LOG("changed, report data\n");
      if(0 == gizDataPoints2ReportData(currentData,&gizwitsProtocol.reportData.devStatus))
      {
            gizReportData(ACTION_REPORT_DEV_STATUS, (uint8_t *)&gizwitsProtocol.reportData.devStatus, sizeof(devStatus_t));      }      
      memcpy((uint8_t *)&gizwitsProtocol.gizLastDataPoint, (uint8_t *)currentData, sizeof(dataPoint_t));
    }

    if((0 == (timeNow % (600000))) && (lastRepTime != timeNow))
    {
      GIZWITS_LOG("Info: 600S report data\n");
      if(0 == gizDataPoints2ReportData(currentData,&gizwitsProtocol.reportData.devStatus))
      {
            gizReportData(ACTION_REPORT_DEV_STATUS, (uint8_t *)&gizwitsProtocol.reportData.devStatus, sizeof(devStatus_t));
      }      
      memcpy((uint8_t *)&gizwitsProtocol.gizLastDataPoint, (uint8_t *)currentData, sizeof(dataPoint_t));

      lastRepTime = timeNow;
    }
}

bigfanofloT 发表于 2017-11-19 20:57:39

延时使用gizGetTimerCount,代码参考微信宠物屋的
void userHandle(void)
{
    uint8_t ret= 0;
    static uint32_t thLastTimer = 0;

    currentDataPoint.valueInfrared = irHandle();

    if((gizGetTimerCount()-thLastTimer) > SAMPLING_TIME_MAX)
    {
      ret = dht11Read((uint8_t *)&currentDataPoint.valueTemperature, (uint8_t *)&currentDataPoint.valueHumidity);
      if(ret != 0)
      {
            printf("Failed to read DHT11\r\n");
      }
                              
      thLastTimer = gizGetTimerCount();
    }
}

北冥小海鸥 发表于 2017-11-19 21:06:56

bigfanofloT 发表于 2017-11-19 20:57
延时使用gizGetTimerCount,代码参考微信宠物屋的
void userHandle(void)
{


谢谢大哥,我看了你是博士好厉害啊,小弟是硕士

bigfanofloT 发表于 2017-11-22 09:17:51

北冥小海鸥 发表于 2017-11-19 21:06
谢谢大哥,我看了你是博士好厉害啊,小弟是硕士

:lol:lol:lol
页: [1]
查看完整版本: 求助帖。数据上传频率问题