Skip to content

Init module for generation scripts#65

Open
iskrich wants to merge 3 commits into
lanit-summer:masterfrom
iskrich:master
Open

Init module for generation scripts#65
iskrich wants to merge 3 commits into
lanit-summer:masterfrom
iskrich:master

Conversation

@iskrich
Copy link
Copy Markdown
Contributor

@iskrich iskrich commented Apr 14, 2016

No description provided.

Comment thread website/scriptFactory.py Outdated
@@ -0,0 +1,57 @@
#Generic for script.cel file
script = [
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

эти массив строк нигде не используется кроме как в методе 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',
    +'}'
    ]
    .....

Плюс нужно проверять что параметры метода не пустые и валидные

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Валидацию завтра реализую.
По поводу решения вынести шаблон скрипта в глобальное поле:
дефолтные скрипты могут часто использоваться, достать без генерации можно будет как scriptFactory.script

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А почему они будут часто использоваться?

Что мне не нравится в script - это явно прописанное время. Сейчас там прописана дата, пусть условно она актуальна сейчас(хотя там 2015 год...), но, например. пройдет еще год - хотим мы по дефолту иметь там 2015? На мой взгляд, если нам реально нужно возвращать по дефолту что-то, то хочется там видеть время с 1 января текущего года.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нет ли в питоне каких то средств работы с временем? что нибудь типа DateTime.UTCNow()?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

да, есть.
январь 2015 это то, начиная откуда по дефолту генерится траектория. Поэтому и скрипт дефолтный такой.
В питоне есть именные параметры метода, можем сделать, что если begind/endDate не заданы, берём текущую дату. шаблон скрипта соответственно будет внутри метода.
полиморфизм соответственно будет в том, что если вызываем метод без параметров, будет возвращаться дефолтный скрипт с текущей датой.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

тогда ещё вопрос с датой окончания
можно захардкодить например +1 год...

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Да хорошо, можно даже не текущую дату, а начало текущего года, ну и конец года как дату окончания - по дефолту 1 год для околоземных орбит нормально мне кажется.

Replace templates
Add default values
Comment thread website/scriptFactory.py
'follow{}\n',
'lock{}\n',
'}'
]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 + ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants