2021-08-27 14:39:49 +08:00
|
|
|
|
## 3.Pikascript标准开发流程
|
|
|
|
|
|
2021-08-27 14:22:03 +08:00
|
|
|
|
本篇文档将会介绍基于PikaScript开发的标准流程,这个标准流程将会涵盖大部分情况下会用到的PikaScript相关技术。
|
|
|
|
|
|
2021-08-27 14:42:02 +08:00
|
|
|
|
我们依然以keil的仿真工程为例,如果还没有获得仿真工程,请参考[1.三分钟快速上手](1.三分钟快速上手.md)
|
2021-08-25 16:07:07 +08:00
|
|
|
|
|
2021-08-27 14:49:18 +08:00
|
|
|
|
### (1) 使用已有的PikaScript类包
|
|
|
|
|
|
2021-08-27 15:58:43 +08:00
|
|
|
|
我们打开pikascript文件夹,发现文件夹根目录下除了main.py,还有Device.py,PikaObj.py和PikaStdLib.py,这三个.py文件分别对应三个PikaScript***类包***(class package),简称***包***(package),每个.py文件本身称为***包接口***(package interface)。
|
2021-08-27 14:50:53 +08:00
|
|
|
|
|
2021-08-27 14:49:18 +08:00
|
|
|
|
![image](https://user-images.githubusercontent.com/88232613/131083885-a78befe9-7aee-4bae-84cc-86c81eef7622.png)
|
|
|
|
|
|
2021-08-27 15:59:16 +08:00
|
|
|
|
每一个PikaScript***类包***由***包接口***和***包实现***(package implement)两部分组成。
|
2021-08-27 14:50:53 +08:00
|
|
|
|
|
2021-08-27 15:59:16 +08:00
|
|
|
|
我们先打开Device.py查看一下内容,在后续的文档中我们会称Device.py为***Device包接口***。
|
2021-08-27 14:49:18 +08:00
|
|
|
|
|
2021-08-27 14:54:42 +08:00
|
|
|
|
以下就是Device.py的全部内容。
|
|
|
|
|
|
2021-08-27 14:54:07 +08:00
|
|
|
|
``` python
|
2021-08-27 14:54:18 +08:00
|
|
|
|
# Device.py
|
2021-08-27 14:54:07 +08:00
|
|
|
|
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
|
|
|
|
|
```
|
2021-08-27 14:57:45 +08:00
|
|
|
|
|
2021-08-27 14:59:33 +08:00
|
|
|
|
可以看到,Device.py中使用pyhon标准语法定义了两个类,分别是`LED`类和`Uart`类,这两个类都继承自```TinyObj```。
|
2021-08-27 14:57:45 +08:00
|
|
|
|
|
2021-08-27 15:02:23 +08:00
|
|
|
|
LED类中定义了两个方法,分别是`on()`方法和`off()`方法,而`Uart`类则定义了`send(data:str)`方法、`setName(name:str)`方法和`printName()`方法。
|
|
|
|
|
|
2021-08-27 15:58:43 +08:00
|
|
|
|
可以看到,这些方法都有一个特点,与其说这是方法的***定义***,不如说是方法的***声明***,因为所有的方法实现都pass掉了,都没有写实现。而且方法的入口参数都是带有***类型声明***的。比如`data:str`就表示一个`data`参数,参数类型为`str`即字符串类型。
|
2021-08-27 15:02:23 +08:00
|
|
|
|
|
2021-08-27 16:02:12 +08:00
|
|
|
|
这是因为这个包的包实现是由C语言编写的,也就是说,PikaScript的所有类包,都是使用python语法编写声明,而使用C语言编写实现。PikaScript的类包开发是一种***面向接口编程***的***混合编程***技术。
|
2021-08-27 16:01:53 +08:00
|
|
|
|
|
|
|
|
|
在编写在使用已有的类包时,是
|