private void btnGetFirmwareVersion_Click(object sender, RoutedEventArgs e)
{
Task.Run(() =>
{
string firmwareVersion = "";
byte[] reData = { };
RETURN_CODE rt = IDT_Augusta.SharedController.device_getFirmwareVersion(ref firmwareVersion);
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
{
tbOutput.Text += "Firmware Ver: " + firmwareVersion + "\r\n";
System.Diagnostics.Debug.WriteLine("Firmware Ver: " + firmwareVersion);
}
else
{
tbOutput.Text += "Get Firmware Fail Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt) + ": " + IDTechSDK.errorCode.getErrorString(rt) + "\r\n";
System.Diagnostics.Debug.WriteLine("Get Firmware Fail Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt));
}
});
}
private void btnGetICCStatus_Click(object sender, RoutedEventArgs e)
{
Task.Run(() =>
{
byte status = 0;
RETURN_CODE rt = IDT_Augusta.SharedController.icc_getICCReaderStatus(ref status);
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
{
byte bit0 = (byte)(status & 0x01);
byte bit1 = (byte)((status & 0x02) >> 1);
tbOutput.Text += "ICC Reader Status : " + (bit0 == 1 ? "[ICC Powered] " : "[ICC Power Not Ready] ") + (bit1 == 1 ? "[Card Seated]" : "[Card Not Seated]") + "\r\n";
System.Diagnostics.Debug.WriteLine("ICC Reader Status : " + (bit0 == 1 ? "[ICC Powered] " : "[ICC Power Not Ready] ") + (bit1 == 1 ? "[Card Seated]" : "[Card Not Seated]"));
}
else
{
tbOutput.Text += "Get ICC Reader Status Failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt) + ": " + IDTechSDK.errorCode.getErrorString(rt) + "\r\n";
System.Diagnostics.Debug.WriteLine("Get ICC Reader Status Failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt));
}
});
}
private void btnPowerOnICC_Click(object sender, RoutedEventArgs e)
{
Task.Run(() =>
{
byte[] ATR = null;
RETURN_CODE rt = IDT_Augusta.SharedController.icc_powerOnICC(ref ATR);
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
{
tbOutput.Text += "ATR:" + string.Concat(ATR.ToArray().Select(b => b.ToString("X2")).ToArray()) + "\r\n";
tbOutput.Text += "ICC Powered On successfully\r\n";
System.Diagnostics.Debug.WriteLine("ICC Powered On successfully\r\n");
}
else
{
tbOutput.Text += "ICC Powered On failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt) + ": " + IDTechSDK.errorCode.getErrorString(rt) + "\r\n";
System.Diagnostics.Debug.WriteLine("ICC Powered On failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt));
}
});
}
private void btnPowerOffICC_Click(object sender, RoutedEventArgs e)
{
Task.Run(() =>
{
RETURN_CODE rt = IDT_Augusta.SharedController.icc_powerOffICC();
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
{
tbOutput.Text += "ICC Powered Off successfully\r\n";
System.Diagnostics.Debug.WriteLine("ICC powered Off successfully");
}
else
{
tbOutput.Text += "ICC Powered Off failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt) + ": " + IDTechSDK.errorCode.getErrorString(rt) + "\r\n";
System.Diagnostics.Debug.WriteLine("ICC powered Off failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt));
}
});
}
private void btnSetTerminalData_Click(object sender, RoutedEventArgs e)
{
Task.Run(() =>
{
byte[] term = Common.getByteArray("5f3601029f1a0208409f3501229f330360f8c89f4005f00000a0019f1e085465726d696e616c9f150212349f160f3030303030303030303030303030309f1c0838373635343332319f4e2231303732312057616c6b65722053742e20437970726573732c204341202c5553412edf260101df1008656e667265737a68df110101df270100dfee150101dfee160100dfee170107dfee180180dfee1e08f0dc3cf0c29e9400dfee1f0180dfee1b083030303135313030dfee20013cdfee21010adfee2203323c3c");
RETURN_CODE rt = IDT_Augusta.SharedController.emv_setTerminalData(term);
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
{
tbOutput.Text += "Set Terminal Successful:" + " \r\n";
System.Diagnostics.Debug.WriteLine("Set Terminal Successful");
}
else
{
tbOutput.Text += "Save Terminal failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt) + ": " + IDTechSDK.errorCode.getErrorString(rt) + "\r\n";
System.Diagnostics.Debug.WriteLine("Save Terminal failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt));
}
});
}
private void btnGetTerminalData_Click(object sender, RoutedEventArgs e)
{
Task.Run(() =>
{
byte[] tlv = null;
RETURN_CODE rt = IDT_Augusta.SharedController.emv_retrieveTerminalData(ref tlv);
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
{
tbOutput.Text += "Retrieve Terminal Successful- TLV: " + " \r\n" + Common.getHexStringFromBytes(tlv) + "\r\n";
System.Diagnostics.Debug.WriteLine("Retrieve Terminal Successful- TLV: " + " \r\n" + Common.getHexStringFromBytes(tlv));
}
else
{
tbOutput.Text += "Retrieve Terminal failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt) + ": " + IDTechSDK.errorCode.getErrorString(rt) + "\r\n";
System.Diagnostics.Debug.WriteLine("Retrieve Terminal failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt));
}
});
}
private void btnSetVisaAID_Click(object sender, RoutedEventArgs e)
{
Task.Run(() =>
{
RETURN_CODE rt;
byte[] name = Common.getByteArray("a0000000031010");
byte[] aid = Common.getByteArray("9f01065649534130305f5701005f2a0208409f090200965f3601029f1b0400003a98df25039f3704df28039f0802dfee150101df13050000000000df14050000000000df15050000000000df180100df170400002710df190100");
rt = IDT_Augusta.SharedController.emv_setApplicationData(name, aid);
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
{
tbOutput.Text += ("Default AID Successful\r\n");
System.Diagnostics.Debug.WriteLine("Default AID Successful");
}
else
{
tbOutput.Text += "Default AID failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt) + ": " + IDTechSDK.errorCode.getErrorString(rt) + "\r\n";
System.Diagnostics.Debug.WriteLine("Default AID failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt));
}
});
}
private void btnGetVisaAID_Click(object sender, RoutedEventArgs e)
{
Task.Run(() =>
{
byte[] tlv = null;
RETURN_CODE rt = IDT_Augusta.SharedController.emv_retrieveApplicationData(Common.getByteArray("a0000000031010"), ref tlv);
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
{
tbOutput.Text += "Retrieve AID Successful- TLV: " + " \r\n" + Common.getHexStringFromBytes(tlv) + " \r\n";
System.Diagnostics.Debug.WriteLine("Retrieve AID Successful- TLV: " + " \r\n" + Common.getHexStringFromBytes(tlv));
}
else
{
tbOutput.Text += "Retrieve AID failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt) + ": " + IDTechSDK.errorCode.getErrorString(rt) + "\r\n";
System.Diagnostics.Debug.WriteLine("Retrieve AID failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt));
}
});
}
private void btnSetVisaCAPKs_Click(object sender, RoutedEventArgs e)
{
Task.Run(() =>
{
byte[] capk = Common.getByteArray("a000000003500101b769775668cacb5d22a647d1d993141edab7237b000100018000d11197590057b84196c2f4d11a8f3c05408f422a35d702f90106ea5b019bb28ae607aa9cdebcd0d81a38d48c7ebb0062d287369ec0c42124246ac30d80cd602ab7238d51084ded4698162c59d25eac1e66255b4db2352526ef0982c3b8ad3d1cce85b01db5788e75e09f44be7361366def9d1e1317b05e5d0ff5290f88a0db47");
RETURN_CODE rt = IDT_Augusta.SharedController.emv_setCAPK(capk);
capk = Common.getByteArray("a000000003510101b9d248075a3f23b522fe45573e04374dc4995d71000000039000db5fa29d1fda8c1634b04dccff148abee63c772035c79851d3512107586e02a917f7c7e885e7c4a7d529710a145334ce67dc412cb1597b77aa2543b98d19cf2cb80c522bdbea0f1b113fa2c86216c8c610a2d58f29cf3355ceb1bd3ef410d1edd1f7ae0f16897979de28c6ef293e0a19282bd1d793f1331523fc71a228800468c01a3653d14c6b4851a5c029478e757f");
rt = IDT_Augusta.SharedController.emv_setCAPK(capk);
capk = Common.getByteArray("a000000003530101ac213a2e0d2c0ca35ad0201323536d58097e4e5700000003f800bcd83721be52cccc4b6457321f22a7dc769f54eb8025913be804d9eabbfa19b3d7c5d3ca658d768caf57067eec83c7e6e9f81d0586703ed9dddadd20675d63424980b10eb364e81eb37db40ed100344c928886ff4ccc37203ee6106d5b59d1ac102e2cd2d7ac17f4d96c398e5fd993ecb4ffdf79b17547ff9fa2aa8eefd6cbda124cbb17a0f8528146387135e226b005a474b9062ff264d2ff8efa36814aa2950065b1b04c0a1ae9b2f69d4a4aa979d6ce95fee9485ed0a03aee9bd953e81cfd1ef6e814dfd3c2ce37aefa38c1f9877371e91d6a5eb59fdedf75d3325fa3ca66cdfba0e57146cc789818ff06be5fcc50abd362ae4b80996d");
rt = IDT_Augusta.SharedController.emv_setCAPK(capk);
capk = Common.getByteArray("a0000000039601017616e9ac8be014af88ca11a8fb17967b7394030e000000038000b74586d19a207be6627c5b0aafbc44a2ecf5a2942d3a26ce19c4ffaeee920521868922e893e7838225a3947a2614796fb2c0628ce8c11e3825a56d3b1bbaef783a5c6a81f36f8625395126fa983c5216d3166d48acde8a431212ff763a7f79d9edb7fed76b485de45beb829a3d4730848a366d3324c3027032ff8d16a1e44d8d");
rt = IDT_Augusta.SharedController.emv_setCAPK(capk);
capk = Common.getByteArray("a000000003570101251a5f5de61cf28b5c6e2b5807c0644a01d46ff5000100016000942b7f2ba5ea307312b63df77c5243618acc2002bd7ecb74d821fe7bdc78bf28f49f74190ad9b23b9713b140ffec1fb429d93f56bdc7ade4ac075d75532c1e590b21874c7952f29b8c0f0c1ce3aeedc8da25343123e71dcf86c6998e15f756e3");
rt = IDT_Augusta.SharedController.emv_setCAPK(capk);
capk = Common.getByteArray("a000000003580101753ed0aa23e4cd5abd69eae7904b684a34a57c2200010001c80099552c4a1ecd68a0260157fc4151b5992837445d3fc57365ca5692c87be358cdcdf2c92fb6837522842a48eb11cdffe2fd91770c7221e4af6207c2de4004c7dee1b6276dc62d52a87d2cd01fbf2dc4065db52824d2a2167a06d19e6a0f781071cdb2dd314cb94441d8dc0e936317b77bf06f5177f6c5aba3a3bc6aa30209c97260b7a1ad3a192c9b8cd1d153570afcc87c3cd681d13e997fe33b3963a0a1c79772acf991033e1b8397ad0341500e48a24770bc4cbe19d2ccf419504fdbf0389bc2f2fdcd4d44e61f");
rt = IDT_Augusta.SharedController.emv_setCAPK(capk);
capk = Common.getByteArray("a00000000354010106960618791a86d387301edd4a3baf2d34fef1b400010001f800c6ddc0b7645f7f16286ab7e4116655f56dd0c944766040dc68664dd973bd3bfd4c525bcbb95272b6b3ad9ba8860303ad08d9e8cc344a4070f4cfb9eeaf29c8a3460850c264cda39bbe3a7e7d08a69c31b5c8dd9f94ddbc9265758c0e7399adcf4362caee458d414c52b498274881b196dacca7273f687f2a65faeb809d4b2ac1d3d1efb4f6490322318bd296d153b307a3283ab4e5be6ebd910359a8565eb9c4360d24baaca3dbfe393f3d6c830d603c6fc1e83409dfcd80d3a33ba243813bbb4ceaf9cbab6b74b00116f72ab278a88a011d70071e06cab140646438d986d48281624b85b3b2ebb9a6ab3bf2178fcc3011e7caf24897ae7d");
rt = IDT_Augusta.SharedController.emv_setCAPK(capk);
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
{
tbOutput.Text += "Load Visa CAPK Successful:" + " \r\n";
System.Diagnostics.Debug.WriteLine("Load Visa CAPK Successful");
}
else
{
tbOutput.Text += "Load Visa CAPK failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt) + ": " + IDTechSDK.errorCode.getErrorString(rt) + "\r\n";
System.Diagnostics.Debug.WriteLine("Load Visa CAPK failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt));
}
});
}
private void btnListCAPKs_Click(object sender, RoutedEventArgs e)
{
Task.Run(() =>
{
byte[] capk = null;
RETURN_CODE rt = IDT_Augusta.SharedController.emv_retrieveCAPKList(ref capk);
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
{
tbOutput.Text += "List CAPK Successful\r\n";
System.Diagnostics.Debug.WriteLine("List CAPK Successful");
if (capk.Length > 0)
{
for (int x = 0; x < capk.Length; x = x + 6)
{
byte[] thecapk = new byte[] { capk[x], capk[x + 1], capk[x + 2], capk[x + 3], capk[x + 4], capk[x + 5] };
tbOutput.Text += Common.getHexStringFromBytes(thecapk) + " \r\n";
}
}
}
else
{
tbOutput.Text += "List CAPK failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt) + ": " + IDTechSDK.errorCode.getErrorString(rt) + "\r\n";
System.Diagnostics.Debug.WriteLine("List CAPK failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt));
}
});
}
private void btnStartEMVTransaction_Click(object sender, RoutedEventArgs e)
{
Task.Run(() =>
{
byte[] additionalTags = new byte[] { 0x8E, 0x5A };
RETURN_CODE rt = IDT_Augusta.SharedController.emv_startTransaction(1.00, 0, 0, 0, 30, additionalTags, false);
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
{
tbOutput.Text += "Start EMV Successful\r\n";
System.Diagnostics.Debug.WriteLine("Start EMV Successful");
}
else
{
tbOutput.Text += "Start EMV failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt) + ": " + IDTechSDK.errorCode.getErrorString(rt) + "\r\n";
System.Diagnostics.Debug.WriteLine("Start EMV failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt));
}
});
}
private void btnCancelEMVTransaction_Click(object sender, RoutedEventArgs e)
{
Task.Run(() =>
{
RETURN_CODE rt = IDT_Augusta.SharedController.emv_cancelTransaction();
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
{
tbOutput.Text += "Cancel Transaction Successful\r\n";
System.Diagnostics.Debug.WriteLine("Cancel Transaction Successful");
}
else
{
tbOutput.Text += "Cancel Transaction failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt) + ": " + IDTechSDK.errorCode.getErrorString(rt) + "\r\n";
System.Diagnostics.Debug.WriteLine("Cancel Transaction failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt));
}
});
}
private void btnStartSwipe_Click(object sender, RoutedEventArgs e)
{
Task.Run(() =>
{
RETURN_CODE rt = IDT_Augusta.SharedController.msr_startMSRSwipe(60);
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
{
tbOutput.Text += "MSR Turned On successfully; Ready to swipe\r\n";
System.Diagnostics.Debug.WriteLine("MSR Turned On successfully; Ready to swipe");
}
else
{
tbOutput.Text += "MSR Turned On failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt) + ": " + IDTechSDK.errorCode.getErrorString(rt) + "\r\n";
System.Diagnostics.Debug.WriteLine("MSR Turned On failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt));
}
});
}
private void btnCancelSwipe_Click(object sender, RoutedEventArgs e)
{
Task.Run(() =>
{
RETURN_CODE rt = IDT_Augusta.SharedController.msr_cancelMSRSwipe();
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
{
tbOutput.Text += "MSR Turned Off successfully\r\n";
System.Diagnostics.Debug.WriteLine("MSR Turned Off successfully");
}
else
{
tbOutput.Text += "MSR Turned Off failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt) + ": " + IDTechSDK.errorCode.getErrorString(rt) + "\r\n";
System.Diagnostics.Debug.WriteLine("MSR Turned Off failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt));
}
});
}