#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# This file is part of OpenModelica.
#
# Copyright (c) 1998-CurrentYear, Linköping University,
# Department of Computer and Information Science,
# SE-58183 Linköping, Sweden.
#
# All rights reserved.
#
# THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3
# AND THIS OSMC PUBLIC LICENSE (OSMC-PL).
# ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES RECIPIENT'S
# ACCEPTANCE OF THE OSMC PUBLIC LICENSE.
#
# The OpenModelica software and the Open Source Modelica
# Consortium (OSMC) Public License (OSMC-PL) are obtained
# from Linköping University, either from the above address,
# from the URLs: http://www.ida.liu.se/projects/OpenModelica or
# http://www.openmodelica.org, and in the OpenModelica distribution.
# GNU version 3 is obtained from: http://www.gnu.org/copyleft/gpl.html.
#
# This program is distributed WITHOUT ANY WARRANTY; without
# even the implied warranty of  MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH
# IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS
# OF OSMC-PL.
#
# See the full OSMC Public License conditions for more details.
#
#

from sys import argv
import os
from casADiInterface import xmlModel
from nolp import MPC, CasIpopt
from sys import exit, argv

try:
  from casadi import SymbolicOCP
except:
  print"\nError: Don't find CasADi."
  exit(-1);

name = argv[1]
name = name.split('.xml')[0]
md = xmlModel(argv[1])
NOLP = MPC(md,128,3)
res = CasIpopt(NOLP())
try:
  os.mkdir('results/')
except:
  pass
try:
  os.mkdir('results/'+name)
except:
  pass
res.plotState(None,'results/'+name+'/states')
res.plotControl(None,'results/'+name+'/input')
res.make_results('results/'+name+'/values.txt')
