《Python 在汽车软件开发中的应用-喻孝斌.pptx》由会员分享,可在线阅读,更多相关《Python 在汽车软件开发中的应用-喻孝斌.pptx(15页珍藏版)》请在三个皮匠报告上搜索。
1、Python在汽车软件开发中的应用 纲要 汽车软件开发背景 使用Python开发车内软件实践 趟过的坑与面临的挑战分布式ECU的总线架构将进化为中央计算、中央通讯的架构形态车内控制系统趋于形成统一的架构标准及通用的硬件平台,各类控制功能逐渐演变为统一平台下的各类应用汽车软件开发的发展理想与现实理想质量效率成本初期容易出现不稳定周期长成本高现实时间成本质量C+Python&AutoSAR SFPy全面提升大算力芯片+POSIX系统,可用Python开发周期短人员投入少语言复杂度低,故障少选择Python的契机低频触发、时间不敏感诊断OTA测试监控适用业务类型PyServiceAutoSAR Se
2、rvice Framework&Adaptive PlatformPyLibAutoSAR Service FrameworkIVITest CaseQNX/LinuxWeb ServerAPI Tool(PyService命令执行和API测试)Python Adaptive Application/Python ScriptOTA Service(FOTA/SOTA)Diag Service(Query DID/DTC)HTTP/JSONCLI更多扩展 PyServiceara EM/PHM/LT/PER/CRYPTO/DIAG账户/会话/权限异常处理调试和日志Control Service
3、(Log Level)Web屏蔽层参数转换调度环境Monitor Service(System State)逻辑架构IVIWebServicePython Adaptive ApplicationPython ScriptToolhttp系统内AutoSAR安全机制Test Service系统外PyServiceCLI CallAny CallAPI Call Web Service PAA PS Test几类应用方式 PyService使用 PyService约束AutoSARPyServiceOEMPyService积累复用资产WebFunctionCLITest资产复用积累雨量、雨刮状态
4、需要改变雨刮状态,设置雨刮状态通信代理车辆状态存储PyService存入数据SOCMCUWeb serverhttphttp通信代理自动控制外部ECU物理雨刮执行器雨量传感器手动控制获取数据状态传输指令传输实例:雨刮控制避坑:GIL锁&复杂调用避坑:复杂类型适配#include Py_Initialize();PyObject*pModule=PyImport_ImportModule(“module_name);PyObject*pFunc=PyObject_GetAttrString(pModule,func);PyObject*pResult=PyObject_CallObject(pF
5、unc,NULL);for(Py_ssize_t i=0;i PyList_Size(pResult);+i)PyObject*pItem=PyList_GetItem(pResult,i);/第一个元素取不到Py_XDECREF(pResult);Py_XDECREF(pFunc);Py_XDECREF(pModule);Py_Finalize();PyObject*pArgs=PyTuple_New(1);PyObject*pList=PyList_New(0);PyTuple_SetItem(pArgs,0,pList);PyObject*pResult=PyObject_CallObj
6、ect(pFunc,pArgs);for(Py_ssize_t i=0;i PyList_Size(pList);+i)PyObject*pItem=PyList_GetItem(pList,i);/可以获取到Py_XDECREF(pArgs);Py_XDECREF(pList);def func():#do something return obj1,obj2,obj3,obj4def func(out_list):#do something out_list.extend(obj1,obj2,obj3,obj4)l功能安全认证l自动生成测试代码的工具:如Tessyl安全性与保密性l挑战期待社区、更多厂商探讨合作Thanks东软睿驰汽车技术(上海)有限公司email: