mbed-os

Dependents:   cobaLCDJoyMotor_Thread odometry_omni_3roda_v3 odometry_omni_3roda_v1 odometry_omni_3roda_v2 ... more

Committer:
be_bryan
Date:
Mon Dec 11 17:54:04 2017 +0000
Revision:
0:b74591d5ab33
motor ++

Who changed what in which revision?

UserRevisionLine numberNew contents of line
be_bryan 0:b74591d5ab33 1 """
be_bryan 0:b74591d5ab33 2 mbed SDK
be_bryan 0:b74591d5ab33 3 Copyright (c) 2011-2015 ARM Limited
be_bryan 0:b74591d5ab33 4
be_bryan 0:b74591d5ab33 5 Licensed under the Apache License, Version 2.0 (the "License");
be_bryan 0:b74591d5ab33 6 you may not use this file except in compliance with the License.
be_bryan 0:b74591d5ab33 7 You may obtain a copy of the License at
be_bryan 0:b74591d5ab33 8
be_bryan 0:b74591d5ab33 9 http://www.apache.org/licenses/LICENSE-2.0
be_bryan 0:b74591d5ab33 10
be_bryan 0:b74591d5ab33 11 Unless required by applicable law or agreed to in writing, software
be_bryan 0:b74591d5ab33 12 distributed under the License is distributed on an "AS IS" BASIS,
be_bryan 0:b74591d5ab33 13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
be_bryan 0:b74591d5ab33 14 See the License for the specific language governing permissions and
be_bryan 0:b74591d5ab33 15 limitations under the License.
be_bryan 0:b74591d5ab33 16
be_bryan 0:b74591d5ab33 17 Author: Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com>
be_bryan 0:b74591d5ab33 18
be_bryan 0:b74591d5ab33 19 """
be_bryan 0:b74591d5ab33 20
be_bryan 0:b74591d5ab33 21 from ioper_base import IOperTestCaseBase
be_bryan 0:b74591d5ab33 22
be_bryan 0:b74591d5ab33 23
be_bryan 0:b74591d5ab33 24 class IOperTest_TargetID(IOperTestCaseBase):
be_bryan 0:b74591d5ab33 25 """ tests related to target_id value
be_bryan 0:b74591d5ab33 26 """
be_bryan 0:b74591d5ab33 27
be_bryan 0:b74591d5ab33 28 def __init__(self, scope=None):
be_bryan 0:b74591d5ab33 29 IOperTestCaseBase.__init__(self, scope)
be_bryan 0:b74591d5ab33 30 self.TARGET_ID_LEN = 24
be_bryan 0:b74591d5ab33 31
be_bryan 0:b74591d5ab33 32 def test_target_id_format(self, target_id, target_id_name):
be_bryan 0:b74591d5ab33 33 # Expected length == 24, eg. "02400203D94B0E7724B7F3CF"
be_bryan 0:b74591d5ab33 34 result = []
be_bryan 0:b74591d5ab33 35 target_id_len = len(target_id) if target_id else 0
be_bryan 0:b74591d5ab33 36 if target_id_len == self.TARGET_ID_LEN:
be_bryan 0:b74591d5ab33 37 result.append((self.PASS, "TARGET_ID_LEN", self.scope, "%s '%s' is %d chars long " % (target_id_name, target_id, target_id_len)))
be_bryan 0:b74591d5ab33 38 result.append((self.INFO, "FW_VER_STR", self.scope, "%s Version String is %s.%s.%s " % (target_id_name,
be_bryan 0:b74591d5ab33 39 target_id[0:4],
be_bryan 0:b74591d5ab33 40 target_id[4:8],
be_bryan 0:b74591d5ab33 41 target_id[8:24],
be_bryan 0:b74591d5ab33 42 )))
be_bryan 0:b74591d5ab33 43 else:
be_bryan 0:b74591d5ab33 44 result.append((self.ERROR, "TARGET_ID_LEN", self.scope, "%s '%s' is %d chars long. Expected %d chars" % (target_id_name, target_id, target_id_len, self.TARGET_ID_LEN)))
be_bryan 0:b74591d5ab33 45 return result
be_bryan 0:b74591d5ab33 46
be_bryan 0:b74591d5ab33 47 def test_decode_target_id(self, target_id, target_id_name):
be_bryan 0:b74591d5ab33 48 result = []
be_bryan 0:b74591d5ab33 49 target_id_len = len(target_id) if target_id else 0
be_bryan 0:b74591d5ab33 50 if target_id_len >= 4:
be_bryan 0:b74591d5ab33 51 result.append((self.INFO, "FW_VEN_CODE", self.scope, "%s Vendor Code is '%s'" % (target_id_name, target_id[0:2])))
be_bryan 0:b74591d5ab33 52 result.append((self.INFO, "FW_PLAT_CODE", self.scope, "%s Platform Code is '%s'" % (target_id_name, target_id[2:4])))
be_bryan 0:b74591d5ab33 53 result.append((self.INFO, "FW_VER", self.scope, "%s Firmware Version is '%s'" % (target_id_name, target_id[4:8])))
be_bryan 0:b74591d5ab33 54 result.append((self.INFO, "FW_HASH_SEC", self.scope, "%s Hash of secret is '%s'" % (target_id_name, target_id[8:24])))
be_bryan 0:b74591d5ab33 55 return result
be_bryan 0:b74591d5ab33 56
be_bryan 0:b74591d5ab33 57 def test(self, param=None):
be_bryan 0:b74591d5ab33 58 result = []
be_bryan 0:b74591d5ab33 59 if param:
be_bryan 0:b74591d5ab33 60 pass
be_bryan 0:b74591d5ab33 61 return result
be_bryan 0:b74591d5ab33 62
be_bryan 0:b74591d5ab33 63
be_bryan 0:b74591d5ab33 64 class IOperTest_TargetID_Basic(IOperTest_TargetID):
be_bryan 0:b74591d5ab33 65 """ Basic interoperability tests checking TargetID compliance
be_bryan 0:b74591d5ab33 66 """
be_bryan 0:b74591d5ab33 67
be_bryan 0:b74591d5ab33 68 def __init__(self, scope=None):
be_bryan 0:b74591d5ab33 69 IOperTest_TargetID.__init__(self, scope)
be_bryan 0:b74591d5ab33 70
be_bryan 0:b74591d5ab33 71 def test(self, param=None):
be_bryan 0:b74591d5ab33 72 result = []
be_bryan 0:b74591d5ab33 73
be_bryan 0:b74591d5ab33 74 if param:
be_bryan 0:b74591d5ab33 75 result.append((self.PASS, "TARGET_ID", self.scope, "TargetID '%s' found" % param['target_id']))
be_bryan 0:b74591d5ab33 76
be_bryan 0:b74591d5ab33 77 # Check if target name can be decoded with mbed-ls
be_bryan 0:b74591d5ab33 78 if param['platform_name']:
be_bryan 0:b74591d5ab33 79 result.append((self.PASS, "TARGET_ID_DECODE", self.scope, "TargetID '%s' decoded as '%s'" % (param['target_id'][0:4], param['platform_name'])))
be_bryan 0:b74591d5ab33 80 else:
be_bryan 0:b74591d5ab33 81 result.append((self.ERROR, "TARGET_ID_DECODE", self.scope, "TargetID '%s'... not decoded" % (param['target_id'] if param['target_id'] else '')))
be_bryan 0:b74591d5ab33 82
be_bryan 0:b74591d5ab33 83 # Test for USBID and mbed.htm consistency
be_bryan 0:b74591d5ab33 84 if param['target_id_mbed_htm'] == param['target_id_usb_id']:
be_bryan 0:b74591d5ab33 85 result.append((self.PASS, "TARGET_ID_MATCH", self.scope, "TargetID (USBID) and TargetID (mbed.htm) match"))
be_bryan 0:b74591d5ab33 86 else:
be_bryan 0:b74591d5ab33 87 text = "TargetID (USBID) and TargetID (mbed.htm) don't match: '%s' != '%s'" % (param['target_id_usb_id'], param['target_id_mbed_htm'])
be_bryan 0:b74591d5ab33 88 result.append((self.WARN, "TARGET_ID_MATCH", self.scope, text))
be_bryan 0:b74591d5ab33 89 else:
be_bryan 0:b74591d5ab33 90 result.append((self.ERROR, "TARGET_ID", self.scope, "TargetID not found"))
be_bryan 0:b74591d5ab33 91 return result
be_bryan 0:b74591d5ab33 92
be_bryan 0:b74591d5ab33 93 class IOperTest_TargetID_MbedEnabled(IOperTest_TargetID):
be_bryan 0:b74591d5ab33 94 """ Basic interoperability tests checking TargetID compliance
be_bryan 0:b74591d5ab33 95 """
be_bryan 0:b74591d5ab33 96
be_bryan 0:b74591d5ab33 97 def __init__(self, scope=None):
be_bryan 0:b74591d5ab33 98 IOperTest_TargetID.__init__(self, scope)
be_bryan 0:b74591d5ab33 99
be_bryan 0:b74591d5ab33 100 def test(self, param=None):
be_bryan 0:b74591d5ab33 101 result = []
be_bryan 0:b74591d5ab33 102
be_bryan 0:b74591d5ab33 103 if param:
be_bryan 0:b74591d5ab33 104 # Target ID tests:
be_bryan 0:b74591d5ab33 105 result += self.test_target_id_format(param['target_id_usb_id'], "TargetId (USBID)")
be_bryan 0:b74591d5ab33 106 result += self.test_target_id_format(param['target_id_mbed_htm'], "TargetId (mbed.htm)")
be_bryan 0:b74591d5ab33 107
be_bryan 0:b74591d5ab33 108 # Some extra info about TargetID itself
be_bryan 0:b74591d5ab33 109 result += self.test_decode_target_id(param['target_id_usb_id'], "TargetId (USBID)")
be_bryan 0:b74591d5ab33 110 result += self.test_decode_target_id(param['target_id_mbed_htm'], "TargetId (mbed.htm)")
be_bryan 0:b74591d5ab33 111 return result