コード例 #1
0
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;
  }
}
コード例 #2
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;
  }
}
コード例 #3
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);
    }
  }
}
コード例 #4
0
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;
  }
}
コード例 #5
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;
  }
}
コード例 #6
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;
  }
}
コード例 #7
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;
  }
}