##
##############################################################################
#
# @file       actuatorsettings.py
# @author     The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
# @brief      Implementation of the ActuatorSettings object. This file has been 
#             automatically generated by the UAVObjectGenerator.
# 
# @note       Object definition file: actuatorsettings.xml. 
#             This is an automatically generated file.
#             DO NOT modify manually.
#
# @see        The GNU Public License (GPL) Version 3
#
#############################################################################/
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#


import uavobject

import struct
from collections import namedtuple

# This is a list of instances of the data fields contained in this object
_fields = [ \
	uavobject.UAVObjectField(
		'FixedWingRoll1',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'FixedWingRoll2',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'FixedWingPitch1',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'FixedWingPitch2',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'FixedWingYaw',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'FixedWingThrottle',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'VTOLMotorN',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'VTOLMotorNE',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'VTOLMotorE',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'VTOLMotorSE',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'VTOLMotorS',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'VTOLMotorSW',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'VTOLMotorW',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'VTOLMotorNW',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'CCPMYawStabilizationInManualMode',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'False',
			'1' : 'True',
		}
	),
	uavobject.UAVObjectField(
		'CCPMFlybarless',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'False',
			'1' : 'True',
		}
	),
	uavobject.UAVObjectField(
		'CCPMThrottleCurve',
		'f',
		5,
		[
			'0',
			'1',
			'2',
			'3',
			'4',
		],
		{
		}
	),
	uavobject.UAVObjectField(
		'CCPMPitchCurve',
		'f',
		5,
		[
			'0',
			'1',
			'2',
			'3',
			'4',
		],
		{
		}
	),
	uavobject.UAVObjectField(
		'CCPMCollectiveConstant',
		'f',
		1,
		[
			'0',
		],
		{
		}
	),
	uavobject.UAVObjectField(
		'CCPMCorrectionAngle',
		'f',
		1,
		[
			'0',
		],
		{
		}
	),
	uavobject.UAVObjectField(
		'CCPMAngleW',
		'f',
		1,
		[
			'0',
		],
		{
		}
	),
	uavobject.UAVObjectField(
		'CCPMAngleX',
		'f',
		1,
		[
			'0',
		],
		{
		}
	),
	uavobject.UAVObjectField(
		'CCPMAngleY',
		'f',
		1,
		[
			'0',
		],
		{
		}
	),
	uavobject.UAVObjectField(
		'CCPMAngleZ',
		'f',
		1,
		[
			'0',
		],
		{
		}
	),
	uavobject.UAVObjectField(
		'CCPMServoW',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'CCPMServoX',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'CCPMServoY',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'CCPMServoZ',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'CCPMThrottle',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'CCPMTailRotor',
		'b',
		1,
		[
			'0',
		],
		{
			'0' : 'Channel0',
			'1' : 'Channel1',
			'2' : 'Channel2',
			'3' : 'Channel3',
			'4' : 'Channel4',
			'5' : 'Channel5',
			'6' : 'Channel6',
			'7' : 'Channel7',
			'8' : 'None',
		}
	),
	uavobject.UAVObjectField(
		'UpdatePeriod',
		'H',
		1,
		[
			'0',
		],
		{
		}
	),
	uavobject.UAVObjectField(
		'ChannelUpdateFreq',
		'h',
		2,
		[
			'0',
			'1',
		],
		{
		}
	),
	uavobject.UAVObjectField(
		'ChannelMax',
		'h',
		8,
		[
			'0',
			'1',
			'2',
			'3',
			'4',
			'5',
			'6',
			'7',
		],
		{
		}
	),
	uavobject.UAVObjectField(
		'ChannelNeutral',
		'h',
		8,
		[
			'0',
			'1',
			'2',
			'3',
			'4',
			'5',
			'6',
			'7',
		],
		{
		}
	),
	uavobject.UAVObjectField(
		'ChannelMin',
		'h',
		8,
		[
			'0',
			'1',
			'2',
			'3',
			'4',
			'5',
			'6',
			'7',
		],
		{
		}
	),
]


class ActuatorSettings(uavobject.UAVObject):
    ## Object constants
    OBJID        = 562991684
    NAME         = "ActuatorSettings"
    METANAME     = "ActuatorSettingsMeta"
    ISSINGLEINST = 1
    ISSETTINGS   = 1

    def __init__(self):
        uavobject.UAVObject.__init__(self,
                                     self.OBJID, 
                                     self.NAME,
                                     self.METANAME,
                                     0,
                                     self.ISSINGLEINST)

        for f in _fields:
            self.add_field(f)
        
    def __str__(self):
        s  = ("0x%08X (%10u)  %-30s  %3u bytes  format '%s'\n"
                 % (self.OBJID, self.OBJID, self.NAME, self.get_struct().size, self.get_struct().format))
        for f in self.get_tuple()._fields:
            s += ("\t%s\n" % f)
        return (s)

def main():
    # Instantiate the object and dump out some interesting info
    x = ActuatorSettings()
    print (x)

if __name__ == "__main__":
    #import pdb ; pdb.run('main()')
    main()
