<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Помогите разобраться с ошибкой голосового движка luacom]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Помогите разобраться с ошибкой голосового движка luacom форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sun, 03 May 2026 05:28:16 +0300</pubDate>
		<item>
			<title>Помогите разобраться с ошибкой голосового движка luacom</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44331/topic5340/">Помогите разобраться с ошибкой голосового движка luacom</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_ot1gvm4z" href="/user/1889/" bx-tooltip-user-id="1889">Sergey Denegin</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">Николай Камынин</a></noindex> написал:<br />if text~=nil and string.len(text)&gt;0 and &nbsp;vObj:Speak~=nil &nbsp; then vObj:Speak (text) end<br />=============<br /> Данная функция запускается всего из нескольких мест, и там по определению не может содержание текст быть пустым или нулевым.<br />И не совсем понятно, как объяснить, что при одних и тех же условиях, при запуске из одних и тех же процедур, все работает хорошо, до тех пор, пока что-то не произойдет, после чего начинает выдавать ошибку. Т.е. условия запуска одинаковые, а результат иногда происходит ошибочный. <br />Что конкретно лечит ситуацию, перезагрузка компа или достаточно перегрузить терминал, не выяснял. <br /><br />Возможно ситуация уже решилась за счет функции pcall, во всяком случае уже теперь весь скрипт не виснет, так что ситуация перестала напрягать<br />=============<br />проблема ваша не решилась а просто заблокировалось сообщение об ошибке<br />без pcall сообщение об ошибке получает система и так как нет обработки реагирует на нее зависанием<br />pcall перехватывает ошибку, но вы эту ошибку не обрабатываете.<br />Т е когда у Вас возникает ошибка эта строка просто не работает т е вы не получаете звука, но система не виснет <br />В таком случае зачем вам звук если вы его можете и не получить когда надо?<br />------------------<br />если хотите исправить ошибку то поставьте вывод кода завершения pcall &nbsp;в lopg или печать и определите причину <br />
			<i>05.05.2020 08:01:05, Николай Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44331/topic5340/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44331/topic5340/</guid>
			<pubDate>Tue, 05 May 2020 08:01:05 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите разобраться с ошибкой голосового движка luacom</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44276/topic5340/">Помогите разобраться с ошибкой голосового движка luacom</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_I471m8hr" href="/user/62/" bx-tooltip-user-id="62">Николай Камынин</a> написал:<br />if text~=nil and string.len(text)&gt;0 and &nbsp;vObj:Speak~=nil &nbsp; then vObj:Speak (text) end<br />=============<br />Данная функция запускается всего из нескольких мест, и там по определению не может содержание текст быть пустым или нулевым.<br />И не совсем понятно, как объяснить, что при одних и тех же условиях, при запуске из одних и тех же процедур, все работает хорошо, до тех пор, пока что-то не произойдет, после чего начинает выдавать ошибку. Т.е. условия запуска одинаковые, а результат иногда происходит ошибочный. <br />Что конкретно лечит ситуацию, перезагрузка компа или достаточно перегрузить терминал, не выяснял. <br /><br />Возможно ситуация уже решилась за счет функции pcall, во всяком случае уже теперь весь скрипт не виснет, так что ситуация перестала напрягать <br />
			<i>03.05.2020 15:01:41, Sergey Denegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44276/topic5340/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44276/topic5340/</guid>
			<pubDate>Sun, 03 May 2020 15:01:41 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите разобраться с ошибкой голосового движка luacom</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44275/topic5340/">Помогите разобраться с ошибкой голосового движка luacom</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			полагаю что ошибка не связана с luacom, а вероятнее связана с неправильной работой с движком Speak <br />
			<i>03.05.2020 14:39:57, Николай Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44275/topic5340/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44275/topic5340/</guid>
			<pubDate>Sun, 03 May 2020 14:39:57 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите разобраться с ошибкой голосового движка luacom</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44274/topic5340/">Помогите разобраться с ошибкой голосового движка luacom</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			надо проверять не только на нил но и длину сообщения на ноль<br />если мало, то добавим:<br />------------------<br />if text~=nil and string.len(text)&gt;0 and &nbsp;vObj:Speak~=nil &nbsp; then vObj:Speak (text) end <br />
			<i>03.05.2020 14:35:39, Николай Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44274/topic5340/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44274/topic5340/</guid>
			<pubDate>Sun, 03 May 2020 14:35:39 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите разобраться с ошибкой голосового движка luacom</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44270/topic5340/">Помогите разобраться с ошибкой голосового движка luacom</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_8piRb3b2" href="/user/62/" bx-tooltip-user-id="62">Николай Камынин</a> написал:<br />напишите &nbsp;строку 31 так:if text~=nil and string.len(text)&gt;0 then vObj:Speak (text) end-------------------------------и будет Вам счастье.<br />=============<br />Это не работает, проверка на нил уже была <br />
			<i>03.05.2020 11:59:59, Sergey Denegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44270/topic5340/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44270/topic5340/</guid>
			<pubDate>Sun, 03 May 2020 11:59:59 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите разобраться с ошибкой голосового движка luacom</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44261/topic5340/">Помогите разобраться с ошибкой голосового движка luacom</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_hoVkK9VX" href="/user/1889/" bx-tooltip-user-id="1889">Sergey Denegin</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">Николай Камынин</a></noindex> написал:<br />и еще<br />что у вас в 31 строке &nbsp;library.lua ?<br />=============<br /> Вот полная функция <br />function speak_only (text)<br /> &nbsp; &nbsp;w32.CoInitialize()<br /> &nbsp; &nbsp;local vObj = luacom.CreateObject(&quot;Sapi.SpVoice&quot;)<br /> &nbsp; &nbsp;vObj:Speak (text)<br /> &nbsp; &nbsp;w32.CoUninitialize()<br />end --speak_only<br /><br />строка 31 содержит оператор <br />vObj:Speak (text)<br /><br />А каким образом остальной код может влиять на абсолютно независимую от остального кода функцию?<br />тут все переменные локальны.<br />Текст всегда передается строковой переменной из одной и той же другой функции, в которой физически не может быть не строковой переменной. <br />И главная проблема в том. что бОльшую часть времени все работает. <br /><br />В общем на данный момент пока вопрос закрыл с помощью оператора pcall, если будут снова проблемы, опишу ситуацию. <br /><br />Благодарю всех, кто откликнулся на помощь!<br />=============<br />напишите &nbsp;строку 31 так:<br />if text~=nil and string.len(text)&gt;0 then vObj:Speak (text) end<br />-------------------------------<br />и будет Вам счастье. <br />
			<i>01.05.2020 14:07:42, Николай Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44261/topic5340/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44261/topic5340/</guid>
			<pubDate>Fri, 01 May 2020 14:07:42 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите разобраться с ошибкой голосового движка luacom</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44183/topic5340/">Помогите разобраться с ошибкой голосового движка luacom</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_bEQkPA7j" href="/user/62/" bx-tooltip-user-id="62">Николай Камынин</a> написал:<br />и еще<br />что у вас в 31 строке &nbsp;library.lua ?<br />=============<br />Вот полная функция <br />function speak_only (text)<br /> &nbsp; &nbsp;w32.CoInitialize()<br /> &nbsp; &nbsp;local vObj = luacom.CreateObject(&quot;Sapi.SpVoice&quot;)<br /> &nbsp; &nbsp;vObj:Speak (text)<br /> &nbsp; &nbsp;w32.CoUninitialize()<br />end --speak_only<br /><br />строка 31 содержит оператор <br />vObj:Speak (text)<br /><br />А каким образом остальной код может влиять на абсолютно независимую от остального кода функцию?<br />тут все переменные локальны.<br />Текст всегда передается строковой переменной из одной и той же другой функции, в которой физически не может быть не строковой переменной. <br />И главная проблема в том. что бОльшую часть времени все работает. <br /><br />В общем на данный момент пока вопрос закрыл с помощью оператора pcall, если будут снова проблемы, опишу ситуацию. <br /><br />Благодарю всех, кто откликнулся на помощь! <br />
			<i>28.04.2020 20:29:52, Sergey Denegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44183/topic5340/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44183/topic5340/</guid>
			<pubDate>Tue, 28 Apr 2020 20:29:52 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите разобраться с ошибкой голосового движка luacom</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44075/topic5340/">Помогите разобраться с ошибкой голосового движка luacom</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			и еще<br />что у вас в 31 строке &nbsp;library.lua ? <br />
			<i>26.04.2020 10:45:29, Николай Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44075/topic5340/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44075/topic5340/</guid>
			<pubDate>Sun, 26 Apr 2020 10:45:29 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите разобраться с ошибкой голосового движка luacom</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44074/topic5340/">Помогите разобраться с ошибкой голосового движка luacom</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_kk74Dmwj" href="/user/1889/" bx-tooltip-user-id="1889">Sergey Denegin</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">Николай Камынин</a></noindex> написал:<br />это ошибка в вашей &nbsp;library.lua &nbsp;строка 31<br />=============<br /> в этой строке оператор vObj:Speak (text)<br /> <br />====quote====<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">Николай Камынин</a></noindex> написал:<br />оператор 386 выдает сообщение &nbsp;об ошибке, если она есть<br />=============<br /> так ведь ситуация в том. что бОльшинство раз все работает нормально, а потом что-то происходит, и начинает выдаваться ошибку. Возможно память не очищается и забивается. посмотрим что будет с добавленной командой CoUninitialize() и использованием pcall<br />=============<br />сказать что-то конкретнее без текста скрипта сложно.<br />могу предположить что какие-то данные в какой-то момент отсутствуют<br />У вас скорее всего это не проверяется и возникает ошибка например сравнение с nil<br />в итоге происходит вылет скрипта (по такой ошибке бывает пропуск операторов) и в итоге кирдык<br />еще хуже если попадаете в память вне области массивов<br />короче надо ставить контрольные точки и искать что и где<br />можете выложить код, попробую что-то сказать конкретнее &nbsp; <br />
			<i>26.04.2020 10:43:30, Николай Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44074/topic5340/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44074/topic5340/</guid>
			<pubDate>Sun, 26 Apr 2020 10:43:30 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите разобраться с ошибкой голосового движка luacom</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44072/topic5340/">Помогите разобраться с ошибкой голосового движка luacom</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_IEQ7Wy3L" href="/user/62/" bx-tooltip-user-id="62">Николай Камынин</a> написал:<br />это ошибка в вашей &nbsp;library.lua &nbsp;строка 31<br />=============<br />в этой строке оператор vObj:Speak (text)<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_0haeBqWh" href="/user/62/" bx-tooltip-user-id="62">Николай Камынин</a> написал:<br />оператор 386 выдает сообщение &nbsp;об ошибке, если она есть<br />=============<br />так ведь ситуация в том. что бОльшинство раз все работает нормально, а потом что-то происходит, и начинает выдаваться ошибку. Возможно память не очищается и забивается. посмотрим что будет с добавленной командой CoUninitialize() и использованием pcall <br />
			<i>26.04.2020 02:20:01, Sergey Denegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44072/topic5340/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44072/topic5340/</guid>
			<pubDate>Sun, 26 Apr 2020 02:20:01 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите разобраться с ошибкой голосового движка luacom</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44064/topic5340/">Помогите разобраться с ошибкой голосового движка luacom</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_lgebLUEM" href="/user/1889/" bx-tooltip-user-id="1889">Sergey Denegin</a> написал:<br />В макросе использую произнесение голосом разных событий. <br /><br />Функция чтения голосом выглядит вот так:<br /><br />text = &quot;тест&quot;<br /><br /><br />w32.CoInitialize() &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /><br /> local vObj = luacom.CreateObject(&quot;Sapi.SpVoice&quot;)vObj:Speak (text)<br /><br />Как правило все работает без проблем. Но иногда, почему-то данная функция выдает ошибку<br />...\Program\QuikRobots\автостоп\. .\автостоп\library.lua:31: COM exception:(..\src\library\tLuaCOM.cpp,386):<br /><br />Самое неприятное, что весь скрипт после этого останавливается, и это напрягает. <br />Как правило, если потом перезапустить скрипт, ошибка уже повторяется. пока терминал не перезагрузишь или даже компьютер. <br /><br />Может кто-то знает как решить проблему?<br />1) либо устранить ошибку совсем<br />2 ) либо научиться определять, что эта ошибка есть, и как-то не давать скрипту останавливаться<br />=============<br />это ошибка в вашей &nbsp;library.lua &nbsp;строка 31<br />на всякий случай, вот исходник tLuaCOM.cpp<br /><noindex><a href="https://github.com/davidm/luacom/blob/9962eb574ddb34692eb4503fe67fd7d363ff20a0/src/library/tLuaCOM.cpp#L384" target="_blank" rel="nofollow">https://github.com/davidm/luacom/blob/9962eb574ddb34692eb4503fe67fd7d363ff2<WBR/>&shy;0a0/src/library/tLuaCOM.c...</a></noindex><br />оператор 386 выдает сообщение &nbsp;об ошибке, если она есть<br /> &nbsp; <br />
			<i>25.04.2020 17:20:33, Николай Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44064/topic5340/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44064/topic5340/</guid>
			<pubDate>Sat, 25 Apr 2020 17:20:33 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите разобраться с ошибкой голосового движка luacom</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44058/topic5340/">Помогите разобраться с ошибкой голосового движка luacom</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Спасибо большое, испоьльзую pcall - это то, что нужно. <br /><br /><br />CoUninitialize() поставил<br /><br />Огромное спасибо! <br />
			<i>24.04.2020 22:27:25, Sergey Denegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44058/topic5340/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44058/topic5340/</guid>
			<pubDate>Fri, 24 Apr 2020 22:27:25 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите разобраться с ошибкой голосового движка luacom</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44056/topic5340/">Помогите разобраться с ошибкой голосового движка luacom</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_mxDLzdyn" href="/user/1889/" bx-tooltip-user-id="1889">Sergey Denegin</a> написал:<br />почему-то данная функция выдает ошибку<br />=============<br />Это какая-то ошибка при вызове функции, см.<noindex><a href="https://github.com/davidm/luacom/blob/master/src/library/tLuaCOM.cpp#L386" target="_blank" rel="nofollow">https://github.com/davidm/luacom/blob/master/src/library/tLuaCOM.cpp#L386</a></noindex><br />Может этот кусок (с вызовом Speak) в pcall завернуть, пусть лучше один раз звука не будет, чем крэш всего из-за не очень-то нужной фичи.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_GU0Y0Pwu" href="/user/1889/" bx-tooltip-user-id="1889">Sergey Denegin</a> написал:<br />w32.CoInitialize() &nbsp;<br />=============<br />Надо убедиться, что этот вызов в main делается, а не где-то еще. В потоке квика уже все было вызвано самим квиком, там CoInitialize вообще-то не нужна. А в мейне нужна. И в конце мейна еще CoUninitialize() надо.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_r5DeiO3z" href="/user/1889/" bx-tooltip-user-id="1889">Sergey Denegin</a> написал:<br />Как правило, если потом перезапустить скрипт, ошибка уже повторяется. пока терминал не перезагрузишь<br />=============<br />А это косячок в квике, при ошибке длл не выгружается и вообще много чего не подчищается. <br />
			<i>24.04.2020 21:39:36, Anton.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44056/topic5340/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44056/topic5340/</guid>
			<pubDate>Fri, 24 Apr 2020 21:39:36 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Помогите разобраться с ошибкой голосового движка luacom</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44052/topic5340/">Помогите разобраться с ошибкой голосового движка luacom</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			В макросе использую произнесение голосом разных событий. <br /><br />Функция чтения голосом выглядит вот так:<br /><br />text = &quot;тест&quot;<br /><br /><br />w32.CoInitialize() &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br /><br /> local vObj = luacom.CreateObject(&quot;Sapi.SpVoice&quot;)vObj:Speak (text)<br /><br />Как правило все работает без проблем. Но иногда, почему-то данная функция выдает ошибку<br />...\Program\QuikRobots\автостоп\. .\автостоп\library.lua:31: COM exception:(..\src\library\tLuaCOM.cpp,386):<br /><br />Самое неприятное, что весь скрипт после этого останавливается, и это напрягает. <br />Как правило, если потом перезапустить скрипт, ошибка уже повторяется. пока терминал не перезагрузишь или даже компьютер. <br /><br />Может кто-то знает как решить проблему?<br />1) либо устранить ошибку совсем<br />2 ) либо научиться определять, что эта ошибка есть, и как-то не давать скрипту останавливаться <br />
			<i>24.04.2020 20:46:01, Sergey Denegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44052/topic5340/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44052/topic5340/</guid>
			<pubDate>Fri, 24 Apr 2020 20:46:01 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
