SDK Flags Descriptions

The vmc_configuration object allows you to set various configuration flags. When using the Marshall SDK, these determine the vending machine controller's (VMC) behavior and capabilities.

Flags descriptions

You can initiate these flags in the main method, as in the following code:

public static void main(string[] args) {
    vmc_config.multi_vend_support = false;
    vmc_config.multi_session_support = false;
    vmc_config.price_not_final_support = true;
    vmc_config.reader_always_on = false;
    vmc_config.always_idle = false;
    vmc_config.vend_denied_policy = vmc_configuration.vend_denied_policy_cancel;

    vmc_config.mifare_approved_by_vmc_support = false;
    vmc_config.mag_card_approved_by_vmc_support = false;

    vmc_config.dump_packets_level = vmc_configuration.debug_level_dump_moderate;
    vmc_config.debug = true;
}
public class vend_machine
    vmc_config.multi_session_support = false;
    vmc_config.multi_vend_support = false;
    vmc_config.price_not_final_support = false;
    vmc_config.reader_always_on = false;
    vmc_config.always_idle = false;
    vmc_config.vend_denied_policy = vmc_configuration.vend_denied_policy_cancel;

    vmc_config.mag_card_approved_by_vmc_support = false;
    vmc_config.mifare_approved_by_vmc_support = false;

    vmc_config.debug = true;
    vmc_config.dump_packets_level = vmc_configuration.debug_level_dump_moderate;

vmc_config_t vmc_config;
  vmc_config.multi_session_support = __false;
  vmc_config.multi_vend_support = __false;
  vmc_config.price_not_final_support = __false;
  vmc_config.reader_always_on = __false;
  vmc_config.always_idle = __false;
  vmc_config.vend_denied_policy = vend_denied_policy_cancel_e;
  vmc_config.mag_card_approved_by_vmc_support = __false;
  vmc_config.mifare_approved_by_vmc_support = __false;
  vmc_config.qr_approved_by_vmc_support = __false;
  vmc_config.debug = __true;
  vmc_config.dump_packets_level = debug_level_dump_moderate;

where:

  • multi_vend_support (boolean): Allows the peripheral to support multiple vendors, which allows multiple products to be sold in a single transaction.
  • multi_session_support (boolean): Enables the device to handle multiple sessions simultaneously, which is useful for scenarios where multiple transactions might be open simultaneously.
  • price_not_final_support (boolean): Indicates that the price received from the server is not final, similar to a pre-authorization process, ensuring the balance isn't captured for a few days.
  • reader_always_on (boolean): It keeps the device's reader always turned on and ready to accept card transactions.
  • always_idle (boolean): The transaction starts with the consumer selecting a product on the peripheral. The peripheral can send the "Vend request" command without waiting for a "Begin Session" trigger.
  • mifare_approved_by_vmc_support (boolean): Allows Mifare (prepaid) cards authorized by a third-party server.
  • mag_card_approved_by_vmc_support (boolean): Allows magnetic stripe credit cards authorized by a third-party server.
  • debug (boolean): Enables or disables log generation.
  • dump_packets_level (vmc_configuration): Determines the level of detail required to log messages generated by the SDK. See Log generation for more details.