tests: add test application for Cayenne LPP package
This commit is contained in:
parent
ec82c65b90
commit
fc4b4851c0
8
tests/pkg_cayenne-lpp/Makefile
Normal file
8
tests/pkg_cayenne-lpp/Makefile
Normal file
@ -0,0 +1,8 @@
|
||||
include ../Makefile.tests_common
|
||||
|
||||
USEPKG += cayenne-lpp
|
||||
|
||||
include $(RIOTBASE)/Makefile.include
|
||||
|
||||
test:
|
||||
tests/01-run.py
|
||||
17
tests/pkg_cayenne-lpp/README.md
Normal file
17
tests/pkg_cayenne-lpp/README.md
Normal file
@ -0,0 +1,17 @@
|
||||
Cayenne LPP test
|
||||
================
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
Simply run the application on native using:
|
||||
|
||||
make all term
|
||||
|
||||
Expected result
|
||||
---------------
|
||||
|
||||
The application should display the following output:
|
||||
|
||||
Cayenne LPP test application
|
||||
03670110056700FF
|
||||
59
tests/pkg_cayenne-lpp/main.c
Normal file
59
tests/pkg_cayenne-lpp/main.c
Normal file
@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright (C) 2018 Inria
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU Lesser
|
||||
* General Public License v2.1. See the file LICENSE in the top level
|
||||
* directory for more details.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @ingroup test
|
||||
* @{
|
||||
*
|
||||
* @file
|
||||
* @brief Cayenne Low Power Payload example application
|
||||
*
|
||||
* @author Alexandre Abadie <alexandre.abadie@inria.fr>
|
||||
*
|
||||
* @}
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "cayenne_lpp.h"
|
||||
|
||||
static cayenne_lpp_t lpp;
|
||||
|
||||
static void _print_buffer(cayenne_lpp_t *lpp)
|
||||
{
|
||||
for (uint8_t i = 0; i < lpp->cursor; ++i) {
|
||||
printf("%02X", lpp->buffer[i]);
|
||||
}
|
||||
puts("");
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
puts("Cayenne LPP test application");
|
||||
|
||||
/* generate payload like the one given as example at
|
||||
* https://mydevices.com/cayenne/docs_stage/lora/#lora-cayenne-low-power-payload
|
||||
*/
|
||||
/* Device with 2 temperature sensors */
|
||||
cayenne_lpp_add_temperature(&lpp, 3, 27.2);
|
||||
cayenne_lpp_add_temperature(&lpp, 5, 25.5);
|
||||
_print_buffer(&lpp);
|
||||
|
||||
/* Device with temperature and acceleration sensors */
|
||||
cayenne_lpp_reset(&lpp);
|
||||
cayenne_lpp_add_temperature(&lpp, 1, -4.1);
|
||||
cayenne_lpp_add_accelerometer(&lpp, 6, 1.234, -1.234, 0);
|
||||
_print_buffer(&lpp);
|
||||
|
||||
/* Device with GPS */
|
||||
cayenne_lpp_reset(&lpp);
|
||||
cayenne_lpp_add_gps(&lpp, 1, 42.3519, -87.9094, 10);
|
||||
_print_buffer(&lpp);
|
||||
|
||||
return 0;
|
||||
}
|
||||
16
tests/pkg_cayenne-lpp/tests/01-run.py
Executable file
16
tests/pkg_cayenne-lpp/tests/01-run.py
Executable file
@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
def testfunc(child):
|
||||
child.expect_exact('03670110056700FF')
|
||||
child.expect_exact('0167FFD8067104D1FB2F0000')
|
||||
child.expect_exact('018806765EF2960A0003E8')
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
|
||||
from testrunner import run
|
||||
sys.exit(run(testfunc))
|
||||
Loading…
x
Reference in New Issue
Block a user