001package jmri.jmrit.operations.automation.actions;
002
003/**
004 * Action codes for automation
005 *
006 * @author Daniel Boudreau Copyright (C) 2016
007 * 
008 *
009 */
010public class ActionCodes {
011
012    // lower byte used in the construction of action codes
013    public static final int ENABLE_TRAINS = 0x1;
014    public static final int ENABLE_ROUTES = 0x2;
015    public static final int OK_MESSAGE = 0x4;
016    public static final int FAIL_MESSAGE = 0x8;
017    
018    public static final int ENABLE_AUTOMATION = 0x10;
019    public static final int ENABLE_GOTO = 0x20;
020    public static final int ENABLE_OTHER = 0x40; // not used, for backwards compatibility
021
022    // codes use upper byte   
023    public static final int CODE_MASK = 0xFF00; // upper byte only
024    
025    public static final int NO_ACTION = 0x0000 + OK_MESSAGE;
026    
027    public static final int BUILD_TRAIN = 0x0100 + ENABLE_TRAINS + OK_MESSAGE + FAIL_MESSAGE;
028    public static final int BUILD_TRAIN_IF_SELECTED = 0x0200 + ENABLE_TRAINS + OK_MESSAGE + FAIL_MESSAGE;
029    public static final int PRINT_TRAIN_MANIFEST = 0x0300 + ENABLE_TRAINS + OK_MESSAGE + FAIL_MESSAGE;
030    public static final int PRINT_TRAIN_MANIFEST_IF_SELECTED = 0x0400 + ENABLE_TRAINS + OK_MESSAGE + FAIL_MESSAGE;
031    public static final int MOVE_TRAIN = 0x0500 + ENABLE_TRAINS + ENABLE_ROUTES + OK_MESSAGE + FAIL_MESSAGE;
032    public static final int TERMINATE_TRAIN = 0x0600 + ENABLE_TRAINS + OK_MESSAGE + FAIL_MESSAGE;
033    public static final int WAIT_FOR_TRAIN = 0x0700 + ENABLE_TRAINS + ENABLE_ROUTES + OK_MESSAGE + FAIL_MESSAGE;
034    public static final int RESET_TRAIN = 0x0800 + ENABLE_TRAINS + OK_MESSAGE + FAIL_MESSAGE;
035    public static final int RUN_TRAIN = 0x0900 + ENABLE_TRAINS + OK_MESSAGE + FAIL_MESSAGE;
036    public static final int SELECT_TRAIN = 0x0A00 + ENABLE_TRAINS + OK_MESSAGE + FAIL_MESSAGE;
037    public static final int DESELECT_TRAIN = 0x0B00 + ENABLE_TRAINS + OK_MESSAGE + FAIL_MESSAGE;
038    public static final int WAIT_FOR_TRAIN_TERMINATE = 0x0C00 + ENABLE_TRAINS + OK_MESSAGE + FAIL_MESSAGE;
039    public static final int IS_TRAIN_EN_ROUTE = 0x0D00 + ENABLE_TRAINS + ENABLE_ROUTES + OK_MESSAGE + FAIL_MESSAGE;
040    public static final int PRINT_TRAIN_BUILDREPORT = 0x0E00 + ENABLE_TRAINS + OK_MESSAGE + FAIL_MESSAGE;
041    
042    public static final int UPDATE_SWITCHLIST = 0x1000 + OK_MESSAGE;
043    public static final int PRINT_SWITCHLIST = 0x1100 + OK_MESSAGE;
044    public static final int WAIT_SWITCHLIST = 0x1200 + OK_MESSAGE;
045    public static final int RUN_SWITCHLIST_CHANGES = 0x1300 + OK_MESSAGE + FAIL_MESSAGE;
046    public static final int RUN_SWITCHLIST = 0x1400 + OK_MESSAGE + FAIL_MESSAGE;
047    public static final int PRINT_SWITCHLIST_CHANGES = 0x1500 + OK_MESSAGE;
048    public static final int GENERATE_SWITCHLIST_CHANGES = 0x1600 + OK_MESSAGE + FAIL_MESSAGE;
049    public static final int GENERATE_SWITCHLIST = 0x1700 + OK_MESSAGE + FAIL_MESSAGE;
050    public static final int RESET_SWITCHLIST = 0x1800 + OK_MESSAGE;
051    
052    public static final int ACTIVATE_TRAIN_SCHEDULE = 0x2000 + OK_MESSAGE + ENABLE_OTHER; 
053    public static final int APPLY_TRAIN_SCHEDULE = 0x2100 + OK_MESSAGE + FAIL_MESSAGE;
054    
055    public static final int STEP_AUTOMATION = 0x3000 + OK_MESSAGE + FAIL_MESSAGE + ENABLE_AUTOMATION;
056    public static final int RUN_AUTOMATION = 0x3100 + OK_MESSAGE + FAIL_MESSAGE + ENABLE_AUTOMATION;
057    public static final int STOP_AUTOMATION = 0x3200 + OK_MESSAGE + FAIL_MESSAGE + ENABLE_AUTOMATION;
058    public static final int RESUME_AUTOMATION = 0x3300 + OK_MESSAGE + FAIL_MESSAGE + ENABLE_AUTOMATION;
059    
060    public static final int COUNTER = 0x4000 + OK_MESSAGE;
061    public static final int MESSAGE_YES_NO = 0x4200 + ENABLE_TRAINS + ENABLE_ROUTES + OK_MESSAGE;
062    
063    public static final int GOTO = 0x5000 + OK_MESSAGE + FAIL_MESSAGE + ENABLE_GOTO;
064    public static final int GOTO_IF_TRUE = 0x5100 + OK_MESSAGE + FAIL_MESSAGE + ENABLE_GOTO;
065    public static final int GOTO_IF_FALSE = 0x5200 + OK_MESSAGE + FAIL_MESSAGE + ENABLE_GOTO;
066    
067    public static final int HALT_ACTION = 0xFF00 + OK_MESSAGE;
068
069}