connectors/LPC/LPCObject.py
author edouard
Fri, 18 Feb 2011 12:29:48 +0100
changeset 576 7fcdc0d3d8d9
parent 569 37af7286dd65
child 578 6f5795bdee49
permissions -rwxr-xr-x
Some typo fixes to make debug related methods in LPCAppOject stop throwing exceptions, less agressive error message when unplugging LPC
448
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
     1
#!/usr/bin/env python
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
     2
# -*- coding: utf-8 -*-
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
     3
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
     4
#This file is part of Beremiz, a Integrated Development Environment for
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
     5
#programming IEC 61131-3 automates supporting plcopen standard and CanFestival. 
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
     6
#
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
     7
#Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
     8
#
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
     9
#See COPYING file for copyrights details.
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    10
#
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    11
#This library is free software; you can redistribute it and/or
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    12
#modify it under the terms of the GNU General Public
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    13
#License as published by the Free Software Foundation; either
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    14
#version 2.1 of the License, or (at your option) any later version.
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    15
#
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    16
#This library is distributed in the hope that it will be useful,
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    17
#but WITHOUT ANY WARRANTY; without even the implied warranty of
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    18
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    19
#General Public License for more details.
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    20
#
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    21
#You should have received a copy of the GNU General Public
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    22
#License along with this library; if not, write to the Free Software
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    23
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    24
453
923d036dfa90 LPC connector enhancements
edouard
parents: 448
diff changeset
    25
from LPCProto import *
448
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    26
569
37af7286dd65 LPC program transfer more verbose, test code added in __main__ of LPCBootProto
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents: 563
diff changeset
    27
37af7286dd65 LPC program transfer more verbose, test code added in __main__ of LPCBootProto
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents: 563
diff changeset
    28
448
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    29
class LPCObject():
545
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    30
    def __init__(self, pluginsroot, comportstr):
508
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    31
        self.PLCStatus = "Disconnected"
448
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    32
        self.pluginsroot = pluginsroot
569
37af7286dd65 LPC program transfer more verbose, test code added in __main__ of LPCBootProto
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents: 563
diff changeset
    33
        self.PLCprint = pluginsroot.logger.writeyield
453
923d036dfa90 LPC connector enhancements
edouard
parents: 448
diff changeset
    34
        self._Idxs = []
556
1ad4e7f1e89e LPC Composer don't send comma at the end of serial port name.
Lolitech
parents: 545
diff changeset
    35
        comport = int(comportstr[3:]) - 1
545
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    36
        try:
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    37
            self.connect(comportstr)
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    38
        except Exception,e:
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    39
            self.pluginsroot.logger.write_error(str(e)+"\n")
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    40
            self.SerialConnection = None
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    41
            self.PLCStatus = "Disconnected"
508
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    42
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    43
    def HandleSerialTransaction(self, transaction):
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    44
        if self.SerialConnection is not None:
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    45
            try:
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    46
                self.PLCStatus, res = self.SerialConnection.HandleTransaction(transaction)
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    47
                return res
569
37af7286dd65 LPC program transfer more verbose, test code added in __main__ of LPCBootProto
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents: 563
diff changeset
    48
            except Exception,e:
576
7fcdc0d3d8d9 Some typo fixes to make debug related methods in LPCAppOject stop throwing exceptions, less agressive error message when unplugging LPC
edouard
parents: 569
diff changeset
    49
                self.pluginsroot.logger.write_warning(str(e)+"\n")
563
c74a37d156df Better serial comm handling in LPC connector
Lolitech
parents: 556
diff changeset
    50
                self.SerialConnection.close()
508
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    51
                self.SerialConnection = None
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    52
                self.PLCStatus = "Disconnected"
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    53
                return None
545
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    54
        
448
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    55
    def StartPLC(self, debug=False):
545
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    56
        raise LPCProtoError("Not implemented")
448
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    57
            
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    58
    def StopPLC(self):
545
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    59
        raise LPCProtoError("Not implemented")
448
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    60
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    61
    def GetPLCstatus(self):
545
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    62
        raise LPCProtoError("Not implemented")
448
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    63
    
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    64
    def NewPLC(self, md5sum, data, extrafiles):
545
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    65
        raise LPCProtoError("Not implemented")
448
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    66
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    67
    def MatchMD5(self, MD5):
545
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    68
        raise LPCProtoError("Not implemented")
502
5343ae43f6d0 LPC connector - one step further
edouard
parents: 453
diff changeset
    69
5343ae43f6d0 LPC connector - one step further
edouard
parents: 453
diff changeset
    70
    def SetTraceVariablesList(self, idxs):
545
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    71
        raise LPCProtoError("Not implemented")
502
5343ae43f6d0 LPC connector - one step further
edouard
parents: 453
diff changeset
    72
448
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    73
    def GetTraceVariables(self):
545
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    74
        raise LPCProtoError("Not implemented")
448
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    75