/******************************************************************************* | |
* Copyright (c) 2014, 2016 Orange. | |
* All rights reserved. This program and the accompanying materials | |
* are made available under the terms of the Eclipse Public License 2.0 | |
* which accompanies this distribution, and is available at | |
* https://www.eclipse.org/legal/epl-2.0/ | |
*******************************************************************************/ | |
package org.eclipse.om2m.sdt.home.smarterkettle; | |
import java.util.Dictionary; | |
import org.eclipse.om2m.sdt.Domain; | |
import org.eclipse.om2m.sdt.exceptions.AccessException; | |
import org.eclipse.om2m.sdt.exceptions.ActionException; | |
import org.eclipse.om2m.sdt.exceptions.DataPointException; | |
import org.eclipse.om2m.sdt.home.HomeDomain; | |
import org.eclipse.om2m.sdt.home.driver.Logger; | |
import org.osgi.framework.BundleActivator; | |
import org.osgi.framework.BundleContext; | |
import org.osgi.service.cm.ConfigurationException; | |
import org.osgi.service.cm.ManagedService; | |
import org.osgi.service.log.LogService; | |
public class Activator implements ManagedService, BundleActivator { | |
static public Logger LOGGER; | |
private BundleContext context; | |
private boolean activated; | |
private Domain domain; | |
private static final String ID = "SmarterKettle"; | |
private SmarterKettle sKettle; | |
private static int idNum = 1; | |
public Activator() { | |
this.domain = new HomeDomain("Smarter Kettle Domain"); | |
LOGGER = new Logger("SMARTER"); | |
} | |
private void addKettleMachine(String ip, int port){ | |
LOGGER.info("AddKettleMachine"); | |
LOGGER.info(ip + ":" + port); | |
sKettle = new SmarterKettle(ID + idNum++, domain, ip, port); | |
sKettle.register(context); | |
} | |
@Override | |
public void start(BundleContext ctxt) throws Exception { | |
try { | |
LOGGER = new Logger("SMARTER"); | |
LOGGER.setLogService((LogService) ctxt.getService( | |
ctxt.getServiceReference(LogService.class.getName()))); | |
} catch (Exception ignored) { | |
} | |
LOGGER.info("Bundle kettle machine starting"); | |
this.context = ctxt; | |
activated = true; | |
addKettleMachine("10.0.1.27", 2081); | |
//test(); | |
} | |
public void test() throws ActionException, AccessException, InterruptedException, DataPointException{ | |
LOGGER.info("----Test----"); | |
if (sKettle.getFaultDetection().getStatus()) { | |
LOGGER.info("kettle OK"); | |
} else { | |
LOGGER.info("Error code: " + sKettle.getFaultDetection().getCode() + | |
" / " + sKettle.getFaultDetection().getDescription()); | |
} | |
LOGGER.info("----Test module temperature---"); | |
sKettle.getTemperature().setTargetTemperature(50); | |
sKettle.getTemperature().setTargetTemperature(50); | |
LOGGER.info("Current: " + sKettle.getTemperature().getCurrentTemperature()); | |
LOGGER.info("Target: " + sKettle.getTemperature().getTargetTemperature()); | |
LOGGER.info("Max: " + sKettle.getTemperature().getMaxValue()); | |
LOGGER.info("Min: " + sKettle.getTemperature().getMinValue()); | |
LOGGER.info("Step: " + sKettle.getTemperature().getStepValue()); | |
sKettle.getBinarySwitch().toggle(); | |
LOGGER.info("Boiling: " + sKettle.getBinarySwitch().getPowerState()); | |
} | |
@Override | |
public void updated(Dictionary properties) throws ConfigurationException { | |
LOGGER.info("Uptaded"); | |
addKettleMachine("10.0.1.28", 2081); | |
} | |
@Override | |
public void stop(BundleContext context) throws Exception { | |
activated = false; | |
if (sKettle != null) | |
sKettle.unregister(); | |
} | |
} |