Package: semi-ate-master-app
Semi-ATESemiconductorAutomatedTestEquipmentSemi-ATEis a tester- and instrumentsAGNOSTICframework forSemiconductorATEASIC testing projects.This means that the system isnotbuild around a specific instrument (let's consider an ATE tester for a moment as a super instrument), it rather focuses on
organizing semiconductor testing in such a way thatalluse- (and special) corner cases have their well known place. This enables the users (read: DE's, TCE's, TE's & PE's) to focus on theREALwork, being the writing of good, fast and stable tests. Organizing tests into test-programs and test-programs in to flows is handled by wizards, so the only code that needs writing is the actual test! (motto:Code is our enemy)TheSemi-ATEpackage is written purely in Python (noarch) and provides besides libraries also a plugin to theSpyderIDE.PackagesThe Semi-ATE project is maintained in this single repository, however it is released as a set of packages (all with the same version number) to accomodate the different use-cases.Package NamePyPI Versionconda VersionfeedstockSemi-ATE-commonSemi-ATE-project-databaseSemi-ATE-sammySemi-ATE-pluginsSemi-ATE-testersSemi-ATE-spyderSemi-ATE-apps-commonSemi-ATE-control-appSemi-ATE-master-appSemi-ATE-test-appSemi-ATE-installer3rd party packages needed:mosquitto:Installation (on a MiniSCT)login as sct/sctin the home directory there should be a directoryreposinreposthere is aSemi-ATEdirectory (holding the relevant Semi-ATE git repositories)TCC_actuators: git cloneRun (on a MiniSCT)Make sure you have a "test cell" configured as follows :===
Installation of the packages can be achieved viacondaorpip.Installation using pipEach package can be installed usingpython -m pip install <package-name>:python -m pip install semi-ate-commonpython -m pip install semi-ate-project-databasepython -m pip install semi-ate-sammypython -m pip install semi-ate-pluginspython -m pip install semi-ate-testerspython -m pip install semi-ate-spyderpython -m pip install semi-ate-apps-commonpython -m pip install semi-ate-control-apppython -m pip install semi-ate-master-apppython -m pip install semi-ate-test-appOr all at once:python -m pip install semi-ate-common semi-ate-project-database semi-ate-sammy semi-ate-plugins semi-ate-testers semi-ate-spyder semi-ate-apps-common semi-ate-control-app semi-ate-master-app semi-ate-test-appInstallation via CondaTo be definedDevelopment ProcessTest program development process documentation can be foundhereThe semi-ate-master-app packageThis package provides a command line tool (launch_master). In order to use this application you have to configure it first. This tool should be run on host that either runs the control application from thesemi-ate-control-apppackage or that is connected via ethernet to further hosts running the control application.
The master application controls the so-called control applications, i.e. test nodes. To do so the master sends commands to the different test nodes using MQTT messages. Among others these commands
include commands for loading and unloading test programs and starting the test execution.The muster application can be controlled using a web interface or it is controlled by some handler application.ConfigurationConfiguration of the master application is done by writing a JSON file calledmaster_config_file.json. The following key-value-pairs have to be defined:{"broker_host":"127.0.0.1","broker_port":1883,"device_id":"SCT-82-1F","sites":["0"],"Handler":"HTO92-20F","environment":"F1","webui_host":"127.0.0.1","webui_port":"8081","jobsource":"filesystem","jobformat":"xml.semi-ate","skip_jobdata_verification":false,"filesystemdatasource_path":".","filesystemdatasource_jobpattern":"le#jobname#.xml","enable_timeouts":true,"user_settings_filepath":"master_user_settings.json","site_layout":{"0":[0,0]},"tester_type":"Semi-ATE Master Single Tester","loglevel":10,"web_root_folder":"./","develop_mode":false}broker_hostdefines the ip address of the mqtt broker.broker_portdefines the prot of the mqtt broker.site_layoutdefines the site layout of the different test sites.device_iddefines the name of the test sitesitesdefines an array containing the test node ids running the control applicationHandlerdefines the name of some device handler or wafer handler, i.e. proberenvironmentdefines the test environment (F1, F2, F3, P1, P2, P3)webui_hostdefines the ip of the web interface for controlling he master application manuallywebui_portdefines the port number of the web interfacewebui_root_pathdefines the URI of the web-resources, i.e. the folder containing the index.html of some web application.jobsourcedefines the location where to find test job definitionsjobformatdefines the format of the job definitionsskip_jobdata_verificationdefines whether the job definition has to be verifiedfilesystemdatasource_pathdefines the path where to find job definitionsfilesystemdatasource_jobpatterndefines the pattern for the name of the test job file. This is done by replacing#jobname#by the job id, i.e. the lot id.enable_timeoutsdefines whether or not timeouts are enabled. If enabled the system will produce some error message if certain things like becomming ready, loading or undloading a test program etc. take to much time.user_settings_filepathdefines where the user specific settings are stored. These settings are set via the web interface.site_layoutdefines for each site the layout. The layout is the start coordinate of some sitetester_typedefines the type of he tester. This provided by the tester plugin.logleveldefines the log-level of the control applicationdevelop_modedefines wether the master application shall start in develop mode, such that it's possible to debug a test program within spyder (possible value: true or false)Starting the Master ApplicationWe assume that the semi-ate-master-app package has been installed in the current python environment. Further the configuration filemaster_config_file.jsonis located in the current folder.IMPORTANT: The configuration file has to be namedmaster_config_file.json(environment)> launch_master======== Running on http://127.0.0.1:8081 ========(Press CTRL+C to quit)master   |22/03/2022 04:45:37 PM |INFO    |mqtt connectedmaster   |22/03/2022 04:45:37 PM |INFO    |Master state is connectingStarting the Master Application in Develop ModeSetting the develop mode to 'true' shall start the master application in a different mode and different state(environment)> launch_master======== Running on http://127.0.0.1:8081 ========(Press CTRL+C to quit)master   |21/06/2022 02:31:58 PM |INFO    |mqtt connectedmaster   |21/06/2022 02:31:58 PM |INFO    |Master state is connectingmaster   |21/06/2022 02:31:58 PM |INFO    |Master state is loadingIn Loading state, master application will wait till a test program started and is ready to accept further commandsnote: thedevice_idvalue will be overridden to match the default value consumed by the test app (device_id='developmode')