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)
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)