<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум Guardant &mdash; GrdCodeRun(): как увеличить максимальный размер выходного буфера?]]></title>
	<link rel="self" href="https://forum.guardant.ru/feed/atom/topic/398" />
	<updated>2014-03-21T08:41:17Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.guardant.ru/topic/398/</id>
		<entry>
			<title type="html"><![CDATA[Re: GrdCodeRun(): как увеличить максимальный размер выходного буфера?]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1949/#p1949" />
			<content type="html"><![CDATA[<p>Александр, спасибо.<br />Ключ вроде бы новый:</p><p><span class="postimg"><a class="fancybox fancybox.image" rel="group" href="http://jpegshare.net/images/d0/17/d0173ef1de55e8dfd27cacf89ebecc6d.png"><img class="fb_img" src="http://jpegshare.net/images/d0/17/d0173ef1de55e8dfd27cacf89ebecc6d.png" alt="" /></a></span></p>]]></content>
			<author>
				<name><![CDATA[vlad-mal]]></name>
				<uri>https://forum.guardant.ru/user/767/</uri>
			</author>
			<updated>2014-03-21T08:41:17Z</updated>
			<id>https://forum.guardant.ru/post/1949/#p1949</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: GrdCodeRun(): как увеличить максимальный размер выходного буфера?]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1945/#p1945" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>vlad-mal пишет:</cite><blockquote><p>Александр, спасибо.<br />Что-то не получается... :(</p><p>Вы не могли бы пояснить, как параметры метода&nbsp; CodeRun() Вашего объекта Dongle транслируются в параметры функции GrdCodeRun (из состава Guardant API)?</p><br /><p>Спасибо.</p></blockquote></div><p>LoadableCodeIndex - номер алгоритма с кодом<br />9 - dwPW1<br />потом входной буфер и размер оного<br />сразу за ним принимающий буфер и размер.</p><p>У меня такое ощущение что Вы работаете с ключом со старой прошивкой, где микрокод может вести себя немного по другому.<br />Я думаю самое лучшее это сообщить параметры ключа (из утилиты диагностики).</p>]]></content>
			<author>
				<name><![CDATA[Александр (Rouse_) Багель]]></name>
				<uri>https://forum.guardant.ru/user/53/</uri>
			</author>
			<updated>2014-03-19T16:12:42Z</updated>
			<id>https://forum.guardant.ru/post/1945/#p1945</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: GrdCodeRun(): как увеличить максимальный размер выходного буфера?]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1933/#p1933" />
			<content type="html"><![CDATA[<p>Александр, спасибо.<br />Что-то не получается... :(</p><p>Вы не могли бы пояснить, как параметры метода&nbsp; CodeRun() Вашего объекта Dongle транслируются в параметры функции GrdCodeRun (из состава Guardant API)?</p><br /><p>Спасибо.</p>]]></content>
			<author>
				<name><![CDATA[vlad-mal]]></name>
				<uri>https://forum.guardant.ru/user/767/</uri>
			</author>
			<updated>2014-03-17T09:30:14Z</updated>
			<id>https://forum.guardant.ru/post/1933/#p1933</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: GrdCodeRun(): как увеличить максимальный размер выходного буфера?]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1929/#p1929" />
			<content type="html"><![CDATA[<p>Не факт что данные параметры настройки сильно влияют на результат.</p><p>В частности у меня при установленных параметрах:</p><div class="codebox"><pre><code># PC-&gt;KEY buffer name and size:
CFG_INPUT_BUFFER_NAME   = idata
CFG_INPUT_BUFFER_SIZE   = 0x400

# KEY-&gt;PC buffer name and size:
CFG_OUTPUT_BUFFER_NAME  = odata
CFG_OUTPUT_BUFFER_SIZE  = 0x400

# Program stack size allocate:
CFG_STACK_SIZE          = 0x800</code></pre></div><p>Абсолютно спокойно из ключа возвращается буфер размером в 4804 байта в виде вот такой структуры:</p><div class="codebox"><pre><code>type
  TDebugData = packed record
    dwA, 
    dwB,
    dwC, 
    dwD: DWORD;
  end;

  TDebugBuff = packed record
    byA: Byte;
    byB: Byte;
    byC: Byte;
    byD: Byte;
    Buff: array [0..299] of TDebugData;
  end;

procedure TNetworkDongleProvider.DebugDump1;
var
  dwResult: DWORD;
  OutData: TDebugBuff;
begin
  dwResult := Dongle.CodeRun(LoadableCodeIndex, 9, nil, 0,
    @OutData, SizeOf(TDebugBuff));
  if dwResult &lt;&gt; 0 then
    raise ENetworkDongleProviderException.CreateFmt(
      &#039;Ошибка микропрограммы %d&#039;, [dwResult]);
end;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Александр (Rouse_) Багель]]></name>
				<uri>https://forum.guardant.ru/user/53/</uri>
			</author>
			<updated>2014-03-14T20:51:30Z</updated>
			<id>https://forum.guardant.ru/post/1929/#p1929</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[GrdCodeRun(): как увеличить максимальный размер выходного буфера?]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1924/#p1924" />
			<content type="html"><![CDATA[<p>Добрый день.</p><p>Используется ключ Guardant Code.</p><p>Необходимо, чтобы код в ключе вернул данные в буфере, размер которого должен быть больше, чем 0x0400 (1024), а именно - 1440 байт.</p><p>В документации <a href="https://www.guardant.ru/download/manual/handbook_2_Guardant_Sign_Time_Code.pdf">https://www.guardant.ru/download/manual … e_Code.pdf</a><br />сказано:</p><div class="quotebox"><blockquote><p>По умолчанию размер буфера вводавывода установлен равным 1024 байта. <br />...<br />Максимальный суммарный размер буферов для вводавывода составляет 0x3F00 байт (16128 байт).</p></blockquote></div><p>При билде загружаемого кода изменил значений параметров в makefile c 0x400 на 1440 :</p><div class="codebox"><pre><code>#CFG_INPUT_BUFFER_SIZE   = 0x400
CFG_INPUT_BUFFER_SIZE   = 1440

#CFG_OUTPUT_BUFFER_SIZE  = 0x400
CFG_OUTPUT_BUFFER_SIZE  = 1440</code></pre></div><p> - но это ничего не дало: при вызове метода GrdCodeRun со значением параметра dwDataFromDongleLng большим, чем 0x400 (1024) получаю код завершения = 89, то есть GrdE_gcNotEnoughRAM:</p><div class="quotebox"><blockquote><p>IO buffer size specified in loadable code is not enough for transmitting/receiving data</p></blockquote></div><p><span class="bbu"><strong>Вопрос:</strong></span><br />Подскажите, пожалуйста, что нужно сделать, чтобы функция GrdCodeRun() могла вернуть в выходном буфере данных больше, чем 1024.</p><p>Спасибо.</p>]]></content>
			<author>
				<name><![CDATA[vlad-mal]]></name>
				<uri>https://forum.guardant.ru/user/767/</uri>
			</author>
			<updated>2014-03-13T15:29:57Z</updated>
			<id>https://forum.guardant.ru/post/1924/#p1924</id>
		</entry>
</feed>
