1 #! /usr/bin/env python 2 # Copyright (c) 2015, Intel Corporation 3 # All rights reserved. 4 # 5 # Redistribution and use in source and binary forms, with or without modification, 6 # are permitted provided that the following conditions are met: 7 # 8 # 1. Redistributions of source code must retain the above copyright notice, this 9 # list of conditions and the following disclaimer. 10 # 11 # 2. Redistributions in binary form must reproduce the above copyright notice, 12 # this list of conditions and the following disclaimer in the documentation and/or 13 # other materials provided with the distribution. 14 # 15 # 3. Neither the name of the copyright holder nor the names of its contributors 16 # may be used to endorse or promote products derived from this software without 17 # specific prior written permission. 18 # 19 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 20 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 23 # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 26 # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 30 import PyPfw 31 import sys 32 import logging 33 34 class MyLogger(PyPfw.ILogger): 35 def __init__(self): 36 # Calling the base constructor is necessary: if you don't, MyLogger 37 # won't be recognised as a derived class of PyPfw.ILogger 38 super(MyLogger, self).__init__() 39 40 def info(self, msg): 41 logging.info(msg) 42 def warning(self, msg): 43 logging.warning(msg) 44 45 46 logging.root.setLevel(logging.INFO) 47 48 pfw = PyPfw.ParameterFramework(sys.argv[1]) 49 50 # warning: don't pass MyLogger() directly as argument to setLogger() or it will 51 # be garbage collected 52 mylogger = MyLogger() 53 pfw.setLogger(mylogger); 54 55 moodType = pfw.createSelectionCriterionType(False) 56 for numerical, literal in enumerate(["mad", "sad", "glad"]): 57 moodType.addValuePair(numerical, literal) 58 59 mood = pfw.createSelectionCriterion("Mood", moodType) 60 61 ok, error = pfw.start() 62 if not ok: 63 print("Error while starting the pfw: '{}'".format(error)) 64 65 raw_input("[Press enter to exit]") 66