Lines Matching refs:fields
4 from dataclasses import dataclass, field, fields
75 last = len(fields(self)) - 1
76 align = max(len(f.name) for f in fields(self) if f.name != 'payload')
78 for (idx, f) in enumerate(fields(self)):
146 fields = {'payload': None}
150 fields['sender'] = value_
152 fields['receiver'] = value_
153 fields['technology'] = Technology.from_int(span[4])
154 fields['protocol'] = Protocol.from_int(span[5])
155 fields['packet_type'] = RfPacketType.from_int(span[6])
159 fields['payload'] = payload
161 return PollCommand.parse(fields.copy(), payload)
165 return NfcAPollResponse.parse(fields.copy(), payload)
169 return T4ATSelectCommand.parse(fields.copy(), payload)
173 return T4ATSelectResponse.parse(fields.copy(), payload)
177 return NfcDepSelectCommand.parse(fields.copy(), payload)
181 return NfcDepSelectResponse.parse(fields.copy(), payload)
185 return SelectCommand.parse(fields.copy(), payload)
189 return DeactivateNotification.parse(fields.copy(), payload)
193 return Data.parse(fields.copy(), payload)
196 return RfPacket(**fields), span
226 def parse(fields: dict, span: bytes) -> Tuple['PollCommand', bytes]:
227 if fields['packet_type'] != RfPacketType.POLL_COMMAND:
229 return PollCommand(**fields), span
250 def parse(fields: dict, span: bytes) -> Tuple['NfcAPollResponse', bytes]:
251 …if fields['technology'] != Technology.NFC_A or fields['packet_type'] != RfPacketType.POLL_RESPONSE:
259 fields['nfcid1'] = list(span[:nfcid1_size])
263 fields['int_protocol'] = (span[0] >> 0) & 0x3
264 fields['bit_frame_sdd'] = span[1]
266 return NfcAPollResponse(**fields), span
296 def parse(fields: dict, span: bytes) -> Tuple['T4ATSelectCommand', bytes]:
297 …if fields['technology'] != Technology.NFC_A or fields['protocol'] != Protocol.ISO_DEP or fields['p…
301 fields['param'] = span[0]
303 return T4ATSelectCommand(**fields), span
327 def parse(fields: dict, span: bytes) -> Tuple['T4ATSelectResponse', bytes]:
328 …if fields['technology'] != Technology.NFC_A or fields['protocol'] != Protocol.ISO_DEP or fields['p…
336 fields['rats_response'] = list(span[:rats_response_size])
338 return T4ATSelectResponse(**fields), span
359 def parse(fields: dict, span: bytes) -> Tuple['NfcDepSelectCommand', bytes]:
360 … if fields['protocol'] != Protocol.NFC_DEP or fields['packet_type'] != RfPacketType.SELECT_COMMAND:
364 fields['lr'] = (span[0] >> 0) & 0x3
366 return NfcDepSelectCommand(**fields), span
389 def parse(fields: dict, span: bytes) -> Tuple['NfcDepSelectResponse', bytes]:
390 …if fields['protocol'] != Protocol.NFC_DEP or fields['packet_type'] != RfPacketType.SELECT_RESPONSE:
398 fields['atr_response'] = list(span[:atr_response_size])
400 return NfcDepSelectResponse(**fields), span
420 def parse(fields: dict, span: bytes) -> Tuple['SelectCommand', bytes]:
421 if fields['packet_type'] != RfPacketType.SELECT_COMMAND:
423 return SelectCommand(**fields), span
471 def parse(fields: dict, span: bytes) -> Tuple['DeactivateNotification', bytes]:
472 if fields['packet_type'] != RfPacketType.DEACTIVATE_NOTIFICATION:
476 fields['type_'] = DeactivateType.from_int(span[0])
477 fields['reason'] = DeactivateReason.from_int(span[1])
479 return DeactivateNotification(**fields), span
499 def parse(fields: dict, span: bytes) -> Tuple['Data', bytes]:
500 if fields['packet_type'] != RfPacketType.DATA:
502 fields['data'] = list(span)
504 return Data(**fields), span