polling method

Future<FeliCaPollingResponse> polling({
  1. required Uint8List systemCode,
  2. required FeliCaPollingRequestCode requestCode,
  3. required FeliCaPollingTimeSlot timeSlot,
})

Selects a system on the card and reads what requestCode asks for.

timeSlot is how many slots the card may answer in; more slots reduce collisions when several cards are present, at the cost of time.

Implementation

Future<FeliCaPollingResponse> polling({
  required Uint8List systemCode,
  required FeliCaPollingRequestCode requestCode,
  required FeliCaPollingTimeSlot timeSlot,
}) async {
  final response = await iosApi.felicaPolling(
    _handle,
    systemCode,
    switch (requestCode) {
      FeliCaPollingRequestCode.noRequest => FeliCaPollingRequestCodePigeon.noRequest,
      FeliCaPollingRequestCode.systemCode => FeliCaPollingRequestCodePigeon.systemCode,
      FeliCaPollingRequestCode.communicationPerformance => FeliCaPollingRequestCodePigeon.communicationPerformance,
    },
    switch (timeSlot) {
      FeliCaPollingTimeSlot.max1 => FeliCaPollingTimeSlotPigeon.max1,
      FeliCaPollingTimeSlot.max2 => FeliCaPollingTimeSlotPigeon.max2,
      FeliCaPollingTimeSlot.max4 => FeliCaPollingTimeSlotPigeon.max4,
      FeliCaPollingTimeSlot.max8 => FeliCaPollingTimeSlotPigeon.max8,
      FeliCaPollingTimeSlot.max16 => FeliCaPollingTimeSlotPigeon.max16,
    },
  );
  return FeliCaPollingResponse(
    manufacturerParameter: response.manufacturerParameter,
    requestData: response.requestData,
  );
}