~dpigott/lava-dispatcher/add-lmp-support

« back to all changes in this revision

Viewing changes to lava_dispatcher/actions/lava_lmp.py

  • Committer: dpigott
  • Date: 2013-06-17 11:58:33 UTC
  • Revision ID: dave.pigott@linaro.org-20130617115833-obp0zya37wk3hl3d
Fixing sdmux functionality

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
import serial
22
22
import json
23
23
import logging
 
24
import time
24
25
from serial import (
25
26
    serialutil
26
27
)
34
35
        self.serialno = serialno
35
36
        self.lmpType = "org.linaro.lmp." + board_type
36
37
        try:
37
 
            self.port = serial.Serial("/dev/serial/by-id/usb-Linaro_Ltd_LavaLMP_" + serialno + "-if00")
 
38
            self.port = serial.Serial("/dev/serial/by-id/usb-Linaro_Ltd_LavaLMP_" + serialno + "-if00", timeout=1)
38
39
        except serial.serialutil.SerialException as e:
39
40
            logging.error("LMP: Error opening {0:s}: {1:s}".format(serialno, e))
40
41
            raise
46
47
            raise CriticalError("Lmp %s not connected" % serial)
47
48
 
48
49
    def sendCommand(self, mode, selection):
49
 
        self.sendFrame('{"schema":"' + self.lmpType + '",' +
50
 
                       '"serial":"' + self.serialno + '",' +
51
 
                       '"modes":[{"name":"' + mode + '",' +
52
 
                       '"option":"' + selection + '"}]}')
 
50
        message = '{"schema":"' + self.lmpType + '",' + \
 
51
                       '"serial":"' + self.serialno + '",' + \
 
52
                       '"modes":[{"name":"' + mode + '",' + \
 
53
                       '"option":"' + selection + '"}]}'
 
54
        self.sendFrame(message)
53
55
 
54
56
    def sendFrame(self, command):
55
57
        logging.debug("LMP: Sending %s" % command)
56
 
        self.port.write(self.START_FRAME + command + self.END_FRAME)
 
58
        payload = self.START_FRAME + command + self.END_FRAME
 
59
        self.port.write(payload)
57
60
 
58
61
    def getResponse(self, schema):
59
62
        result = {}
88
91
 
89
92
    def dutDisconnect(self):
90
93
        self.sendCommand("dut", "disconnect")
 
94
        time.sleep(1)
91
95
 
92
96
    def dutuSDA(self):
93
97
        self.sendCommand("dut", "uSDA")
 
98
        time.sleep(1)
94
99
 
95
100
    def dutuSDB(self):
96
101
        self.sendCommand("dut", "uSDB")
 
102
        time.sleep(1)
97
103
 
98
104
    def hostDisconnect(self):
99
105
        self.sendCommand("host", "disconnect")
 
106
        time.sleep(1)
100
107
 
101
108
    def hostuSDA(self):
102
109
        self.sendCommand("host", "uSDA")
 
110
        time.sleep(10)
103
111
 
104
112
    def hostuSDB(self):
105
113
        self.sendCommand("host", "uSDB")
 
114
        time.sleep(10)
106
115
 
107
116
    def dutPowerShortForOff(self):
108
117
        self.sendCommand("dut-power", "short-for-off")
 
118
        time.sleep(1)
109
119
 
110
120
    def dutPowerShortForOn(self):
111
121
        self.sendCommand("dut-power", "short-for-on")
 
122
        time.sleep(1)