Init module for generation scripts#65
Conversation
| @@ -0,0 +1,57 @@ | |||
| #Generic for script.cel file | |||
| script = [ | |||
There was a problem hiding this comment.
эти массив строк нигде не используется кроме как в методе makeScript - поэтому нет смысла выносить его отдельно. Можно сразу писать в самом методе, тогда получится примерно следующее:
+def makeScript(beginDate,shipName):
script = [
{\n',
- time{utc "' + str(beginDate) + '"}\n',
- 'select{object "' + str(shipName) + '"}\n',
- 'center {time 5.0}\n',
- 'goto { time 5.0 }\n',
- 'follow{}\n',
- 'lock{}\n',
+'}'
]
.....
Плюс нужно проверять что параметры метода не пустые и валидные
There was a problem hiding this comment.
Валидацию завтра реализую.
По поводу решения вынести шаблон скрипта в глобальное поле:
дефолтные скрипты могут часто использоваться, достать без генерации можно будет как scriptFactory.script
There was a problem hiding this comment.
А почему они будут часто использоваться?
Что мне не нравится в script - это явно прописанное время. Сейчас там прописана дата, пусть условно она актуальна сейчас(хотя там 2015 год...), но, например. пройдет еще год - хотим мы по дефолту иметь там 2015? На мой взгляд, если нам реально нужно возвращать по дефолту что-то, то хочется там видеть время с 1 января текущего года.
There was a problem hiding this comment.
Нет ли в питоне каких то средств работы с временем? что нибудь типа DateTime.UTCNow()?
There was a problem hiding this comment.
да, есть.
январь 2015 это то, начиная откуда по дефолту генерится траектория. Поэтому и скрипт дефолтный такой.
В питоне есть именные параметры метода, можем сделать, что если begind/endDate не заданы, берём текущую дату. шаблон скрипта соответственно будет внутри метода.
полиморфизм соответственно будет в том, что если вызываем метод без параметров, будет возвращаться дефолтный скрипт с текущей датой.
There was a problem hiding this comment.
тогда ещё вопрос с датой окончания
можно захардкодить например +1 год...
There was a problem hiding this comment.
Да хорошо, можно даже не текущую дату, а начало текущего года, ну и конец года как дату окончания - по дефолту 1 год для околоземных орбит нормально мне кажется.
Replace templates Add default values
| 'follow{}\n', | ||
| 'lock{}\n', | ||
| '}' | ||
| ] |
There was a problem hiding this comment.
if(beginDate==null)
{
beginDate=DateTime.Now.Year
}
script = [
- 'select{object "Orbit-test-spacecraft"}\n', + '{\n',
- 'center {time 5.0}\n', + 'time{'+beginDate+'}\n',
- 'goto { time 5.0 }\n', + 'select{object "Orbit-test-spacecraft"}\n',
- 'follow{}\n', + 'center {time 5.0}\n',
- 'lock{}\n', + 'goto { time 5.0 }\n',
-'}' + 'follow{}\n',
-] + 'lock{}\n', -
-#Generic for orbit.ssc file + ]
+ '}'
No description provided.