Package it.freedomotic.reactions

Examples of it.freedomotic.reactions.Trigger


    }

    @Test
    public void testResolve_Trigger() {
        System.out.println("Triggers resolving a set of references mixed with text like 'temperature is @event.temperature'");
        Trigger c = new Trigger();
        c.setName("say something using TTS");
        c.getPayload().addStatement("zero", "@event.temperature");
        c.getPayload().addStatement("one", "temperature is @event.temperature.");
        c.getPayload().addStatement("two", "temperature is @event.temperature#celsius degree.");
        c.getPayload().addStatement("three", "temperature in @event.zone is @event.temperature.");
        c.getPayload().addStatement("four", "temperature in @event.zone is @event.temperature celsius degree.");
        c.getPayload().addStatement("five", "temperature in @event.zone is @event.temperature celsius degree. @event.zone# is hot because temperature is +@event.temperature°C.");
        c.getPayload().addStatement("six", "temperature in @event.zone is managed by object @event.object.name#.");
        c.getPayload().addStatement("seven", "= seven=\"Current temperature is @event.temperature celsius degrees. In fahrenheit is \" + Math.floor(((@event.temperature+40)*1.8)-40) + \" degrees.\";");
        c.getPayload().addStatement("eight", "= eight=10+5;"); //this always returns a double
        c.getPayload().addStatement("nine", "= nine=Math.floor(10+5).toString();"); //print the number as is to avoid conversion to double
        c.getPayload().addStatement("SET", "behaviorValue", "EQUALS", "= if (@event.temperature > 20) behaviorValue=\"it's hot\"; else behaviorValue=\"it's cold\";");
        GenericEvent event = new GenericEvent(this);
        event.addProperty("zone", "Kitchen");
        event.addProperty("temperature", "25");
        event.addProperty("object.name", "Indoor Thermometer");
        Resolver resolver = new Resolver();
        resolver.addContext("event.", event.getPayload());
        Trigger result = null;
        try {
            result = resolver.resolve(c);
        } catch (VariableResolutionException ex) {
            Assert.fail(ex.getMessage());
        }
        XStream x = new XStream();
        assertEquals("25", result.getPayload().getStatements("zero").get(0).getValue());
        assertEquals("temperature is 25.", result.getPayload().getStatements("one").get(0).getValue());
        assertEquals("temperature is 25celsius degree.", result.getPayload().getStatements("two").get(0).getValue());
        assertEquals("temperature in Kitchen is 25.", result.getPayload().getStatements("three").get(0).getValue());
        assertEquals("temperature in Kitchen is 25 celsius degree.", result.getPayload().getStatements("four").get(0).getValue());
        assertEquals("temperature in Kitchen is 25 celsius degree. Kitchen is hot because temperature is +25°C.", result.getPayload().getStatements("five").get(0).getValue());
        assertEquals("temperature in Kitchen is managed by object Indoor Thermometer.", result.getPayload().getStatements("six").get(0).getValue());
        //testing scripting
        assertEquals("Current temperature is 25 celsius degrees. In fahrenheit is 77 degrees.", result.getPayload().getStatements("seven").get(0).getValue());
        //assertEquals("15.0", result.getPayload().getStatements("eight").get(0).getValue());
        //assertEquals("15", result.getPayload().getStatements("nine").get(0).getValue());
         assertEquals("it's hot", result.getPayload().getStatements("behaviorValue").get(0).getValue());
    }
View Full Code Here


    }

    @BeforeClass
    public static void setUpClass()
            throws Exception {
        trigger = new Trigger();
        trigger.getPayload().addStatement("property1", "value1");
        trigger.getPayload().addStatement("property2", "value2");
        trigger.getPayload().addStatement("property3", "value3");
        panel = new PropertiesPanel_1(trigger.getPayload().size(),
                4);
View Full Code Here

    public void testGetColumns() {
    }

    @Test
    public void testGetComponent() {
        result = new Trigger();

        Payload p = new Payload();

        for (int row = 0; row < panel.getRows(); row++) {
            for (int col = 0; col < panel.getColumns(); col++) {
View Full Code Here

     */
    public Trigger resolve(Trigger t) throws VariableResolutionException {
        this.trigger = t;

        if ((context != null) && (trigger != null)) {
            Trigger clone = trigger.clone();
            mergeContextParamsIntoTrigger(clone);
            performSubstitutionInTrigger(clone);

            return clone;
        }
View Full Code Here

        //TODO: change behaviorValue in behavior.value (must be changed in all triggers)
        String behaviorValue = getProperty("behaviorValue");

        if (!behaviorName.isEmpty() && !behaviorValue.isEmpty()) {
            Trigger trigger = new Trigger();
            trigger.setName("Object behavior change request from " + this.sender);
            trigger.setPersistence(false);
            trigger.setIsHardwareLevel(true);
            trigger.setPayload(payload);
            triggerCheck.check(this, trigger);

            return ""; //this event is not sent on the bus
        } else {
            //return the normal event destination
View Full Code Here

        StringBuilder buff = new StringBuilder();

        try {
            if (trigger.isHardwareLevel()) { //hardware triggers can always fire

                Trigger resolved = resolveTrigger(event, trigger);

                if (resolved.isConsistentWith(event)) {
                    buff.append("[CONSISTENT] hardware level trigger '").append(resolved.getName()).append("' ")
                            .append(resolved.getPayload().toString()).append("'\nconsistent with received event '")
                            .append(event.getEventName()).append("' ").append(event.getPayload().toString());
                    applySensorNotification(resolved, event);
                    LOG.config(buff.toString());
                    return true;
                }
            } else {
                if (trigger.canFire()) {
                    Trigger resolved = resolveTrigger(event, trigger);

                    if (resolved.isConsistentWith(event)) {
                        buff.append("[CONSISTENT] registred trigger '").append(resolved.getName()).append("' ")
                                .append(resolved.getPayload().toString()).append("'\nconsistent with received event '")
                                .append(event.getEventName()).append("' ").append(event.getPayload().toString());
                        executeTriggeredAutomations(resolved, event);
                        LOG.config(buff.toString());
                        return true;
                    }
View Full Code Here

                //Searching for reactions using this trigger
                boolean found = false;

                while (it.hasNext()) {
                    Reaction reaction = it.next();
                    Trigger reactionTrigger = reaction.getTrigger();

                    //found a related reaction. This must be executed
                    if (trigger.equals(reactionTrigger) && !reaction.getCommands().isEmpty()) {
                        if (!checkAdditionalConditions(reaction)) {
                            LOG.log(Level.INFO,
                                    "Additional conditions test failed in reaction {0}", reaction.toString());
                            return;
                        }
                        reactionTrigger.setExecuted();
                        found = true;
                        LOG.log(Level.FINE, "Try to execute reaction {0}", reaction.toString());

                        try {
                            //executes the commands in sequence (only the first sequence is used)
View Full Code Here

        CommandPersistence.add(switchPower);
    }

    @Override
    protected void createTriggers() {
        Trigger clicked = new Trigger();
        // clicked.setName(I18n.msg("when_X_is_clicked", new Object[]{this.getPojo().getName()}));
        clicked.setName("When " + this.getPojo().getName() + " is clicked");
        clicked.setChannel("app.event.sensor.object.behavior.clicked");
        clicked.getPayload().addStatement("object.name",
                this.getPojo().getName());
        clicked.getPayload().addStatement("click", ObjectReceiveClick.SINGLE_CLICK);
        clicked.setPersistence(false);

        Trigger turnsOn = new Trigger();
        // turnsOn.setName(I18n.msg("X_turns_on", new Object[]{this.getPojo().getName()}));
        turnsOn.setName(this.getPojo().getName() + " turns on");
        turnsOn.setChannel("app.event.sensor.object.behavior.change");
        turnsOn.getPayload().addStatement("object.name",
                this.getPojo().getName());
        turnsOn.getPayload().addStatement("object.behavior." + BEHAVIOR_POWERED, BooleanBehavior.VALUE_TRUE);

//        XStream stream = FreedomXStream.getXstream();
//        System.out.println(stream.toXML(turnsOn));
        Trigger turnsOff = new Trigger();
        // turnsOff.setName(I18n.msg("X_turns_off", new Object[]{this.getPojo().getName()}));
        turnsOff.setName(this.getPojo().getName() + " turns off");
        turnsOff.setChannel("app.event.sensor.object.behavior.change");
        turnsOff.getPayload().addStatement("object.name",
                this.getPojo().getName());
        turnsOff.getPayload().addStatement("object.behavior." + BEHAVIOR_POWERED, BooleanBehavior.VALUE_FALSE);

        TriggerPersistence.add(clicked);
        TriggerPersistence.add(turnsOn);
        TriggerPersistence.add(turnsOff);
    }
View Full Code Here

    @Test
    public void testValidate() throws Exception {
//        String xml = DOMValidateDTD.validate(
//                new File(Info.getApplicationPath() + "/test/it/freedomotic/util/trigger-test.xtrg"),
//                Info.getApplicationPath() + "/config/validator/trigger.dtd");
        Trigger trigger = (Trigger) xstream.fromXML(file);
        //trigger.setSuspensionTime(1000);
        //System.out.println(xstream.toXML(trigger));
        Trigger trigger2 = null;
        String tmp = xstream.toXML(trigger);
        Assert.assertEquals("Serialization", file.replaceAll("\n", "").replaceAll(" ", ""), tmp.replaceAll("\n", "").replaceAll(" ", ""));
        trigger2 = (Trigger) xstream.fromXML(tmp);
//            System.out.println(xstream.toXML(trigger2));
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
        //Assert.assertEquals("Payload size", 0, trigger.getPayload().size());
        Assert.assertEquals("Suspension time", 1000, trigger.getSuspensionTime());
        Assert.assertEquals("Suspension time", 1000, trigger2.getSuspensionTime());
    }
View Full Code Here

                    //it has already a mapping
                    relatedTriggerName = (String) e.getKey();
                }
            }

            Trigger relatedTrigger = TriggerPersistence.getTrigger(relatedTriggerName);

            //if related harware trigger is already defined
            if (relatedTrigger != null) {
                comboSelectTrigger.setSelectedItem(relatedTrigger);
            } else {
View Full Code Here

TOP

Related Classes of it.freedomotic.reactions.Trigger

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.