MethodSCRIPT 在行动:介绍、演示和问答环节

作为 OEM 供应商,PalmSens深知自己的软件有多么重要。我们为客户提供多种软件开发工具包 (SDK),使客户能够更轻松、更高效地编写自己的软件。随着 EmStat Pico 的发布,客户对我们的恒电位仪模块的高效编程又上了一个新台阶。这种小型恒电位仪通过 MethodSCRIPT 与软件进行通信,MethodSCRIPT 是PalmSens开发的一种编程语言,客户可以在几乎任何编程平台上为自己的应用编写软件。在本网络研讨会录音中,我们将向您展示如何从 PSTrace 中提取 MethodSCRIPT 代码、如何使仪器休眠、在触发后执行测量等。

MethodSCRIPT 专家 Hielke Veringa 和 Lutz Stratmann 博士将为您简要介绍 MethodSCRIPT,随后进行现场演示和问答。

使用下面的按钮下载网络研讨会中使用的三个 PSMethod 文件。连接(虚拟)EmStat Pico 或 EmStat4M 模块,并进入 MethodSCRIPT 沙盒编辑器。三个 MethodSCRIPT 示例也显示在下面。

选择 OEM 恒电位仪

下载 PSMethod 示例

下载 MethodSCRIPT 文档

向下滚动查看示例

MethodSCRIPT 网络研讨会中的时间戳

  • 00:00 等待最后一批人加入
  • 01:45 介绍发言者
  • 03:34 方法介绍SCRIPT
  • 08:35 演示三个 MethodSCRIPT 示例
  • 09:39 第一个例子:使用 Sensit BT 的 SWV 保存在机载存储器中
  • 10:45 从机载存储器加载第一次测量结果
  • 11:46 第二个示例:使用 i2C 对 Sensit BT 进行温度测量,从触发按钮开始
  • 15:12 使用 i2C 的更多示例
  • 15:47 第三个例子:EmStat4M 开发套件上的峰值检测
  • 19:30 通过绿色和红色 LED 指示灯提供反馈
  • 22:08 摘要
  • 22:53 什么是休眠模式?
  • 24:20 开始问答环节
  • 24:49 能否进行三次测量,但只将其中一次的数据保存在存储器中?
  • 26:05 有没有如何使用板载实时时钟的示例?
  • 27:36 是否可以根据计时器启动测量?
  • 28:34 MethodSCRIPT 可以用于在多个方法之后执行多个方法吗?
  • 30:40 你能在一个循环中做一个循环吗?
  • 31:30 PSTrace 中的 MethodSCRIPT 和脚本有什么不同?
  • 34:18 您能在 PSTrace 脚本窗口中创建 MethodSCRIPT 吗?
  • 35:02 结合 MethodSCRIPT 和 PSTrace 脚本窗口
  • 37:15 何时使用 C# 软件开发工具包,何时使用 MethodSCRIPT 49:09 能否在 MethodSCRIPT 中进行峰值拟合?
1

方法 SCRIPT 示例 1:Sensit BT 上的 SWV,保存在内部存储器中

e
set_gpio_cfg 0x1E 2
file_open "https://assets.palmsens.com/Measurements/14-04-2022/SWV-10-49-16-0.dmeas" 1
set_script_output 3
var c
var p
var f
var g
set_pgstat_chan 1
set_pgstat_mode 0
set_pgstat_chan 0
set_pgstat_mode 2
set_max_bandwidth 200
set_range_minmax da -400m 400m
set_range ba 59n
set_autoranging ba 59n 59n
set_e -300m
cell_on
meas_loop_swv p c f g -300m 300m 10m 100m 5
pck_start
pck_add p
pck_add c
pck_add f
pck_add g
pck_end
endloop
on_finished:
file_close
cell_off

请注意:当前的 PSTrace 版本(5.9.4206)无法从 MethodSCRIPT 沙盒测量创建的内部存储中加载测量结果。必须使用我们的 SDK 示例打开这些文件。PSTrace 5.10 修正了这一问题。您可从 my.palmsens.com 下载 PSTrace 5.10 的 BETA 版本。

 

2

方法示例 2:使用 i2C 对 Sensit BT 进行温度测量,以触发按钮为起点

e
#############  Hibernate and wait for button push #############
#Hibernate in low power mode, wake up on WAKE pin event (button push)
#Could also have used get_gpio on with GPIO pin if saving power wasn't a concern
hibernate 0x07i 60
############# Declare measurement variables variables #############
var c
var p
var f
var g
############# I2C Temperature measurement initialisation #############
# Declare variables for Temperature measurement
# Most significant bits
var m
# Least significant bits
var l
# Acknowledge
var a
# Array with Write data
array w 2
# Array with Read data
array r 2
# Status register
var s
# Configure I2C GPIOs and set it to 100k clock, 7 bit address
set_gpio_cfg 0x0300i 2
i2c_config 100k 7
# Configure the sensor for 16bit mode with continuous conversion
store_var a 0i ja
array_set w 0i 0x03i
array_set w 1i 0x80i
i2c_write 0x48i w 2 a
############# Measurement initialisation #############
set_pgstat_chan 0
set_pgstat_mode 2
set_max_bandwidth 200
set_range_minmax da -400m 400m
set_range ba 59n
set_autoranging ba 59n 59n
set_e -300m
cell_on
############# Run measurement #############
# Perform SWV measurement from -300 mV to 300 mV at 5 Hz
meas_loop_swv p c f g -300m 300m 10m 100m 5
    ############# Get I2C temperature #############
    # Check if temperature sensor is ready
    store_var s 0x80i ja
    i2c_write_byte 0x48i 0x02i a
    i2c_read_byte 0x48i s a
    bit_and_var s 0x80i
    # Ignore if temperature sensor not ready.
    if s != 0x80i
        # Read temperature values
        i2c_write_byte 0x48i 0x00i a
        i2c_read 0x48i r 2 a
        array_get r 0i m
        array_get r 1i l
        # Convert to degrees Celcius
        bit_lsl_var m 8i
        add_var m l
        if m > 0x8000i
            sub_var m 0x10000i
        endif
        int_to_float m
        div_var m 128
    endif
    ############# Send measurement package #############
    pck_start
        # Sweep potential
        pck_add p
        # Current
        pck_add c
        # Temperature
        pck_add m
    pck_end
endloop
on_finished:
cell_off

 

3

MethodSCRIPT 示例 3:EmStat4M 开发套件上的峰值检测

e
############# Declare measurement variables variables #############
var c
var p
var f
var g
############# Init peak detect #############
# Declare variables
var n
var i
var m
var l
array a 100i
array b 100i
store_var n 0i ja
store_var m 0 ba
store_var l 1M ba
############# Configure LED pins #############
set_gpio_cfg 0x7 1
set_gpio 0x0
############# Measurement initialisation #############
set_pgstat_chan 0
set_pgstat_mode 2
set_max_bandwidth 200
set_range_minmax da -400m 400m
set_range ba 59n
set_autoranging ba 59n 59n
set_e -300m
cell_on
############# Run measurement #############
# Perform SWV measurement from -300 mV to 300 mV at 5 Hz
meas_loop_swv p c f g -300m 300m 10m 100m 5
    # Store measurement data in array
    array_set a n p
    array_set b n c
    add_var n 1i
endloop
############# Simple peak search algorithm #############
# As an example, we just determine max and min value
# Many applications will need a more sophisticated algorithm
store_var i 0i ja
loop i < n
    array_get b i c
    if c > m
        copy_var c m
    endif
    if c < l
        copy_var c l
    endif
    add_var i 1i
endloop
############# Send measurement data #############
store_var i 0i ja
loop i < n
    array_get a i p
    array_get b i c
    pck_start
    pck_add p
    pck_add c
    pck_add m
    pck_add l
    pck_end
    add_var i 1i
endloop
############# Decision time #############
#subtract "min" value from "max" to get the relative peak height
sub_var m l
# Enable red LED if peak > nA, otherwise enable green LED
if m > 2n
    set_gpio 0x1
else
    set_gpio 0x2
endif
############# Turn cell off, even if aborted #############
on_finished:
cell_off