Skip to content

Commit

Permalink
tests: add test application for Cayenne LPP package
Browse files Browse the repository at this point in the history
  • Loading branch information
aabadie committed Mar 21, 2018
1 parent d07cd46 commit 41755e0
Show file tree
Hide file tree
Showing 4 changed files with 100 additions and 0 deletions.
8 changes: 8 additions & 0 deletions tests/pkg_cayenne-lpp/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
include ../Makefile.tests_common

USEPKG += cayenne-lpp

include $(RIOTBASE)/Makefile.include

test:
tests/01-run.py
17 changes: 17 additions & 0 deletions tests/pkg_cayenne-lpp/README.md
Original file line number Diff line number Diff line change
@@ -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 changes: 59 additions & 0 deletions tests/pkg_cayenne-lpp/main.c
Original file line number Diff line number Diff line change
@@ -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 changes: 16 additions & 0 deletions tests/pkg_cayenne-lpp/tests/01-run.py
Original file line number Diff line number Diff line change
@@ -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))

0 comments on commit 41755e0

Please sign in to comment.