PyObject *Mifare_read_block(Mifare * self, PyObject * args) { uint8_t blockIdx; if (!PyArg_ParseTuple(args, "b", &blockIdx)) { return NULL; } phStatus_t status = 0; status = phalMful_Read(&salMfc, blockIdx, bDataBuffer); if (status != PH_ERR_SUCCESS) { return PyErr_Format(ReadError, "Read failed: %04x", status); } #if PY_MAJOR_VERSION >= 3 return Py_BuildValue("y#", &bDataBuffer[0], MFC_BLOCK_DATA_SIZE); #else return Py_BuildValue("s#", &bDataBuffer[0], MFC_BLOCK_DATA_SIZE); #endif }
PyObject *Mifare_read_block(Mifare *self, PyObject *args) { const size_t bufferSize = PHAL_MFUL_READ_BLOCK_LENGTH; uint8_t data[bufferSize]; uint8_t blockIdx; phStatus_t status; if (!PyArg_ParseTuple(args, "b", &blockIdx)) { return NULL; } status = phalMful_Read(&self->data.alMful, blockIdx, data); if (status != PH_ERR_SUCCESS) { return PyErr_Format(ReadError, "Read failed: %04x", status); } #if PY_MAJOR_VERSION >= 3 return Py_BuildValue("y#", data, bufferSize); #else return Py_BuildValue("s#", data, bufferSize); #endif }