У вас не стоит Flash Player
Настройки
#71034 - Tue Jun 23 2015 12:31 PM Скрипт не видится TSlab-ом
Rucobor Offline
member

Registered: Sun Aug 15 2010
Записи: 108
Перехожу от кубиков к API. Очень интересное дело, как оказалось, но непонятно, почему не работают некоторые методы?
Простой скриптик, который должен вывести размер депо, не видится TSlab-ом, который пишет Скрипт '000_eXT_Script': Элемент 'ВнешнийСкрипт1' содержит ошибку: Не установлен внешний скрипт


Code:
using TSLab.Script;
using TSLab.Script.Handlers;
using TSLab.Script.Realtime;

namespace DepoScript

{ 
       public class RtDepo : IExternalScript
    {
        public void Execute(IContext ctx, ISecurity sec)
        {
           var rtSec = sec as ISecurityRt;
            if (rtSec == null)
            {
               ctx.LogError("Режим лабы!!!");
                return;
            }

            // Вывод размера депо
            ctx.LogInfo("Размер депо: {0}", rtSec.EstimatedBalance);
        }
    }
}



Помогите, кто может!
P.S. А в кубике внешнего скрипта написано: Нет подходящего обработчика. Чего ему не хватает?


Отредактировано Rucobor (Tue Jun 23 2015 12:38 PM)

Наверх
#71839 - Sun Jul 26 2015 06:12 PM Re: Скрипт не видится TSlab-ом [Re: Rucobor]
Ti_ru Offline
writer

Registered: Sun Oct 17 2010
Записи: 479
что такое LogInfo и LogError? Надо писать просто Log


Отредактировано Ti_ru (Sun Jul 26 2015 06:12 PM)

Наверх
#71840 - Sun Jul 26 2015 08:26 PM Re: Скрипт не видится TSlab-ом [Re: Ti_ru]
crn Offline
journeyman

Registered: Wed Apr 29 2015
Записи: 91
Loc: Махачкала
ctx.Log("депо " + rtSec.EstimadetBalance.ToString(), 0xAAAAAA);

Наверх
#72012 - Sun Aug 02 2015 01:47 PM Re: Скрипт не видится TSlab-ом [Re: crn]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
вы дернули код русалго и должны прицепить библиотеку тоже. Эти методы LogInfo и LogError есть только в ней, их нет в тслабе.
_________________________
__


Наверх
#72275 - Fri Aug 14 2015 02:31 PM Re: Скрипт не видится TSlab-ом [Re: ra81]
komissar Offline
journeyman

Registered: Fri Sep 28 2012
Записи: 98
TsLab 1.2.19. В скрипт загружаю cs-файл и необходимые библиотеки. С какого-то времени тсЛаб перестал обновлять у себя файл скрипта-через кнопки сохранить и пуск. Реагирует на изменение таймфрема. В частности 60мин. переключаю на 30мин. и изменения проходят. Что может быть? Путь к файлу и библиотекам на 10 раз обновил.
_________________________
Физик-лирик

Наверх
#72305 - Sun Aug 16 2015 01:27 PM Re: Скрипт не видится TSlab-ом [Re: komissar]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
просто двигайте любой блок скрипта после изменения кода и жмите кнопку Пуск. Все будет работать. Это особенность новых версий и исправить ее не исправили до сих пор.
_________________________
__


Наверх
#72763 - Mon Aug 31 2015 11:11 AM Re: Скрипт не видится TSlab-ом [Re: ra81]
tolik86 Offline
stranger

Registered: Mon Jun 15 2015
Записи: 9
Для себя определил несколько неприятных особенностей/ограничений TSLab:
1. в одном проекте может быть всего один наследник IExternalScript, иначе не видит не одного скрипта,
2. при добавлении к проекту некоторых сторонних библиотек, перестает видеть скрипт (например, Telerik.OpenAccess или Castle.Windsor), приходиться изолировать весь этот функционал в сервисно-фасадную часть проекта
3. если класс скрипта (наследника IExternalScript) наследуется так же от любого другого интерфейса или любой предок этого класса - является наследником произвольного интерфейса, скрипт не определяется TSLab.


Отредактировано tolik86 (Mon Aug 31 2015 04:05 PM)

Наверх
#72788 - Mon Aug 31 2015 04:06 PM Re: Скрипт не видится TSlab-ом [Re: tolik86]
tolik86 Offline
stranger

Registered: Mon Jun 15 2015
Записи: 9
Товарищи разработчики, прокомментируйте, пожалуйста, хотя бы последний пункт, т.к. это неудобство очень усложняет разработку.

Наверх
#72790 - Mon Aug 31 2015 04:20 PM Re: Скрипт не видится TSlab-ом [Re: tolik86]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
1. Такое ограничение пока убирать не будем, т.к. оно требует изменения UI.
2. Системные API доступные из скрипта ограничены, видимо проблема в этом. Скрипты не рассчитаны, что в них будет пользовательский UI.
3. Тут можно подробнее? А лучше в поддержку прислать пример такого класса, который не определяется как внешний скрипт.

Наверх
#72820 - Tue Sep 01 2015 11:38 AM Re: Скрипт не видится TSlab-ом [Re: Nektodron]
tolik86 Offline
stranger

Registered: Mon Jun 15 2015
Записи: 9
Комментарий по третьему пункту. Во всех вариантах TSLab не видит скрипта.

Вариант 1

public abstract class BaseExternalScript : ITradeSystem
{
}

public class ReverseBenchmarkEntry : BaseExternalScript, IExternalScript
{
}

Вариант 2

public abstract class BaseExternalScript
{
}

public class ReverseBenchmarkEntry : BaseExternalScript, ITradeSystem, IExternalScript
{
}

Убираем ITradeSystem, все нормально.


Отредактировано tolik86 (Tue Sep 01 2015 11:38 AM)

Наверх
#77995 - Fri May 13 2016 05:15 PM Re: Скрипт не видится TSlab-ом [Re: tolik86]
cosmos Offline
stranger

Registered: Tue Mar 29 2016
Записи: 21
Попробуйте так

public class BaseExternalScript
{
}

public class ReverseBenchmarkEntry : BaseExternalScript, IExternalScript
{
}

А в ТСлабе подключите в блок "Внешний скрипт" оба файла скриптов.

Наверх


Moderator:  ViL, sar