[product] written rfid product encapsulation

This commit is contained in:
giomba 2019-04-13 09:29:41 +02:00
parent 26182c778e
commit 61e2f9f6d0

View File

@ -1,35 +1,3 @@
/*
* Copyright (c) 2017, RISE SICS.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* This file is part of the Contiki operating system.
*
*/
#include "net/netstack.h" #include "net/netstack.h"
#include "net/nullnet/nullnet.h" #include "net/nullnet/nullnet.h"
#include "os/net/linkaddr.h" #include "os/net/linkaddr.h"
@ -42,6 +10,9 @@
#include "sys/clock.h" #include "sys/clock.h"
#include "contiki.h" #include "contiki.h"
#include "../common/product.h"
#include "../common/supermarket_net.h"
#define LOG_MODULE "App" #define LOG_MODULE "App"
#define LOG_LEVEL LOG_LEVEL_INFO #define LOG_LEVEL LOG_LEVEL_INFO
@ -49,27 +20,25 @@
static linkaddr_t dest_addr = {{0x00, 0x12, 0x4b, 0x00, 0x0f, 0x82, 0x18, 0x04}}; static linkaddr_t dest_addr = {{0x00, 0x12, 0x4b, 0x00, 0x0f, 0x82, 0x18, 0x04}};
struct Product { product_t product_list[] = {
char name[20]; { 1, "21/12/19", 1.05 },
char expiration_date[8]; // gg/mm/yy { 2, "12/05/19", 3.25 },
double price; { 3, "05/05/21", 2.50 }
}; };
struct Product product_list[] = {
{ "latte" , "21/12/19", 1.05 },
{ "pane" , "12/05/19", 3.25 },
{ "cioccolato", "05/05/21", 2.50 }
};
PROCESS(product_proc, "product random generator"); PROCESS(product_proc, "product random generator");
AUTOSTART_PROCESSES(&product_proc); AUTOSTART_PROCESSES(&product_proc);
void scan_product(struct Product *p){ void scan_product(product_t* p){
nullnet_buf = (uint8_t *)p; item_msg m;
nullnet_len = sizeof(*p); m.msg_type = ITEM_MSG;
memcpy(&m.p, p, sizeof(*p));
nullnet_buf = (uint8_t*)&m;
nullnet_len = sizeof(m);
NETSTACK_NETWORK.output(&dest_addr); NETSTACK_NETWORK.output(&dest_addr);
LOG_INFO("Product %s scanned from ", p->name); LOG_INFO("Product id [%d] scanned from ", (int)p->product_id);
LOG_INFO_LLADDR(&dest_addr); LOG_INFO_LLADDR(&dest_addr);
LOG_INFO_("\n"); LOG_INFO_("\n");
} }