void FrSkySportSensorFcs::send(FrSkySportSingleWireSerial& serial, uint8_t id, uint32_t now) { if(sensorId == id) { switch(sensorDataIdx) { case 0: if(now > currentTime) { currentTime = now + FCS_CURR_DATA_PERIOD; serial.sendData(FCS_CURR_DATA_ID, currentData); } else { serial.sendEmpty(FCS_CURR_DATA_ID); } break; case 1: if(now > voltageTime) { voltageTime = now + FCS_VOLT_DATA_PERIOD; serial.sendData(FCS_VOLT_DATA_ID, voltageData); } else { serial.sendEmpty(FCS_VOLT_DATA_ID); } break; } sensorDataIdx++; if(sensorDataIdx >= FCS_DATA_COUNT) sensorDataIdx = 0; } }
void FrSkySportSensorVario::send(FrSkySportSingleWireSerial& serial, uint8_t id, uint32_t now) { if(sensorId == id) { switch(sensorDataIdx) { case 0: if(now > altitudeTime) { altitudeTime = now + VARIO_ALT_DATA_PERIOD; serial.sendData(VARIO_ALT_DATA_ID, altitudeData); } else { serial.sendEmpty(VARIO_ALT_DATA_ID); } break; case 1: if(now > vsiTime) { vsiTime = now + VARIO_VSI_DATA_PERIOD; serial.sendData(VARIO_VSI_DATA_ID, vsiData); } else { serial.sendEmpty(VARIO_VSI_DATA_ID); } break; } sensorDataIdx++; if(sensorDataIdx >= VARIO_DATA_COUNT) sensorDataIdx = 0; } }
void FrSkySportSensorFlvss::send(FrSkySportSingleWireSerial &serial, uint8_t id, uint32_t now) { if (sensorId == id) { if (now > cellDataTime) { cellDataTime = now + FLVSS_CELL_DATA_PERIOD; switch (sensorDataIdx) { case 0: serial.sendData(FLVSS_CELL_DATA_ID, cellData1); if (cellData2 != 0) sensorDataIdx = 1; else sensorDataIdx = 0; break; case 1: serial.sendData(FLVSS_CELL_DATA_ID, cellData2); if (cellData3 != 0) sensorDataIdx = 2; else sensorDataIdx = 0; break; case 2: serial.sendData(FLVSS_CELL_DATA_ID, cellData3); sensorDataIdx = 0; break; } } else { serial.sendEmpty(FLVSS_CELL_DATA_ID); } } }
void FrSkySportSensorFcs::send(FrSkySportSingleWireSerial& serial, uint8_t id) { if(sensorId == id) { switch(sensorDataIdx) { case 0: serial.sendData(FCS_CURR_DATA_ID, current); break; case 1: serial.sendData(FCS_VOLT_DATA_ID, voltage); break; } sensorDataIdx++; if(sensorDataIdx >= FCS_DATA_COUNT) sensorDataIdx = 0; } }
void FrSkySportSensorGps::send(FrSkySportSingleWireSerial& serial, uint8_t id) { if(sensorId == id) { switch(sensorDataIdx) { case 0: serial.sendData(GPS_FIX_DATA_ID, fixtype); break; case 1: serial.sendData(GPS_SATCOUNT_DATA_ID, satellites_visible); break; case 2: serial.sendData(GPS_LAT_LON_DATA_ID, lat); break; case 3: serial.sendData(GPS_LAT_LON_DATA_ID, lon); break; case 4: serial.sendData(GPS_ALT_DATA_ID, alt); break; case 5: serial.sendData(GPS_SPEED_DATA_ID, speed); break; case 6: serial.sendData(GPS_COG_DATA_ID, cog); break; case 7: serial.sendData(GPS_HDOP_DATA_ID, hdop); break; case 8: serial.sendData(GPS_DATE_TIME_DATA_ID, date); break; case 9: serial.sendData(GPS_DATE_TIME_DATA_ID, time); break; } sensorDataIdx++; if(sensorDataIdx >= GPS_DATA_COUNT) sensorDataIdx = 0; } }
void FrSkySportSensorMotorOuts::send(FrSkySportSingleWireSerial& serial, uint8_t id) { if(sensorId == id) { switch(sensorDataIdx) { case 0: serial.sendData(RPM_ROT_DATA_ID1, motorout1); break; case 1: serial.sendData(RPM_ROT_DATA_ID2, motorout2); break; case 2: serial.sendData(RPM_ROT_DATA_ID3, motorout3); break; case 3: serial.sendData(RPM_ROT_DATA_ID4, motorout4); break; } sensorDataIdx++; if(sensorDataIdx >= RPM_DATA_COUNT) sensorDataIdx = 0; } }
void FrSkySportSensorGps::send(FrSkySportSingleWireSerial& serial, uint8_t id, uint32_t now) { if(sensorId == id) { switch(sensorDataIdx) { case 0: if(now > latTime && dataSet) { latTime = now + GPS_LAT_LON_DATA_PERIOD; serial.sendData(GPS_LAT_LON_DATA_ID, latData); } else { serial.sendEmpty(GPS_LAT_LON_DATA_ID); } break; case 1: if(now > lonTime && dataSet) { lonTime = now + GPS_LAT_LON_DATA_PERIOD; serial.sendData(GPS_LAT_LON_DATA_ID, lonData); } else { serial.sendEmpty(GPS_LAT_LON_DATA_ID); } break; case 2: if(now > altTime && dataSet) { altTime = now + GPS_ALT_DATA_PERIOD; serial.sendData(GPS_ALT_DATA_ID, altData); } else { serial.sendEmpty(GPS_ALT_DATA_ID); } break; case 3: if(now > speedTime && dataSet) { speedTime = now + GPS_SPEED_DATA_PERIOD; serial.sendData(GPS_SPEED_DATA_ID, speedData); } else { serial.sendEmpty(GPS_SPEED_DATA_ID); } break; case 4: if(now > cogTime && dataSet) { cogTime = now + GPS_COG_DATA_PERIOD; serial.sendData(GPS_COG_DATA_ID, cogData); } else { serial.sendEmpty(GPS_COG_DATA_ID); } break; case 5: if(now > dateTime && dataSet) { dateTime = now + GPS_DATE_TIME_DATA_PERIOD; serial.sendData(GPS_DATE_TIME_DATA_ID, dateData); } else { serial.sendEmpty(GPS_DATE_TIME_DATA_ID); } break; case 6: if(now > timeTime && dataSet) { timeTime = now + GPS_DATE_TIME_DATA_PERIOD; serial.sendData(GPS_DATE_TIME_DATA_ID, timeData); } else { serial.sendEmpty(GPS_DATE_TIME_DATA_ID); } break; } sensorDataIdx++; if(sensorDataIdx >= GPS_DATA_COUNT) sensorDataIdx = 0; } }