using System; using phcs_TedKit2; namespace com.nxp.cai.tedkit2 { class Example { /** * Evaluates the given status code and prints message in case it is * different than PHTEDKITSTATUS_OK. * * @param status The status code being evaluated. * @return Returns true if status is PHTEDKITSTATUS_SUCCESS, false * otherwise. */ private static bool evalStatus(ushort status) { if (status != API.ReturnCode.PHTEDKITSTATUS_OK) { Console.WriteLine( "Error code " + status + "(0x" + status + ") returned."); return false; } return true; } public static int Main(string[] args) { API api = null; try { // An instance of the API library. api = new API(); // An instance of the I/O data structure used to exchange data with // the TED-Kit 2 Library. API.IOData ioData = new API.IOData(); // Ask for all connected FTDI devices. ioData.Function = API.Function.PHTEDKITIOFKT_GET_DEVICE_NUMBER; api.Run(API.Layer.PHTEDKITCOMPID_IO, ioData); if (!evalStatus(ioData.StatusCode)) { Console.WriteLine("Unable to retreive connected devices."); return 1; } Console.WriteLine( "Number of devices found: " + ioData.DeviceNum + "\n"); // make sure at least one device is available if (ioData.DeviceNum == 0) { Console.WriteLine("No TED-Kit-2 detected, tests aborted."); return 1; } // list all FTDI devices connected and use the first // with the vendor-and-product ID for NXP TED-Kit-2 found ushort index = 0; Boolean found = false; ioData.Function = API.Function.PHTEDKITIOFKT_GET_DEVICE_INFODETAIL; for (ushort i = 0; i < ioData.DeviceNum; i++) { ioData.Port = i; api.Run(API.Layer.PHTEDKITCOMPID_IO, ioData); if (evalStatus(ioData.StatusCode)) { Console.WriteLine("No : {0}", i); Console.WriteLine("Flags : {0}", ioData.Flags); Console.WriteLine("Type : {0}", ioData.Type); Console.WriteLine("DeviceID : {0:X}", ioData.ID); Console.WriteLine("LocID : {0}", ioData.LocId); Console.WriteLine("SerialNumber : {0}", API.toString(ioData.SerialNumber)); Console.WriteLine("Description : {0}", API.toString(ioData.Description)); if ((ioData.ID == API.PHTEDKITUSB_VIDPID) && !found) { found = true; index = i; } } else { Console.WriteLine( "Unable to retreive information for device #{0}", i); Console.WriteLine(); } } if (!found) { Console.WriteLine( "No NXP TED-Kit-2 device found, test aborted."); return 1; } Console.WriteLine("Device being used: #{0}", index); // open the device Console.WriteLine(); Console.WriteLine("Open"); ioData.Port = index; ioData.Function = API.Function.PHTEDKITIOFKT_OPEN; ioData.OpenMode = API.PHTEDKITIOFKT_NORMAL_OPERATION; api.Run(API.Layer.PHTEDKITCOMPID_IO, ioData); if (!evalStatus(ioData.StatusCode)) { Console.WriteLine("Unable to open device #{0}", index); return 1; } // //////////////////////////////////////////////////////////////// API.BaseData baseData = new API.BaseData(); // GetFWVersion Console.WriteLine(); Console.WriteLine("GetFWVersion"); baseData.Function = API.Function.PHTEDKITBASEAPIFKT_GETFWVERSION; api.Run(API.Layer.PHTEDKITCOMPID_BASEAPI, baseData); if (evalStatus(baseData.StatusCode)) { Console.WriteLine("Firmware Code : {0}", baseData.RxData1); Console.WriteLine("Firmware Version : {0}.{1}", baseData.RxData2, baseData.RxData3); } // //////////////////////////////////////////////////////////////// // close the device Console.WriteLine(); Console.WriteLine("Closing device #{0}.", index); ioData.Function = API.Function.PHTEDKITIOFKT_CLOSE; api.Run(API.Layer.PHTEDKITCOMPID_IO, ioData); if (!evalStatus(ioData.StatusCode)) { Console.WriteLine("Unable to close device #{0}.", index); return 1; } } finally { if (api != null) { api.dispose(); } } return 0; } } }