Как отправить реле с RFID-сканером для контроля доступа? - PullRequest
0 голосов
/ 01 октября 2019

Я новичок в аппаратном программировании, мне нужна помощь, я хочу создать программу для контроля доступа с использованием RFID-сканера и магнитного замка, микроконтроллер оснащен RFID-сканером, программа может читать журнал сканированияи записать его в базу данных, но он по-прежнему не может прочитать разрешение пользователя на открытие магнитного замка.

Это мой код для сканирования карты RFID

void EPCMultiTagInventory()
        {
            int TagCount = 0;
            int CntGot = 0;
            int GetCount = 0;
            int i, j = 0;
            int status = 0;
            string EPC = "";
            string datau = "";
            string statusu = "";
            BufferData[] data = new BufferData[1024];
            for(int index = 0; index < data.Length;index++)
            {
                data[index].Data = new byte[512];    
            }
            status = rfid_sp.GEN2_MultiTagInventory(CS, ref TagCount, 
0xFF);
        if(0x00 == status)
        {
            while(CntGot < TagCount)
            {
                status = rfid_sp.BufferM_GetTagData(CS, ref GetCount, data, 0xFF);
                if(0x00 == status)
                {
                    if(GetCount <= 0)
                    {
                        break;
                    }
                    for(i=0;i<GetCount;i++)
                    {
                        EPC = string.Format("{0:X2}{1:X2}{2:X2}{3:X2}{4:X2}{5:X2}{6:X2}{7:X2}{8:X2}{9:X2}{10:X2}{11:X2}",
                            data[i].Data[0], data[i].Data[1], data[i].Data[2], data[i].Data[3],
                            data[i].Data[4], data[i].Data[5], data[i].Data[6], data[i].Data[7],
                            data[i].Data[8], data[i].Data[9], data[i].Data[10], data[i].Data[11]);
                        if(lsvScan.Items.Count <=0)
                        {
                            list_data(EPC);
                            insert_data();
                        }
                        else
                        {
                            int flg = -1;
                            for(j = 0;j<lsvScan.Items.Count;j++)
                            {
                                if(EPC == lsvScan.Items[j].SubItems[1].Text)
                                {
                                    lsvScan.Items[j].SubItems[2].Text = Convert.ToString(Convert.ToInt32(lsvScan.Items[j].SubItems[2].Text) + 1);
                                    flg = i;
                                }
                            }
                            if(flg<0)
                            {
                                list_data(EPC);
                                DisplayCnt++;
                            }
                        }
                    }
                }
            }
        }
    }

Может кто-нибудь помочь? Что я должен делать? Спасибо
(Извините, если мой английский плох)

...