class Gauge(autosar.Template):
    @classmethod
    def apply(cls, ws):
        componentName = cls.__name__
        package = ws.getComponentTypePackage()
        if package.find(componentName) is None:
            swc = package.createApplicationSoftwareComponent(componentName)
            cls.addPorts(swc)
            cls.addBehavior(swc)

    @classmethod
    def addPorts(cls, swc):
        componentName = cls.__name__
        swc.apply(VehicleSpeed.Receive)
        swc.apply(TachoSpeed.Receive)

    @classmethod
    def addBehavior(cls, swc):
        componentName = cls.__name__
        swc.behavior.createRunnable(componentName + '_Init')
        swc.behavior.createRunnable(componentName + '_Exit')
        swc.behavior.createRunnable(
            componentName + '_Run',
            portAccess=[p.url for p in swc.requirePorts + swc.providePorts])
        swc.behavior.createTimerEvent(componentName + '_Run', 20)


if (__name__ == '__main__'):
    autosar.asSWCGen(Gauge)
class Telltale(autosar.Template):
    @classmethod
    def apply(cls, ws):
        componentName = cls.__name__
        package = ws.getComponentTypePackage()
        if package.find(componentName) is None:
            swc = package.createApplicationSoftwareComponent(componentName)
            cls.addPorts(swc)
            cls.addBehavior(swc)

    @classmethod
    def addPorts(cls, swc):
        componentName = cls.__name__
        for name, p in TELLTALE_P.items():
            swc.apply(p.Send)
        swc.apply(Led1Sts.Receive)
        swc.apply(Led2Sts.Receive)
        swc.apply(Led3Sts.Receive)

    @classmethod
    def addBehavior(cls, swc):
        swc.behavior.createRunnable(
            'Telltale_run',
            portAccess=[p.url for p in swc.requirePorts + swc.providePorts])
        swc.behavior.createTimingEvent('Telltale_run', period=20)


if (__name__ == '__main__'):
    autosar.asSWCGen(Telltale)
Ejemplo n.º 3
0
Archivo: swc.py Proyecto: zhougong1/as
import autosar


class LinApp(autosar.Template):
    @classmethod
    def apply(cls, ws):
        componentName = cls.__name__
        package = ws.getComponentTypePackage()
        if package.find(componentName) is None:
            swc = package.createApplicationSoftwareComponent(componentName)
            cls.addPorts(swc)
            cls.addBehavior(swc)

    @classmethod
    def addPorts(cls, swc):
        componentName = cls.__name__

    @classmethod
    def addBehavior(cls, swc):
        componentName = cls.__name__
        swc.behavior.createRunnable(componentName + '_Init')
        swc.behavior.createRunnable(componentName + '_Exit')
        swc.behavior.createRunnable(
            componentName + '_Run',
            portAccess=[p.url for p in swc.requirePorts + swc.providePorts])
        swc.behavior.createTimerEvent(componentName + '_Run', 20)


if (__name__ == '__main__'):
    autosar.asSWCGen(LinApp)