The C# sample code is attached for TNA configuration with 'TNA required' & by user.
The code test is done with 2.6.3.16 & 2.6.3.19 + N2 FW 1.2.0.
For more information, please refer to the link - BS2_SetTNAConfig
public void TNAConfigTest(IntPtr sdkContext, UInt32 deviceID, bool isMasterDevice) { string ipAddress = "192.168.13.201";// "192.168.13.195"; IntPtr ptrIPAddr = Marshal.StringToHGlobalAnsi(ipAddress); ushort port = 51211; uint deviceId = 0; IntPtr versionPtr = API.BS2_Version(); Console.WriteLine("SDK version : {0}" + Marshal.PtrToStringAnsi(versionPtr)); IntPtr context = IntPtr.Zero; context = API.BS2_AllocateContext(); if (context == null) //Returns NULL when there is not enough system memory { //textBox1.Text = "No memory!"; Console.WriteLine("No memory!"); } else // if not, returns the allocated Context. { //textBox1.Text = "Allocate context successfully"; Console.WriteLine("Allocate context successfully"); } BS2ErrorCode result = (BS2ErrorCode)API.BS2_Initialize(context); if (result == BS2ErrorCode.BS_SDK_SUCCESS) { Console.WriteLine("Initialization succeeded"); } else { Console.WriteLine("failed to initialize error code"); //textBox1.Text = "failed to initialize error code"; } result = (BS2ErrorCode)API.BS2_ConnectDeviceViaIP(context, ptrIPAddr, port, out deviceId); if (result == BS2ErrorCode.BS_SDK_SUCCESS) { Console.WriteLine("Connecting to device succeeded"); Console.ReadKey(); } else { Console.WriteLine("Connecting to device failed : {0}", result); Console.ReadKey(); } BS2TNAConfig tnaConfig = Util.AllocateStructure<BS2TNAConfig>(); tnaConfig.tnaInfo.tnaMode = 1; // by user tnaConfig.tnaInfo.tnaKey = 0; // not specified because of tnaMode = by user tnaConfig.tnaInfo.tnaRequired = 1; //label name - 2 Array.Clear(tnaConfig.tnaExtInfo.tnaLabel, 0, BS2Environment.BS2_MAX_TNA_KEY * BS2Environment.BS2_MAX_TNA_LABEL_LEN); Console.WriteLine("Do you want to set 1st lebel name? [Y/n]"); Console.Write(">>>> "); if (Util.IsYes()) { Console.WriteLine("Enter the 1st label name"); Console.Write(">>>> "); string lebelname = Console.ReadLine(); if (lebelname.Length == 0) { Console.WriteLine("[Warning] label name will be displayed as empty."); } else if (lebelname.Length > BS2Environment.BS2_MAX_TNA_LABEL_LEN) { Console.WriteLine("The label name should less than {0} words.", BS2Environment.BS2_MAX_TNA_LABEL_LEN); return; } else { byte[] LabelNameArray = Encoding.UTF8.GetBytes(lebelname); Array.Copy(LabelNameArray, tnaConfig.tnaExtInfo.tnaLabel, LabelNameArray.Length); } } result = (BS2ErrorCode)API.BS2_SetTNAConfig(context, deviceId, ref tnaConfig); if (result != BS2ErrorCode.BS_SDK_SUCCESS) { Console.WriteLine("Got error({0}).", result); } else { Console.WriteLine("TNA is configured successfully", result); } }