Информация: Уважаемые посетители! В течение нескольких месяцев на форуме существовала проблема с регистрацией новых пользователей, о которой администрации стало известно недавно. Если вы ранее пытались зарегистрироваться на форуме, но не получили на ваш e-mail письмо с ссылкой для подтверждения регистрации, просим вас зарегистрироваться повторно. Приносим извинения за доставленные неудобства. Если вы все еще испытываете проблемы с регистрацией на форуме, обратитесь за помощью на e-mail: mr.angelo@railroadsim.net

Статистика блога
1455Всего записей
317Всего комментариев
Поиск в блогах

Лента Последние комментарии
Пред.След.
Re: Railworks. Сигнализация Rail Signals v0.6. АЛСН. Прием сообщений i2GR 26.08.2016, 11:44
Немножко оптимизации:
Код: Выделить всё
   for i = 1, 4 do
      if string.find (ConsistMessage, tALS.OnRail[i]) then
         tALS.Emitter = i
         -- определение позиции этого служебного символа в переданном сообщении
         signSeparator = string.find(ConsistMessage, tALS.OnRail[i])
      end

т.е. обсуждаемый избыточный перебор по всем частотам легко заменяется однократным поиском установленной "частоты в локе" в сообщении светофора
Код: Выделить всё
if string.find (ConsistMessage, tALS.OnRail[self.Receiver]) then self.Emitter = true end

Далее условие
Код: Выделить всё
if --[[tAutostop.State]] and tALS.Emitter = tALS.Receiver then

надо преобразовать в
Код: Выделить всё
if tAutostop.State and tALS.Emitter then


Кстати, tAutostop - это таблица в скрипте с переменными и функциями, отвечающими за автостопное торможение, в том чи...

[ Продолжается ]

Re: Объекты от радиомастера для RailWorks vol3 09.08.2016, 12:28
народ,кто в курсе ,у контактной сети у лофтовых ригилей пропадают опоры,в редакторе все нормально?

RE: Railworks. Сигнализация Rail Signals v0.6. АЛСН. Прием сообщений Света 01.08.2016, 20:35
i2GR писал(а):определить сам символ. т.е. на какой частоте АЛС работает светофор. Если не на той, на которую настроен "приемник" в локе, в нем будет белый огонь.

Это не проблема:
Код: Выделить всё
   y = string.sub(x, string.len (x), string.len (x));
Или:
Код: Выделить всё
   local z = string.len (x)
   y = string.sub(x, z, z); 
где x - строка, y - переменная, в которую записывается значение символа, z - временная переменная, упрощающая вычисление.

i2GR писал(а):предполагается, что служебный символ не всегда последний: для чего использовать в светофоре правое поле identity уже есть

Это другое дело. Тогда предлагаю использовать несколько иную схему. А именно - поставить фиксированную метку, после которой всегда находится символ частоты. Зачем?
1. Станет значительно экономнее поиск и определение этого символа частоты. Ве...[/tab][/tab][/tab]

[ Продолжается ]

Re: Railworks. Сигнализация Rail Signals v0.6. АЛСН. Прием сообщений i2GR 01.08.2016, 11:41
задача не только в этом.
1. определить сам символ. т.е. на какой частоте АЛС работает светофор. Если не на той, на которую настроен "приемник" в локе, в нем будет белый огонь.
2. предполагается, что служебный символ не всегда последний: для чего использовать в светофоре правое поле identity уже есть

Re: Railworks. Сигнализация Rail Signals v0.6. АЛСН. Прием сообщений Света 29.07.2016, 12:07
Вот этот момент:
Код: Выделить всё
   -- поиск служебных символов "*", "~", "=", "+" и присвоение ключу tALS.Emitter номера индекса таблицы tALS.OnRail, соответствующему этому символу
   for i = 1, 4 do
      if string.find (ConsistMessage, tALS.OnRail[i]) then
         tALS.Emitter = i
         -- определение позиции этого служебного символа в переданном сообщении
         signSeparator = string.find(ConsistMessage, tALS.OnRail[i])
      end
   end --logfile:write("\n "..tostring(tALS.Emitter).." "..tostring(tAutostop.State))


Если цель - определить только местоположение последнего в строке символа, можно использовать базовую функцию string.len(х). Эта функция работает намного быстрее по сравнению с циклом, а так как данный блок отрабатывается при каждом сообщении от светофора, экономия будет неплохая....

[ Продолжается ]

Кто сейчас на конференции

Зарегистрированные пользователи: Google [Bot], Yandex [Bot]