2.8 KiB
3.Pikascript标准开发流程
本篇文档将会介绍基于PikaScript开发的标准流程,这个标准流程将会涵盖大部分情况下会用到的PikaScript相关技术。
我们依然以keil的仿真工程为例,如果还没有获得仿真工程,请参考1.三分钟快速上手
1. 使用已有的PikaScript类包
1) PikaScript类包与包接口
我们打开pikascript文件夹,发现文件夹根目录下除了main.py,还有Device.py,PikaObj.py和PikaStdLib.py,这三个.py文件分别对应三个PikaScript类包(class package),简称包(package),每个.py文件本身称为包接口(package interface)。
每一个PikaScript类包由包接口和包实现(package implement)两部分组成。
我们先打开Device.py查看一下内容,在后续的文档中我们会称Device.py为Device包接口。
以下就是Device.py的全部内容。
# Device.py
from PikaObj import *
class LED(TinyObj):
def on():
pass
def off():
pass
class Uart(TinyObj):
def send(data:str):
pass
def setName(name:str):
pass
def printName():
pass
可以看到,Device.py中使用pyhon标准语法定义了两个类,分别是LED
类和Uart
类,这两个类都继承自TinyObj
。
LED类中定义了两个方法,分别是on()
方法和off()
方法,而Uart
类则定义了send(data:str)
方法、setName(name:str)
方法和printName()
方法。
可以看到,这些方法都有一个特点,与其说这是方法的定义,不如说是方法的声明,因为所有的方法实现都pass掉了,都没有写实现。而且方法的入口参数都是带有类型声明的。比如data:str
就表示一个data
参数,参数类型为str
即字符串类型。
这是因为这个包的包实现是由C语言编写的,也就是说,PikaScript的所有类包,都是使用python语法编写声明,而使用C语言编写实现。PikaScript的类包开发是一种面向接口编程的混合编程技术。
然而在使用已有的类包时,是不需要了解包实现的,只需要了解包接口,即可使用这个类包。
2) 导入并调用包
下面我们看一下如何使用这个类包。
我们打开工程中的main.py,见名知意,这个文件是PikaScript的入口文件。
main.py的内容如下
# main.py
from PikaObj import *
import Device
import PikaStdLib
led = Device.LED()
uart = Device.Uart()
mem = PikaStdLib.MemChecker()
print('hello wrold')
uart.setName('com1')
uart.send('My name is:')
uart.printName()
print('mem used max:')
mem.max()
print('mem used now:')
mem.now()