Search in sources :

Example 1 with TagValMenuCommandProtocol

use of com.thecoderscorner.menu.remote.protocol.TagValMenuCommandProtocol in project tcMenu by davetcc.

the class SimpleWebSocketExample method main.

public static void main(String[] args) throws Exception {
    ConsoleHandler handler = new ConsoleHandler();
    handler.setFormatter(new SimpleFormatter());
    handler.setLevel(Level.FINEST);
    Logger.getLogger("").addHandler(handler);
    Logger.getLogger("").setLevel(Level.FINEST);
    var tree = DomainFixtures.fullEspAmplifierTestTree();
    var executor = Executors.newSingleThreadScheduledExecutor();
    var clock = Clock.systemDefaultZone();
    MenuCommandProtocol tagValProtocol = new TagValMenuCommandProtocol();
    var menuManager = new MenuManagerServer(executor, tree, "WS Test", UUID.randomUUID(), new PropertiesAuthenticator("./auth.properties", new NoDialogFacilities()), clock);
    menuManager.addConnectionManager(new WebSocketServerConnectionManager(tagValProtocol, 3333, clock));
    menuManager.addConnectionManager(new SocketServerConnectionManager(tagValProtocol, executor, 3334, clock));
    menuManager.start();
    var menuList = menuManager.getManagedMenu().getMenuById(21).orElseThrow();
    menuManager.updateMenuItem(menuList, List.of("salad", "pasta", "pizza"));
    if (Boolean.getBoolean("sendSimulatedUpdates")) {
        executor.scheduleAtFixedRate(() -> {
            menuManager.updateMenuItem(menuList, randomListData());
        }, 5000, 5000, TimeUnit.MILLISECONDS);
        executor.scheduleAtFixedRate(() -> {
            if (menuManager.isAnyRemoteConnection())
                return;
            var menuVolume = (AnalogMenuItem) tree.getMenuById(1).orElseThrow();
            var menuLeftVU = (AnalogMenuItem) tree.getMenuById(15).orElseThrow();
            var menuRightVU = (AnalogMenuItem) tree.getMenuById(16).orElseThrow();
            int amt = (int) (Math.random() * 2000);
            if (Math.random() > 0.5) {
                menuManager.updateMenuItem(menuLeftVU, MenuItemHelper.getValueFor(menuLeftVU, tree, 0) + amt);
                menuManager.updateMenuItem(menuRightVU, MenuItemHelper.getValueFor(menuRightVU, tree, 0) - amt);
            } else {
                menuManager.updateMenuItem(menuLeftVU, MenuItemHelper.getValueFor(menuLeftVU, tree, 0) - amt);
                menuManager.updateMenuItem(menuRightVU, MenuItemHelper.getValueFor(menuRightVU, tree, 0) + amt);
            }
            menuManager.updateMenuItem(menuVolume, Math.random() * menuVolume.getMaxValue());
        }, 150, 150, TimeUnit.MILLISECONDS);
    }
}
Also used : TagValMenuCommandProtocol(com.thecoderscorner.menu.remote.protocol.TagValMenuCommandProtocol) AnalogMenuItem(com.thecoderscorner.menu.domain.AnalogMenuItem) MenuCommandProtocol(com.thecoderscorner.menu.remote.MenuCommandProtocol) TagValMenuCommandProtocol(com.thecoderscorner.menu.remote.protocol.TagValMenuCommandProtocol) MenuManagerServer(com.thecoderscorner.menu.mgr.MenuManagerServer) SimpleFormatter(java.util.logging.SimpleFormatter) PropertiesAuthenticator(com.thecoderscorner.menu.auth.PropertiesAuthenticator) NoDialogFacilities(com.thecoderscorner.menu.mgr.NoDialogFacilities) ConsoleHandler(java.util.logging.ConsoleHandler) SocketServerConnectionManager(com.thecoderscorner.menu.remote.mgrclient.SocketServerConnectionManager)

Aggregations

PropertiesAuthenticator (com.thecoderscorner.menu.auth.PropertiesAuthenticator)1 AnalogMenuItem (com.thecoderscorner.menu.domain.AnalogMenuItem)1 MenuManagerServer (com.thecoderscorner.menu.mgr.MenuManagerServer)1 NoDialogFacilities (com.thecoderscorner.menu.mgr.NoDialogFacilities)1 MenuCommandProtocol (com.thecoderscorner.menu.remote.MenuCommandProtocol)1 SocketServerConnectionManager (com.thecoderscorner.menu.remote.mgrclient.SocketServerConnectionManager)1 TagValMenuCommandProtocol (com.thecoderscorner.menu.remote.protocol.TagValMenuCommandProtocol)1 ConsoleHandler (java.util.logging.ConsoleHandler)1 SimpleFormatter (java.util.logging.SimpleFormatter)1