+/**************************************************************************/
+/* ---------------------------------------------------------------------- */
+/* Copyright (C) 2006 - 2008 FRESCOR consortium partners: */
+/* */
+/* Universidad de Cantabria, SPAIN */
+/* University of York, UK */
+/* Scuola Superiore Sant'Anna, ITALY */
+/* Kaiserslautern University, GERMANY */
+/* Univ. Politécnica Valencia, SPAIN */
+/* Czech Technical University in Prague, CZECH REPUBLIC */
+/* ENEA SWEDEN */
+/* Thales Communication S.A. FRANCE */
+/* Visual Tools S.A. SPAIN */
+/* Rapita Systems Ltd UK */
+/* Evidence ITALY */
+/* */
+/* See http://www.frescor.org for a link to partners' websites */
+/* */
+/* FRESCOR project (FP6/2005/IST/5-034026) is funded */
+/* in part by the European Union Sixth Framework Programme */
+/* The European Union is not liable of any use that may be */
+/* made of this code. */
+/* */
+/* */
+/* This file is part of FRSH (FRescor ScHeduler) */
+/* */
+/* FRSH is free software; you can redistribute it and/or modify it */
+/* under terms of the GNU General Public License as published by the */
+/* Free Software Foundation; either version 2, or (at your option) any */
+/* later version. FRSH is distributed in the hope that it will be */
+/* useful, but WITHOUT ANY WARRANTY; without even the implied warranty */
+/* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */
+/* General Public License for more details. You should have received a */
+/* copy of the GNU General Public License along with FRSH; see file */
+/* COPYING. If not, write to the Free Software Foundation, 675 Mass Ave, */
+/* Cambridge, MA 02139, USA. */
+/* */
+/* As a special exception, including FRSH header files in a file, */
+/* instantiating FRSH generics or templates, or linking other files */
+/* with FRSH objects to produce an executable application, does not */
+/* by itself cause the resulting executable application to be covered */
+/* by the GNU General Public License. This exception does not */
+/* however invalidate any other reasons why the executable file might be */
+/* covered by the GNU Public License. */
+/**************************************************************************/
+
+/**
+ * @file test_item.c
+ * @author Michal Sojka <sojkam1@fel.cvut.cz>
+ * @date Wed Feb 18 16:11:34 2009
+ *
+ * @brief Test for ITEM WSN resource
+ *
+ *
+ */
+
+
#include <frsh.h>
#include <error.h>
#include <item.h>
//ITEM ADD
//#include "FWSN.h"
+#if 1
+#define N 4
+int contract_deadline_sec[N] = { 4,4,4,4 };
+int contract_nodes[N] = { 0x04, 0x05, 0x02 ,0x03};
+#else
#define N 3
-
-int contract_deadline_sec[N] = { 8, 8, 4 };
-//int contract_deadline_sec[N] = { 8*SLOT_TIME, 8*SLOT_TIME, 4*SLOT_TIME }; //ITEM ADD
-int contract_nodes[N] = { 0x01, 0x03, 0x02 };
-
+int contract_deadline_sec[N] = {2,2,2};
+int contract_nodes[N] = { 0x02,0x03,0x04};
+#endif
int main(int argc, char *argv[])
{
int ret;
frsh_contract_t contract[N];
frsh_vres_id_t vres[N];
int i;
-
+
+
ret = frsh_init();
if (ret) PERROR_AND_EXIT(ret, "frsh_init");
/* Negotiate N contracts */
for (i=0; i<N; i++) {
frsh_rel_time_t deadline;
- frsh_signal_info_t si;
fres_block_item_nodes *nodes;
ret = frsh_contract_init(&contract[i]);
if (ret) PERROR_AND_EXIT(ret, "frsh_contract_init");
/* Set nodes we want to receive data from */
nodes = malloc(sizeof(*nodes));
if (!nodes) PERROR_AND_EXIT(errno, "malloc");
- nodes->mask = contract_nodes[i];
- ret = fres_contract_add_item_nodes(contract[i], nodes);
+ //nodes->mask = contract_nodes[i];
+
+ nodes->mask =1;
+ nodes->mask = nodes->mask << (contract_nodes[i]);
+
+
+ ret = fres_contract_add_item_nodes(contract[i], nodes);
if (ret) PERROR_AND_EXIT(ret, "Cannot add item_nodes block\n");
/* Set deadline */
deadline = fosa_msec_to_rel_time(contract_deadline_sec[i]*1000);
ret = frsh_contract_set_timing_reqs(&contract[i],
- false, &deadline,
- 0, si, 0, si);
+ false, &deadline);
if (ret) PERROR_AND_EXIT(ret, "frsh_contract_set_timing_reqs");
/* Negotiate the contract */
ret = frsh_contract_negotiate(&contract[i], &vres[i]);
if (ret) PERROR_AND_EXIT(ret, "frsh_contract_negotiate");
+ if (ret) printf(" \n frsh_contract_negotiate - NOT ACCEPTED \n");
}
printf("Contracts negotiated\n");
- for (i=0; i<10; i++) {
- int j;
- printf("Reading data\n");
- for (j=0; j<N; j++) {
- unsigned *data;
- ret = fra_item_receive(vres[j], &data);
+ for (i=0; i<30; i++) {
+ //int j;
+ //printf("Reading data\n");
+ //for (j=0; j<N; j++) {
+ unsigned char *data;
+ int len;
+ // int k;
+ ret = fra_item_receive(vres[1], &data);
if (ret == -1) PERROR_AND_EXIT(errno, "frs_item_receive");
+ len = ret;
+
+ /* Do something with the received data */
+
+ /* printf("JOP 89 : %i - ",len);
+ for (k = 0; k < len-1; k++)
+ {
+ printf("%02x ", data[k]);
+ if (k%4 == 3)
+ printf(" | ");
+ }
+ putchar('\n');*/
+
+ int l;
+ int m;
+ for (l=1; l < len/4; l++)
+ {
+ for(m=1; m < 20; m++)
+ {
+ if (data[4*l-1] > 6*m) putchar('*');
+ else putchar(' ');
+ }
+ printf(" | ");
+ }
+ putchar('\n');
- /* TODO: Do something with the received data */
-
forb_free(data);
- }
+ //}
sleep(1);
- }
+ }
-/* for (i=0; i<N; i++) { */
-/* frsh_cancel_contract(vres[i]); */
-/* } */
+ for (i=0; i<N; i++) {
+ frsh_contract_cancel(vres[i]);
+ }
return 0;
}