- flags += " " + RDO_FLAGS[f]
- return "[%d]%d/%d mA%s" % (pos, op_ma, max_ma, flags)
-
- def get_source_cap(self, pdo):
- t = (pdo >> 30) & 3
- if t == 0:
- mv = ((pdo >> 10) & 0x3ff) * 50
- ma = ((pdo >> 0) & 0x3ff) * 10
- p = "%.1fV %.1fA" % (mv/1000.0, ma/1000.0)
- elif t == 1:
- minv = ((pdo >> 10) & 0x3ff) * 50
- maxv = ((pdo >> 20) & 0x3ff) * 50
- mw = ((pdo >> 0) & 0x3ff) * 250
- p = "%.1f/%.1fV %.1fW" % (minv/1000.0, maxv/1000.0, mw/1000.0)
- elif t == 2:
- minv = ((pdo >> 10) & 0x3ff) * 50
- maxv = ((pdo >> 20) & 0x3ff) * 50
- ma = ((pdo >> 0) & 0x3ff) * 10
- p = "%.1f/%.1fV %.1fA" % (minv/1000.0, maxv/1000.0, ma/1000.0)
- else:
- p = ""
- flags = ""
- for f in PDO_FLAGS.keys():
- if pdo & f:
- flags += " " + PDO_FLAGS[f]
- return "%s%s%s" % (PDO_TYPE[t], p, flags)
-
- def get_sink_cap(self, pdo):
- t = (pdo >> 30) & 3
- if t == 0:
- mv = ((pdo >> 10) & 0x3ff) * 50
- ma = ((pdo >> 0) & 0x3ff) * 10
- p = "%.1fV %.1fA" % (mv/1000.0, ma/1000.0)
- elif t == 1:
- minv = ((pdo >> 10) & 0x3ff) * 50
- maxv = ((pdo >> 20) & 0x3ff) * 50
- mw = ((pdo >> 0) & 0x3ff) * 250
- p = "%.1f/%.1fV %.1fW" % (minv/1000.0, maxv/1000.0, mw/1000.0)
- elif t == 2:
- minv = ((pdo >> 10) & 0x3ff) * 50
- maxv = ((pdo >> 20) & 0x3ff) * 50
- ma = ((pdo >> 0) & 0x3ff) * 10
- p = "%.1f/%.1fV %.1fA" % (minv/1000.0, maxv/1000.0, ma/1000.0)