Перейти к содержимому


Фотография
- - - - -

Задачи разработчикам


  • Please log in to reply
5 ответов в этой теме

#1 Снег

Снег

    Холодный

  • Модераторы S
  • Сообщений: 639
  • Город:Пушкино
  • Модель телефона: SGH-E200B

Отправлено 2007-сен-02 - 18:04

Итак, перед нами стоит весьма сложная задача - переписать движок.
Это сложно, но можно.
Собственно, Алекс именно это и хотел сделать перед тем, как проект внезапно "замерз".
В папке ModelEngine в файле model_generic.pas лежит набросок тех методов, которые нужно реализовать для всех платформ, а местами и конкретных моделей (например, D500).
Основная сложность будет при реализации поддержки Agere.

Вот в этом направлении нам и надо думать.

Код, который выложен сейчас, нельзя собирать с включенными range checking и overflow checking. Будут ошибки.
Я с ними сейчас воюю, чтобы выложить изменения.
Заодно пытаюсь избавиться от memory leaks, коих там как грязи, но это уже мелочи.


Задача номер два. Куда меньшая и более простая.
Вынести загрузчики в отдельные файлы (с расширением ldr) и создать xml-файл с примерно таким содержанием:
<Loader_1>
	<SWIFT>
	  <common>swift_1.ldr</common>
			   <D500>D500_1.ldr</D500>
	</SWIFT>
	<SYSOL>
	  <common>sysol_1.ldr</common>	  
			 </SYSOL>
</Loader_1>

Будут и другие задачи. В том числе и те, которые вы назовете.

P.S. Работаем с папкой "SGHFD 0.70 dev 0721i". 714 сборка - это старая версия, хотя билд у файлов выше. ;)

#2 Снег

Снег

    Холодный

  • Модераторы S
  • Сообщений: 639
  • Город:Пушкино
  • Модель телефона: SGH-E200B

Отправлено 2007-сен-02 - 18:12

Предлагаю пока начать обсуждение второй задачи.
Итак, надо обсудить, какой формат файла будет (ini / xml / иное)
И какая у него будет структура.

После этого прикидываем, как мы будем менять код.
К примеру, для свифтов:

Оба загрузчика находятся в файле /Spfe/spfe_loaders_swift.pas в виде двух массивов.
Если их вынести в отдельные файлы, то понадобится
1) переобъявить их как динамические массивы
2) добавить в юнит два блока: initialization и finalization, в которых эти массивы будут заполняться и очищаться
3) написать в блоке initialization необходимые проверки. Как минимум на непустые файлы и на кратность длины файлов.
для первого загрузчика длина должна быть кратна 4 (т.к. посылается он по 4 байта, не считая лидирующий байт с командой). Для второго кратность не проверяется, т.к. посылка идет по 2048 байт, но последний пакет заполнен не до конца.
4) не забыть про загрузчики для D500 - они отличаются от остальных свифтов.

А что будем делать с сисолами и агере?

#3 Снег

Снег

    Холодный

  • Модераторы S
  • Сообщений: 639
  • Город:Пушкино
  • Модель телефона: SGH-E200B

Отправлено 2007-сен-02 - 18:26

Да, если у кого-то возникают вопросы по коду - создавайте отдельный топик под них. Там и будем отвечать.
Алекс сказал, что трогать можно всё, но не желательно что-то менять в протоколах обмена.
К примеру, я вот поменял SCRAM pointer с 0C000000 на 0D000000 и вроде беды не случилось. Но без полного понимания команды ее лучше менять. Поймем - надругаемся. А пока - не надо.
Сомневаетесь - спросите. Скорее всего, не вы одни такие. А кто-то знает и ответит.
  • igo нравится это

#4 RusEm

RusEm

    Безбашенный Параноик

  • SGH Open Club
  • Сообщений: 1 249
  • Город:Саранск
  • Модель телефона: Galaxy S (T959 Vibrant) + всякий хлам

Отправлено 2007-сен-04 - 21:27

Фух.....вроде вернулся.... сорри за оффтоп

Думаю формат файла лучше сделать XmL так как он более универсален понятен да и компоненты для его обработки навалом да и свой не проблема написать....

Кто против?

Исходники скачаю гляну... сделаю набросок структуры
  • igo нравится это

#5 Снег

Снег

    Холодный

  • Модераторы S
  • Сообщений: 639
  • Город:Пушкино
  • Модель телефона: SGH-E200B

Отправлено 2007-сен-05 - 07:44

Попробовал вот такой вариант:

<?xml version='1.0' encoding='windows-1251' standalone='yes'?>
<loader>
	<first>
		<swift>swift_1.ldr</swift>
		<D500>D500_1.ldr</D500>
	</first>
	<second>
		<swift>swift_2.ldr</swift>
		<D500>D500_2.ldr</D500>
	</second>
</loader>

В этом случае юнит превращается в
var
  SPFE_Swift_Loader1_Length : Integer;
  SPFE_Swift_Loader2_Length : Integer;
  SPFE_D500_Loader1_Length : Integer;
  SPFE_D500_Loader2_Length : Integer;

var
  SPFE_Swift_Loader1: array of Byte;
  SPFE_Swift_Loader2: array of Byte;
  SPFE_D500_Loader1: array of Byte;
  SPFE_D500_Loader2: array of Byte;

procedure ImportLoaders;

implementation

procedure ImportLoaders;
begin
  XML_Func.ImportLoader('first/swift', SPFE_Swift_Loader1, SPFE_Swift_Loader1_Length);
  XML_Func.ImportLoader('second/swift', SPFE_Swift_Loader2, SPFE_Swift_Loader2_Length);

  XML_Func.ImportLoader('first/D500', SPFE_D500_Loader1, SPFE_D500_Loader1_Length);
  XML_Func.ImportLoader('second/D500', SPFE_D500_Loader2, SPFE_D500_Loader2_Length);
end;

Разумеется, мы заранее знаем, где лежит xml и сами лоадеры.

Сисолы с двумя загрузчиками также укладываются в эту схему.
Вот как-то так можно...
  • RusEm нравится это

#6 RusEm

RusEm

    Безбашенный Параноик

  • SGH Open Club
  • Сообщений: 1 249
  • Город:Саранск
  • Модель телефона: Galaxy S (T959 Vibrant) + всякий хлам

Отправлено 2008-янв-29 - 21:00

Блин..что то все затухло...
Не хорошо..
Михаил... АУ... если не сложно кинь в личку или на почту сорцы нового флешера..глянем понемногу ))




0 человек читают эту тему

0 пользователей, 0 гостей, 0 скрытых пользователей

Титан гель отзывы на http://fabri.com.ua/titangel.html


Яндекс цитирования