static void Main(string[] args) { var existingWires = ".S.\n" + "...\n" + ".G."; Console.WriteLine(SG1.WireDHD(existingWires)); }
private void bReadCard_Click(object sender, EventArgs e) { DL_STATUS result = DL_STATUS.UNKNOWN_ERROR; //byte tlv_type; //uint record_length; //ushort bytes_read; byte[] type = new byte[256]; byte[] id = new byte[256]; byte[] payload = new byte[1000]; byte type_length, id_length, tnf; byte record_nr; byte message_cnt, record_cnt, empty_record_cnt; byte[] record_cnt_array = new byte[100]; DLOGIC_CARD_TYPE cardtype; string ct; int card_len; txtPayload.Clear(); cardtype = getcardtype(); // trim DL // _ to spc ct = String.Format("[{0:X}]", (int)cardtype); ct += " " + cardtype.ToString(); card_len = getcardlen(cardtype); if (cardtype == DLOGIC_CARD_TYPE.DL_NO_CARD) { statusResult.Text = ct; return; } NdefInfoCardType.Text = ct; unsafe { fixed(byte *pData = record_cnt_array) result = uFCoder.get_ndef_record_count(&message_cnt, &record_cnt, pData, &empty_record_cnt); } prn_status(result, "Read record count"); if (result != DL_STATUS.UFR_OK) { statusResult.Text = "Card is not initialized"; return; } NdefInfoMsgs.Text = "Msgs : " + message_cnt; NdefInfoRecs.Text = "Recs : " + record_cnt; NdefInfoEmpty.Text = "Empty: " + empty_record_cnt; // init table ! SG1.Rows.Clear(); txtPayload.Text = "Payload:"; //PB1.Max = record_cnt * 10; //PB1.Position = 0; uint payload_length; for (record_nr = 1; record_nr < record_cnt + 1; record_nr++) { //read_payload_length = 0; //memset(type, 0, 256); //memset(id, 0, 256); //memset(read_payload, 0, 1000); unsafe { fixed(byte *f_type = type) fixed(byte *f_id = id) fixed(byte *f_payload = payload) result = uFCoder.read_ndef_record(1, (byte)record_nr, &tnf, f_type, &type_length, f_id, &id_length, f_payload, &payload_length); } if (result != DL_STATUS.UFR_OK) { if (result == DL_STATUS.UFR_WRONG_NDEF_CARD_FORMAT) { statusResult.Text = " NDEF format error"; } else if (result == DL_STATUS.UFR_NDEF_MESSAGE_NOT_FOUND) { statusResult.Text = " NDEF message not found"; } else { statusResult.Text = " Error: " + result; } break; } string str_payload = System.Text.Encoding.UTF8.GetString(SubByteArray(payload, (int)payload_length)); string str_type = System.Text.Encoding.UTF8.GetString(SubByteArray(type, (int)type_length)); string str_tnf = "TNF: " + System.Convert.ToString(tnf); //--------------------------------------------------------------------------- string[] row = { record_nr.ToString(), str_type.ToString(), payload_length.ToString(), str_payload }; SG1.Rows.Add(row); //PB1.Position = (1 + i) * 10; NdefInfoTNF.Text = str_tnf; statusResult.Text = " Reading " + record_nr + "/" + record_cnt; } //for i SG1.Update(); //PB1.Position = 0; statusResult.Text = "Reading DONE!"; if (message_cnt == 0 && empty_record_cnt == 0) { statusResult.Text = "Card must be formatted first!"; } else { if (message_cnt == 1 && empty_record_cnt == 1) { statusResult.Text = "NFC formatted! Ready for use..."; } } }