connectors/LPC/LPCObject.py
author Lolitech
Thu, 03 Jun 2010 12:57:28 +0200
changeset 545 627e5c636a4f
parent 525 e43bc748d1fe
child 556 1ad4e7f1e89e
permissions -rwxr-xr-x
Refactored LPC connector for new bootloader and application modes
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
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    27
class LPCObject():
545
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    28
    def __init__(self, pluginsroot, comportstr):
508
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    29
        self.PLCStatus = "Disconnected"
448
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    30
        self.pluginsroot = pluginsroot
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    31
        self.PLCprint = pluginsroot.logger.write
453
923d036dfa90 LPC connector enhancements
edouard
parents: 448
diff changeset
    32
        self._Idxs = []
545
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    33
        comport = int(comportstr[3:comportstr.index(':')]) - 1
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    34
        try:
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    35
            self.connect(comportstr)
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    36
        except Exception,e:
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    37
            self.pluginsroot.logger.write_error(str(e)+"\n")
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    38
            self.SerialConnection = None
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    39
            self.PLCStatus = "Disconnected"
508
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    40
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    41
    def HandleSerialTransaction(self, transaction):
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    42
        if self.SerialConnection is not None:
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    43
            try:
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    44
                self.PLCStatus, res = self.SerialConnection.HandleTransaction(transaction)
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    45
                return res
545
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    46
            except LPCProtoError,e:
508
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    47
                self.pluginsroot.logger.write_error(str(e)+"\n")
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    48
                self.SerialConnection = None
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    49
                self.PLCStatus = "Disconnected"
73ecb803d8af Revamped LPC connector and toolchain
edouard
parents: 502
diff changeset
    50
                return None
545
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    51
        
448
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    52
    def StartPLC(self, debug=False):
545
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    53
        raise LPCProtoError("Not implemented")
448
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    54
            
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    55
    def StopPLC(self):
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 GetPLCstatus(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 NewPLC(self, md5sum, data, extrafiles):
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 MatchMD5(self, MD5):
545
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    65
        raise LPCProtoError("Not implemented")
502
5343ae43f6d0 LPC connector - one step further
edouard
parents: 453
diff changeset
    66
5343ae43f6d0 LPC connector - one step further
edouard
parents: 453
diff changeset
    67
    def SetTraceVariablesList(self, idxs):
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
448
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    70
    def GetTraceVariables(self):
545
627e5c636a4f Refactored LPC connector for new bootloader and application modes
Lolitech
parents: 525
diff changeset
    71
        raise LPCProtoError("Not implemented")
448
8ef035de86de Some rough copy'n'paste to pave path for an LPC connector
ed
parents:
diff changeset
    72