forum.bitel.ru
http://forum.bitel.ru/

как считать конф. устройства или один из его параметров?
http://forum.bitel.ru/viewtopic.php?f=19&t=8811
Страница 1 из 1

Автор:  Dog [ 02 янв 2014, 14:31 ]
Заголовок сообщения:  как считать конф. устройства или один из его параметров?

есть объект Device:
Код:
ServerContext context = ServerContext.get();
DeviceService wsDevice = context.getService( InetDeviceService.class, 20 );
Utils utils = new Utils();

Device device = wsDevice.deviceGet(deviceId);

Map<String,String> deviceConfigMap = utils.stringToPairsHash(device.getConfig());

если разобрать его конфиг как выше, то вот такой конфиг:
Код:
ip.resource.categoryId=8,18,24,3,2,58,77
w.gate.address=91.ххх.ххх.ххх
w.groupResId=77
w.resId=102

он не разберет, изза первой строчки ip.resource.categoryId=8,18,24,3,2,58,77 и того, что там столько запятых. а если например добавить в конец каждой строки ";" то все будет хорошо (ну за исключением того, что он отрежет все категории ресурсов после 8, но мне впринципе эта строчка не нужна".
и вот вопрос, может быть есть какой то более верный путь? или на что можно напороться если добавить к каждой строке конфига устройства ";"

Автор:  Cromeshnic [ 03 янв 2014, 15:25 ]
Заголовок сообщения:  Re: как считать конф. устройства или один из его параметров?

Тоже часто сталкивался. Можно получить только из DeviceRuntime, который есть в DeviceMap (или DeviceRuntimeMap, не помню), которые есть в объектах Access и Accounting. А вот как получить эти объекты - хз :(

Автор:  Dog [ 03 янв 2014, 19:02 ]
Заголовок сообщения:  Re: как считать конф. устройства или один из его параметров?

сделал пока как то так:
Код:
private Map<String,String> getParamMap ( String stringParam )
   {
   try{
   Map<String,String> paramMap = new HashMap<String,String>();
   String[] pairs = stringParam.split("\n");
   for (int i=0;i<pairs.length;i++)
      {
      String pair = pairs[i];
      String[] keyValue = pair.split("=");
      paramMap.put(keyValue[0],keyValue[1]);
      }
   return paramMap;
   } catch (Exception e){
      String message =  "Ошибка при подключении услуги на устройстве: "  + e.getMessage() ;
          logger.error( message, e );
      return null;
   }
}

вроде работает.

Автор:  Cromeshnic [ 03 янв 2014, 19:47 ]
Заголовок сообщения:  Re: как считать конф. устройства или один из его параметров?

Так прлзе тогда стандартными Бителовскими Preferences или ParameterMap воспользоваться.
Тут проблема не в парсинге в любом случае. Проблема в том, что наследование конфигурации не происходит.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/