Сервер:Пример простого драйвера-передатчика
Материал из ЛОКАРУС
import locarus.common.Broadcast; import locarus.common.interfaces.Counter; import locarus.common.interfaces.TransmitterAbstract; import locarus.parser.Navigation; /** * * @author Дмитрий Г. Кузнецов * * Используются библиотеки входящие в состав сервера - <code> * locarus-common.jar * locarus-parser.jar * log4j * </code> * */ public class trsDemo extends TransmitterAbstract { /** * Вызывается один раз при регистрации драйвера трансмиттера при старте * сервера. Инициализируем переменные * * @return true - драйвер регистрируется и работает, false - регистрация * отменяется */ public trsDemo() { version = 0x0100 + Integer.parseInt("$LastChangedRevision: 324 $".replace("$LastChangedRevision:", "").replace("$", "").trim()); name = "Demo"; description = "<b>Демонстрационный драйвер - трансмитер</b><br>" + "Принимает оперативные данные с приборов и просто сохраняет их в лог-файле"; } /** * Функция обработчик данных * * @param counter сохраняемый в базе объект, связанный с транслятором. может * использоваться в качестве глобального счетчика * @param o блок оперативных данных в формате определяемом типом accept * @param parameters строка параметров из конфигурации трансмитера, * задаваемая на уровне сервера * @return true если блок обработан, false в слуае необходимости повторного * получения блока драйвером */ @Override public boolean run(Counter counter, Object o, String parameters) { if (counter.val() == null) { counter.val(new Integer(0)); } for (Navigation n : (Navigation[]) o) { log.info( "#" + (Integer) counter.val() + " " + "IMEI:" + n.objectID + ", " + "type:" + n.objectType + ", " + "time:" + n.time + ", " + "lat:" + n.Coords.getLat() + ", " + "lon:" + n.Coords.getLon()); } counter.val((Integer) counter.val() + 1); return true; } /** * Тип принимаемых данных. Функция должна возвращать true на один из * запрашиваемых типов: * <ul> * <li>SIMPLE - получает последовательность объектов Navigation</li> * <li>ALERT - получает объект Device который активировал событие в cиcтеме</li> * </ul> * * @param type значение типа данных * @return true если драйвер принимает этот тип */ @Override public boolean accept(String type) { return Broadcast.SIMPLE.equals(type); } }