Example #1
0
// Select a passive or emulated tag.
func (d *Device) InitiatorSelectPassiveTarget(m Modulation, initData []byte) (Target, error) {
	if d.d == nil {
		return nil, errors.New("Device closed")
	}

	var pnt C.nfc_target

	err := Error(C.nfc_initiator_select_passive_target(
		d.d,
		C.nfc_modulation{C.nfc_modulation_type(m.Type), C.nfc_baud_rate(m.BaudRate)},
		(*C.uint8_t)(&initData[0]),
		C.size_t(len(initData)),
		&pnt))

	return unmarshallTarget(&pnt), err
}
Example #2
0
// Select a passive or emulated tag.
func (d Device) InitiatorSelectPassiveTarget(m Modulation, initData []byte) (Target, error) {
	if *d.d == nil {
		return nil, errors.New("device closed")
	}

	var pnt C.nfc_target

	var initDataPtr *byte
	if len(initData) > 0 {
		initDataPtr = &initData[0]
	}

	n := C.nfc_initiator_select_passive_target(
		*d.d,
		C.nfc_modulation{C.nfc_modulation_type(m.Type), C.nfc_baud_rate(m.BaudRate)},
		(*C.uint8_t)(initDataPtr),
		C.size_t(len(initData)),
		&pnt)
	if n <= 0 {
		return nil, Error(n)
	}

	return unmarshallTarget(&pnt), nil
}