30 июня | 2024г. | 07:03:51


АвторТема: Эмуляторы для ресиверов ARM архитектуры (Обсуждение)  (Прочитано 491219 раз)

moskvish и 27 Гостей смотрят эту тему.

Оффлайн Evg77734

  • Мастер Джедай
  • **
  • Сообщений: 1295
  • Поблагодарили: 7920
  • Уважение: +131
В эмуляторе Wicard есть возможность изменения параметра для понимания того, в какой именно кодировке вещает нужный канал.
Ни один из эмуляторов не знает названия кодировок, они оперируют значениями CAID, которые получают из потока со спутника.
Но все эмуляторы пишут файл /tmp/ecm.info, который обновляется каждые 10 - 15 (20) сек при изменениии ключа.
Именно из него система и все заинтересованные конвертеры берут данные о кодировке.
Реализуется это в функциях так:
Спойлер   :
Для oscam, wicardd, ncam, oscam-ymod:
   def CaidInfo1(self):
      if os.path.exists('/tmp/ecm.info') == True:
         ecmf = open('/tmp/ecm.info', 'r')
         ecm = ecmf.readlines()
         for line in ecm:
            if 'caid: 0x' in line or 'CAID: 0x' in line:
               x = line
               l = len(x)
               x1 = x[8:l]
               d = '%s' % systemTxtCaids.get(x1[:2])
         return d
      else:
         d = 'nodecode'
         return d

Для cccam:
   def CaidInfo2(self):
      if os.path.exists('/tmp/ecm.info') == True:
         ecmf = open('/tmp/ecm.info', 'r')
         ecm = ecmf.readlines()
         for line in ecm:
            if 'system:     ' in line:
               x = line
               l = len(x)
               x1 = x[12:l]
               d = x1
         return d
      else:
         d = 'nodecode'
         return d

Для mgcamd:
   def CaidInfo3(self):
      if os.path.exists('/tmp/ecm.info') == True:
         ecmf = open('/tmp/ecm.info', 'r')
         ecm = ecmf.readlines()
         for line in ecm:
            if 'CaID 0x' in line:
               x = line
               l = len(x)
               y = x.find('CaID 0x')
               
               x1 = x[(y+7):l]
               d = '%s' % systemTxtCaids.get(x1[:2])
         return d
      else:
         d = 'nodecode'
         return d
         
Названия кодировок берутся из словаря:
systemTxtCaids = {'26': 'BiSS',
         '01': 'Seca Mediaguard',
         '06': 'Irdeto',
         '17': 'BetaCrypt',
         '05': 'Viacces',
         '18': 'Nagravision',
         '09': 'NDS-Videoguard',
         '0B': 'Conax',
         '0D': 'Cryptoworks',
         '4A': 'DRE-Crypt',
         '27': 'ExSet',
         '0E': 'PowerVu',
         '22': 'Codicrypt',
         '07': 'DigiCipher',
         '56': 'Verimatrix',
         'A1': 'Rosscrypt'}
Его можно легко модифицировать, добавив нужное, или искючив не нужное.

Итог:


self["caid"].setText(str(self.CaidInfo1 или (2) или(3)()))
Простенький конвертер, на базе этого кода работает мгновенно.



Теги:
 

Похожие темы

  Тема / Автор Ответов Последний ответ
247 Ответов
87603 Просмотров
Последний ответ 07 марта | 2015г. | 13:54:51
от tis
575 Ответов
284504 Просмотров
Последний ответ 17 июня | 2024г. | 08:44:43
от Дмитрий73
14 Ответов
13690 Просмотров
Последний ответ 13 октября | 2020г. | 22:16:13
от avtrade
60 Ответов
39037 Просмотров
Последний ответ 08 декабря | 2022г. | 04:01:12
от veles
264 Ответов
85708 Просмотров
Последний ответ 02 декабря | 2022г. | 12:46:48
от Николай Щёголев



X

Добро пожаловать!

Мы заметили, что у Вас установлено расширение AdBlock или ему подобное. Пожалуйста добавьте наш Клуб в белый список, внесите этим посильную лепту в его развитие. Спасибо!