/* SPDX-License-Identifier: BSD-3-Clause */
/*
 * Copyright 2011 Raritan Inc. All rights reserved.
 */

/** Methods used during production */
module production {

    /** Methods used during production */
    interface Production {

        /**
         * Enter factory configuration mode.
         *
         * This mode unlocks several features which should only be available
         * during production, e.g. the RS485 address assignment or sensor
         * calibration. Factory configuration mode will be enabled until
         * the next reboot or until #leaveFactoryConfigMode is called.
         *
         * @param password  Password required to enter factory config mdoe.
         *
         * @return 0 if OK
         * @return 1 if the password is wrong
         */
        int enterFactoryConfigMode(in string password);

        /**
         * Leave factory configuration mode.
         */
        void leaveFactoryConfigMode();

        /**
         * Check whether device is in factory configuration mode.
         *
         * @return \c true if factory configuration mode is enabled
         */
        boolean isFactoryConfigModeEnabled();

    };

}
