Я пытаюсь преобразовать arduino lib в универсальную платформу Windows, но у меня есть запас на преобразование байтов [] в байты *.
Например:
public bool readCardSerial()
{
byte status;
byte[] str = new byte[MAX_LEN];
status = anticoll(str);
Array.Copy(serNum, str, 5);
return (status == MI_OK);
}
public unsafe byte anticoll(byte* serNum)
{
byte status;
byte i;
byte serNumCheck = 0;
uint unLen;
writeMFRC522(BitFramingReg, 0x00);
serNum[0] = PICC_ANTICOLL;
serNum[1] = 0x20;
status = MFRC522ToCard(PCD_TRANSCEIVE, serNum, 2, serNum, &unLen);
if (status == MI_OK)
{
for (i = 0; i < 4; i++)
serNumCheck ^= serNum[i];
if (serNumCheck != serNum[i])
status = MI_ERR;
}
return status;
}
Str var в функции readCardSerial — одна из таких ошибок.
У меня есть код на github, если это необходимо — https://github.com/watashimeandeu/rfid.uwp
Спасибо
Проверьте следующие ссылки, они отвечают на аналогичный вопрос:
Как назначить байт [] в качестве указателя в C #
C # байтовый массив для фиксированного указателя int
Вам нужно что-то вроде, получить byte[]
в методе, а затем сделать назначение
fixed(byte *packet = packetArray)
{
... etc
}
Других решений пока нет …