public Payment_ROI_IPP350(ILogger logger = null)
        {
            this.logger = logger;

            paymentStatus = new PaymentStatus();

            communicator = new Communicator(logger);

            DriverLocation = $@"C:\Acrelec\Core\Peripherals\Payments\Drivers\{PAYMENT_NAME}\{DriverVersion}\Driver\{DRIVER_FOLDER_NAME}";

            //Create the object that is in charge with the sevice management
            c3NetManager = new C3NetManager(logger, DriverLocation);

            //Hook the payment callback to the current callback
            communicator.CommunicatorCallbacks = this;

            //COM PORT
            comPort             = new AdminPeripheralSetting();
            comPort.ControlName = "COM Port";
            comPort.RealName    = "L10_COM";
            //comPort.SettingFileName = C3NET_CONFIG;
            comPort.CurrentValue = "";
            comPort.ControlType  = SettingDataType.SerialPortSelection;

            terminalID                    = new AdminPeripheralSetting();
            terminalID.ControlType        = SettingDataType.String;
            terminalID.ControlName        = "Terminal ID";
            terminalID.RealName           = "QTPV";
            terminalID.CurrentValue       = ""; //Set a default application name
            terminalID.ControlDescription = "The payment terminal ID.";

            //Init the Axis 1
            first_server                    = new AdminPeripheralSetting();
            first_server.ControlName        = "Communication Server 1";
            first_server.RealName           = "AXIS_COM";
            first_server.SettingFileName    = C3NET_CONFIG;
            first_server.ControlDescription = "Ingenico communication Server. Example: 111.121.131.141 1234.";
            first_server.CurrentValue       = "0.0.0.0 0000";
            first_server.SetttingSection    = "";
            first_server.ControlType        = SettingDataType.String;

            Dictionary <string, object> dict = new Dictionary <string, object>();

            dict.Add("EUR", "Euro");
            dict.Add("GBP", "Pound");
            currency                    = new AdminPeripheralSetting();
            currency.ControlType        = SettingDataType.SingleSelection;
            currency.ControlName        = "Currency";
            currency.RealName           = "Currency";
            currency.CurrentValue       = "GBP";
            currency.PossibleValues     = dict;
            currency.ControlDescription = "Flag that will control the currency of the payment.";

            //Init the Axis 2

            second_server                    = new AdminPeripheralSetting();
            second_server.ControlName        = "Communication Server 2";
            second_server.RealName           = "AXIS_COM2";
            second_server.SettingFileName    = C3NET_CONFIG;
            second_server.ControlDescription = "Ingenico secondary communication Server. Example: 111.121.131.141 1234.";
            second_server.CurrentValue       = "0.0.0.0 0000";
            second_server.SetttingSection    = "";
            second_server.ControlType        = SettingDataType.String;

            /// Idle Message line one
            messageLineOne                 = new AdminPeripheralSetting();
            messageLineOne.ControlName     = "Welcome Message Line 1";
            messageLineOne.RealName        = "REPOS_1";
            messageLineOne.SettingFileName = C3NET_CONFIG;
            messageLineOne.CurrentValue    = IniFilesSimple.ReadString("REPOS_1", "", Path.Combine(DriverLocation, C3NET_CONFIG));
            messageLineOne.SetttingSection = "";
            messageLineOne.ControlType     = SettingDataType.String;

            /// Idle Message line two
            messageLineTwo                 = new AdminPeripheralSetting();
            messageLineTwo.ControlName     = "Welcome Message Line 2";
            messageLineTwo.RealName        = "REPOS_2";
            messageLineTwo.SettingFileName = C3NET_CONFIG;
            messageLineTwo.CurrentValue    = IniFilesSimple.ReadString("REPOS_2", "", Path.Combine(DriverLocation, C3NET_CONFIG));
            messageLineTwo.SetttingSection = "";
            messageLineTwo.ControlType     = SettingDataType.String;

            //CARD APPLICATIONS
            cardApplications                    = new AdminPeripheralSetting();
            cardApplications.ControlName        = "ACTIVE APPLICATIONS";
            cardApplications.RealName           = "CARTES";
            cardApplications.SettingFileName    = C3NET_CONFIG;
            cardApplications.CurrentValue       = "ADM CLS";
            cardApplications.SetttingSection    = "";
            cardApplications.ControlDescription = "Applications that will be active after the initialization of the terminal. Example: ADM EMV SSC";
            cardApplications.ControlType        = SettingDataType.String;

            currentPaymentInitConfig = new Payment
            {
                PaymentName           = PAYMENT_NAME,
                DriverFolderName      = DRIVER_FOLDER_NAME,
                ConfigurationSettings = new List <AdminPeripheralSetting>(),
                Id   = PAYMENT_ID,
                Type = PAYMENT_TYPE.ToString()
            };
        }