void readSensors(DataPacket_t *packet) { PRINTF("reading sensors...\n"); uint32_t start = getJiffies(); ledOn(); humidityOn(); packet->timestamp = getUptime(); if (!islRead(&packet->islLight, true)) { PRINT("islRead failed\n"); packet->islLight = 0xffff; // } else { // PRINT("islRead OK\n"); } packet->internalVoltage = adcRead(ADC_INTERNAL_VOLTAGE); packet->internalTemperature = adcRead(ADC_INTERNAL_TEMPERATURE); packet->sht75Humidity = humidityRead(); packet->sht75Temperature = temperatureRead(); humidityOff(); ledOff(); uint32_t end = getJiffies(); PRINTF(" time spent: %u ms\n", end - start); }
void readSensors(DataPacket_t *packet) { DPRINTF("reading sensors...\n"); ledOn(); humidityOn(); packet->timestamp = getJiffies(); packet->sourceAddress = localAddress; packet->dataSeqnum = ++dataSeqnum; if (localAddress != 0x0796) { if (!islRead(&packet->islLight, true)) { PRINT("islRead failed\n"); packet->islLight = 0xffff; } packet->sq100Light = 0xffff; } else { packet->islLight = 0xffff; if (!readAds(&packet->sq100Light)) { PRINT("readAdsRegister failed\n"); packet->sq100Light = 0xffff; } } packet->internalVoltage = adcRead(ADC_INTERNAL_VOLTAGE); packet->internalTemperature = adcRead(ADC_INTERNAL_TEMPERATURE); DPRINT("read hum\n"); packet->sht75Humidity = humidityRead(); packet->sht75Temperature = temperatureRead(); DPRINT("read done\n"); packet->crc = crc16((uint8_t *) packet, sizeof(*packet) - 2); #if WRITE_TO_FLASH if (extFlashAddress < EXT_FLASH_SIZE) { DPRINT("Writing to flash\n"); extFlashWrite(extFlashAddress, packet, sizeof(*packet)); DataPacket_t verifyRecord; memset(&verifyRecord, 0, sizeof(verifyRecord)); extFlashRead(extFlashAddress, &verifyRecord, sizeof(verifyRecord)); if (memcmp(packet, &verifyRecord, sizeof(verifyRecord))) { ASSERT("writing in flash failed!" && false); } extFlashAddress += sizeof(verifyRecord); } #endif humidityOff(); ledOff(); }