24
_compsumo 1.0 Generated by Doxygen 1.7.1 Sun Jul 1 2012 19:28:47

compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

Embed Size (px)

Citation preview

Page 1: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

_compsumo1.0

Generated by Doxygen 1.7.1

Sun Jul 1 2012 19:28:47

Page 2: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…
Page 3: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

Contents

1 Data Structure Index 1

1.1 Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 File Index 3

2.1 File List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3 Data Structure Documentation 5

3.1 compsumo_msg Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.1.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.1.2 Field Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.1.2.1 data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.1.2.2 data_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.2 dict_node Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.3 undict_node Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4 File Documentation 7

4.1 ch0adc-sensor/ch0adc-sensor.c File Reference . . . . . . . . . . . . . . . . . . . . . . . . 7

4.1.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4.1.2 Define Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4.1.2.1 CH0ADC_MEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4.1.2.2 INPUT_CHANNEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4.1.2.3 INPUT_REFERENCE . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4.1.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4.1.3.1 SENSORS_SENSOR . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4.1.4 Variable Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4.1.4.1 ch0adc_sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4.2 ch0adc-sensor/ch0adc-sensor.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . 8

4.2.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4.2.2 Variable Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Page 4: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

ii CONTENTS

4.2.2.1 ch0adc_sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4.3 compsumo-collector/compsumo-collector.c File Reference . . . . . . . . . . . . . . . . . 9

4.3.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4.3.2 Define Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4.3.2.1 REXMITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4.3.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4.3.3.1 PROCESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4.3.4 Variable Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4.3.4.1 collect_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4.4 compsumo/compsumo.c File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4.4.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.4.2 Define Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.4.2.1 REXMITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.4.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.4.3.1 PROCESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.4.4 Variable Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.4.4.1 compsumo_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.5 slzw/compsumo-buffer.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.5.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.6 slzw/slzw.c File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.6.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.6.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.6.2.1 init_decomp_dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.6.2.2 init_dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.6.2.3 slzw_compress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.6.2.4 slzw_decompress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.6.3 Variable Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.6.3.1 compression_chars . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.7 slzw/slzw.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.7.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.7.2 Define Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.7.2.1 NUM_DATOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.7.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.7.3.1 slzw_compress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.7.3.2 slzw_decompress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4.7.4 Variable Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Generated on Sun Jul 1 2012 19:28:47 for _compsumo by Doxygen

Page 5: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

CONTENTS iii

4.7.4.1 lzw_output_file_buffer . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4.7.4.2 write_buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Generated on Sun Jul 1 2012 19:28:47 for _compsumo by Doxygen

Page 6: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…
Page 7: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

Chapter 1

Data Structure Index

1.1 Data Structures

Here are the data structures with brief descriptions:

compsumo_msg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5dict_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5undict_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Page 8: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

2 Data Structure Index

Generated on Sun Jul 1 2012 19:28:47 for _compsumo by Doxygen

Page 9: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

Chapter 2

File Index

2.1 File List

Here is a list of all documented files with brief descriptions:

ch0adc-sensor/ch0adc-sensor.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7ch0adc-sensor/ch0adc-sensor.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8compsumo-collector/compsumo-collector.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9compsumo/compsumo.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10slzw/compsumo-buffer.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12slzw/slzw.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12slzw/slzw.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Page 10: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

4 File Index

Generated on Sun Jul 1 2012 19:28:47 for _compsumo by Doxygen

Page 11: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

Chapter 3

Data Structure Documentation

3.1 compsumo_msg Struct Reference

Data Fields

• unsigned char data [COMPSUMO_BUFF_SIZE]• uint16_t data_size

3.1.1 Detailed Description

Estructura del paquete de datos para enviar por la radio

3.1.2 Field Documentation

3.1.2.1 unsigned char data

Arreglo donde se inclyen los datos a enviar

3.1.2.2 uint16_t data_size

Numero de datos que se envian

The documentation for this struct was generated from the following files:

• compsumo/compsumo.c• compsumo-collector/compsumo-collector.c

3.2 dict_node Struct Reference

Data Fields

• unsigned longer_string:12• unsigned next_hash1:4• unsigned next_hash2:8

Page 12: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

6 Data Structure Documentation

• unsigned char entry

The documentation for this struct was generated from the following file:

• slzw/slzw.h

3.3 undict_node Struct Reference

Data Fields

• int up• unsigned char entry• unsigned char undefined

The documentation for this struct was generated from the following file:

• slzw/slzw.h

Generated on Sun Jul 1 2012 19:28:47 for _compsumo by Doxygen

Page 13: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

Chapter 4

File Documentation

4.1 ch0adc-sensor/ch0adc-sensor.c File Reference

#include "contiki.h"

#include "lib/sensors.h"

#include "ch0adc-sensor.h"

#include "dev/sky-sensors.h"

Defines

• #define INPUT_CHANNEL (1 << INCH_0)

• #define INPUT_REFERENCE SREF_0

• #define CH0ADC_MEM ADC12MEM0

Functions

• SENSORS_SENSOR (ch0adc_sensor,"ch0adc", value, configure, status)

Variables

• struct sensors_sensor ch0adc_sensor

4.1.1 Detailed Description

Firmware para nodo RSI TelosB, que recoge datos desde el canal 0 del ADC, los comprime, y los enviapor radio.

Authors

Francisco Aguerre, Carlos Briozzo, Ismael Rodriguez

Page 14: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

8 File Documentation

4.1.2 Define Documentation

4.1.2.1 #define CH0ADC_MEM ADC12MEM0

Define el lugar de memoria desde donde se lee el resultado de la conversion

4.1.2.2 #define INPUT_CHANNEL (1 << INCH_0)

Define el canal de entrada como el canal 0 del ADC

4.1.2.3 #define INPUT_REFERENCE SREF_0

Define la fuente de tensión como referencia para la conversión

4.1.3 Function Documentation

4.1.3.1 SENSORS_SENSOR ( ch0adc_sensor , "ch0adc" , value , configure , status )

Incluye al sensor ch0adc-sensor a la lista de sensores

4.1.4 Variable Documentation

4.1.4.1 struct sensors_sensor ch0adc_sensor

Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki

4.2 ch0adc-sensor/ch0adc-sensor.h File Reference

#include "lib/sensors.h"

Defines

• #define CH0ADC_SENSOR "ADC_CH0"

Variables

• struct sensors_sensor ch0adc_sensor

4.2.1 Detailed Description

Firmware para nodo RSI TelosB, que recoge datos desde el canal 0 del ADC, los comprime, y los enviapor radio.

Authors

Francisco Aguerre, Carlos Briozzo, Ismael Rodriguez

Generated on Sun Jul 1 2012 19:28:47 for _compsumo by Doxygen

Page 15: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

4.3 compsumo-collector/compsumo-collector.c File Reference 9

4.2.2 Variable Documentation

4.2.2.1 struct sensors_sensor ch0adc_sensor

Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki

4.3 compsumo-collector/compsumo-collector.c File Reference

#include "contiki.h"

#include "net/netstack.h"

#include "net/rime.h"

#include "net/rime/collect.h"

#include "net/rime/collect-neighbor.h"

#include "net/rime/timesynch.h"

#include "dev/leds.h"

#include "dev/button-sensor.h"

#include "dev/ch0adc-sensor.h"

#include "dev/cc2420.h"

#include <stdio.h>

#include <string.h>

#include "contiki-net.h"

#include "../slzw/compsumo-buffer.h"

#include "../slzw/slzw.h"

#include "../slzw/slzw.c"

Data Structures

• struct compsumo_msg

Defines

• #define REXMITS 4

Functions

• PROCESS (collect_process,"compsumo-collect process")• PROCESS_THREAD (collect_process, ev, data)

Variables

• AUTOSTART_PROCESSES & collect_process

Generated on Sun Jul 1 2012 19:28:47 for _compsumo by Doxygen

Page 16: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

10 File Documentation

4.3.1 Detailed Description

Firmware para nodo RSI TelosB, que recoge datos desde el canal 0 del ADC, los comprime, y los enviapor radio.

Authors

Francisco Aguerre, Carlos Briozzo, Ismael Rodriguez

4.3.2 Define Documentation

4.3.2.1 #define REXMITS 4

Numero de veces que se intenta reenviar un paquete antes de declararlo como perdido

4.3.3 Function Documentation

4.3.3.1 PROCESS ( collect_process , "compsumo-collect process" )

Proceso principal del nodo sink

4.3.4 Variable Documentation

4.3.4.1 AUTOSTART_PROCESSES& collect_process

Inicializa el proceso ’collect_process’ al cargar el sistema operativo

4.4 compsumo/compsumo.c File Reference

#include "contiki.h"

#include "net/netstack.h"

#include "net/rime.h"

#include "net/rime/collect.h"

#include "net/rime/collect-neighbor.h"

#include "net/rime/timesynch.h"

#include "dev/leds.h"

#include "dev/button-sensor.h"

#include "dev/ch0adc-sensor.h"

#include "dev/cc2420.h"

#include <stdio.h>

#include <string.h>

#include "contiki-net.h"

#include "../slzw/compsumo-buffer.h"

Generated on Sun Jul 1 2012 19:28:47 for _compsumo by Doxygen

Page 17: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

4.4 compsumo/compsumo.c File Reference 11

#include "../slzw/slzw.h"

#include "../slzw/slzw.c"

Data Structures

• struct compsumo_msg

Defines

• #define REXMITS 4

Functions

• PROCESS (compsumo_process,"compsumo process")• PROCESS_THREAD (compsumo_process, ev, data)

Variables

• AUTOSTART_PROCESSES & compsumo_process

4.4.1 Detailed Description

Firmware para nodo RSI TelosB, que recoge datos desde el canal 0 del ADC, los comprime, y los enviapor radio.

Authors

Francisco Aguerre, Carlos Briozzo, Ismael Rodriguez

4.4.2 Define Documentation

4.4.2.1 #define REXMITS 4

Numero de veces que se intenta reenviar un paquete antes de declararlo como perdido

4.4.3 Function Documentation

4.4.3.1 PROCESS ( compsumo_process , "compsumo process" )

Proceso principal del nodo que envia los datos

4.4.4 Variable Documentation

4.4.4.1 AUTOSTART_PROCESSES& compsumo_process

Inicializa el proceso ’collect_process’ al cargar el sistema operativo

Generated on Sun Jul 1 2012 19:28:47 for _compsumo by Doxygen

Page 18: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

12 File Documentation

4.5 slzw/compsumo-buffer.h File Reference

#include "contiki.h"

#include "slzw.h"

Defines

• #define COMPSUMO_BUFF_SIZE FLASH_PAGE_SIZE

4.5.1 Detailed Description

Firmware para nodo RSI TelosB, que recoge datos desde el canal 0 del ADC, los comprime, y los enviapor radio.

Authors

Francisco Aguerre, Carlos Briozzo, Ismael Rodriguez

4.6 slzw/slzw.c File Reference

#include "slzw.h"

#include <msp430x16x.h>

#include <stdio.h>

#include <string.h>

Functions

• void init_dictionary ()• void init_decomp_dictionary ()• unsigned int slzw_compress (unsigned int in_filesize, unsigned char mini_cache_size)• unsigned int slzw_decompress (unsigned int in_filesize)

Variables

• unsigned char compression_chars [(MAX_DICT_ENTRIES+1)∗sizeof(Dict_node)]

4.6.1 Detailed Description

Algoritmo de compresion s-lzw

Authors

Sadler

Generated on Sun Jul 1 2012 19:28:47 for _compsumo by Doxygen

Page 19: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

4.6 slzw/slzw.c File Reference 13

4.6.2 Function Documentation

4.6.2.1 void init_decomp_dictionary ( )

Funcion que inicializa el diccionario para la descompresion

init_decomp_dictionary

Function Description: Initialize the LZW dictionary for decompression.

Revision History: 25 Oct 2006 Chris Sadler Initial Release

4.6.2.2 void init_dictionary ( )

Funcion que inicializa el diccionario para la compresion

init_dictionary

Function Description: Initialize the LZW dictionary.

Revision History: 25 Oct 2006 Chris Sadler Initial Release

4.6.2.3 unsigned int slzw_compress ( unsigned int in_filesize, unsigned char mini_cache_size )

Function Description: Compress data with the S-LZW-MC compression technique. This differs slightlyfrom the code I used in the paper since it assumes that the data block is in RAM rather than in flash. Also,the code now embeds the size of the mini-cache in the first byte of the compressed stream so that thedecompressor does not need to know ahead of time.

This function looks for the input data in the variable "write_buffer".

Inputs:

• in_filesize - Size of the file to compress

• mini_cache_size - Number of entries in the mini-cache. Irrelevant if USE_MINICACHE is notdefined

Expected Inputs:

• The data should be in write_buffer

Outputs:

• Returns the compressed size

• Compressed data is in lzw_output_file_buffer

Revision History: 25 Oct 2006 Chris Sadler Initial Release 10 Mar 2007 Dirk Buijsman Patched bug relatedto adding the last dictionary entry to the mini-cache 10 Mar 2007 Chris Sadler If the post-compression datasize is actually larger than the pre-compression data size, this code now reverts back to the pre-compressiondata and signifies this by making the mini-cache size 0.

4.6.2.4 unsigned int slzw_decompress ( unsigned int in_filesize )

slzw_decompress

Generated on Sun Jul 1 2012 19:28:47 for _compsumo by Doxygen

Page 20: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

14 File Documentation

Function Description: Decompress data that we compressed. The mini-cache size is embedded in the firstcharacter of the compressed stream, so we do not need to pass it in as an entry here. We don’t spend muchtime on this algorithm in the paper, so it has not been tested as thoroughly as the compress function, but ithas worked for me so far.

Inputs:

• in_filesize - Size of the file to compress

Expected Inputs:

• The data should be in lzw_output_file_buffer

Outputs:

• Returns the compressed size

• Decompressed data is in write_buffer

Revision History: 25 Oct 2006 Chris Sadler Initial Release 10 Mar 2007 Dirk Buijsman Patched bugrelated to adding the last dictionary entry to the mini-cache 10 Mar 2007 Chris Sadler Handles the casewhere the compressor reverts back to the uncompressed data because the compression had resulted in adata expansion.

4.6.3 Variable Documentation

4.6.3.1 unsigned char compression_chars[(MAX_DICT_ENTRIES+1)∗sizeof(Dict_node)]

Diccionario del algoritmo

4.7 slzw/slzw.h File Reference

Data Structures

• struct dict_node• struct undict_node

Defines

• #define NUM_DATOS 32• #define FLASH_PAGE_SIZE NUM_DATOS• #define BLOCK_SIZE (FLASH_PAGE_SIZE << 1)• #define MAX_DICT_ENTRIES 512• #define MAX_ENTRY_BITS 9• #define USE_MINICACHE• #define ADD_NEWEST• #define MAX_SIZE_OF_MINI_CACHE 32• #define STRUCTURED_TRANSFORM• #define SIZE_OF_READING 2• #define NUMBER_OF_READINGS FLASH_PAGE_SIZE

Generated on Sun Jul 1 2012 19:28:47 for _compsumo by Doxygen

Page 21: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

4.7 slzw/slzw.h File Reference 15

• #define WRITE_BUFFER_SIZE ((FLASH_PAGE_SIZE << 1) + (FLASH_PAGE_SIZE >> 1))• #define LZW_BUFFER_SIZE WRITE_BUFFER_SIZE• #define HASH1_MASK 0xFF00• #define HASH2_MASK 0x00FF• #define HIT 1• #define MISS 0• #define get_hash(x) ((x.next_hash1 << 8) + x.next_hash2)

Typedefs

• typedef struct dict_node Dict_node• typedef struct undict_node Undict_node

Functions

• unsigned int slzw_compress (unsigned int in_filesize, unsigned char mini_cache_size)• unsigned int slzw_decompress (unsigned int in_filesize)

Variables

• unsigned char lzw_output_file_buffer [LZW_BUFFER_SIZE]• unsigned char write_buffer [BLOCK_SIZE]

4.7.1 Detailed Description

Algoritmo de compresion s-lzw

Authors

Sadler

4.7.2 Define Documentation

4.7.2.1 #define NUM_DATOS 32

Numero de datos a comprimir

4.7.3 Function Documentation

4.7.3.1 unsigned int slzw_compress ( unsigned int in_filesize, unsigned char mini_cache_size )

Funcion que comprime los datos

Function Description: Compress data with the S-LZW-MC compression technique. This differs slightlyfrom the code I used in the paper since it assumes that the data block is in RAM rather than in flash. Also,the code now embeds the size of the mini-cache in the first byte of the compressed stream so that thedecompressor does not need to know ahead of time.

This function looks for the input data in the variable "write_buffer".

Inputs:

Generated on Sun Jul 1 2012 19:28:47 for _compsumo by Doxygen

Page 22: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

16 File Documentation

• in_filesize - Size of the file to compress

• mini_cache_size - Number of entries in the mini-cache. Irrelevant if USE_MINICACHE is notdefined

Expected Inputs:

• The data should be in write_buffer

Outputs:

• Returns the compressed size

• Compressed data is in lzw_output_file_buffer

Revision History: 25 Oct 2006 Chris Sadler Initial Release 10 Mar 2007 Dirk Buijsman Patched bug relatedto adding the last dictionary entry to the mini-cache 10 Mar 2007 Chris Sadler If the post-compression datasize is actually larger than the pre-compression data size, this code now reverts back to the pre-compressiondata and signifies this by making the mini-cache size 0.

4.7.3.2 unsigned int slzw_decompress ( unsigned int in_filesize )

Funcion que descomprime los datos

slzw_decompress

Function Description: Decompress data that we compressed. The mini-cache size is embedded in the firstcharacter of the compressed stream, so we do not need to pass it in as an entry here. We don’t spend muchtime on this algorithm in the paper, so it has not been tested as thoroughly as the compress function, but ithas worked for me so far.

Inputs:

• in_filesize - Size of the file to compress

Expected Inputs:

• The data should be in lzw_output_file_buffer

Outputs:

• Returns the compressed size

• Decompressed data is in write_buffer

Revision History: 25 Oct 2006 Chris Sadler Initial Release 10 Mar 2007 Dirk Buijsman Patched bugrelated to adding the last dictionary entry to the mini-cache 10 Mar 2007 Chris Sadler Handles the casewhere the compressor reverts back to the uncompressed data because the compression had resulted in adata expansion.

4.7.4 Variable Documentation

4.7.4.1 unsigned char lzw_output_file_buffer[LZW_BUFFER_SIZE]

Buffer donde se almacenan datos comprimidos

Generated on Sun Jul 1 2012 19:28:47 for _compsumo by Doxygen

Page 23: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

4.7 slzw/slzw.h File Reference 17

4.7.4.2 unsigned char write_buffer[BLOCK_SIZE]

Buffer donde se almacenan datos para comprirse

Generated on Sun Jul 1 2012 19:28:47 for _compsumo by Doxygen

Page 24: compsumo - eva.fing.edu.uy · Declara al sensor ch0adc_sensor como un sensors_sensor (modelo) de Contiki ... #include "net/rime.h" #include "net/rime/collect.h" #include "net/rime…

Index

ch0adc-sensor.cCH0ADC_MEM, 8ch0adc_sensor, 8INPUT_CHANNEL, 8INPUT_REFERENCE, 8SENSORS_SENSOR, 8

ch0adc-sensor.hch0adc_sensor, 9

ch0adc-sensor/ch0adc-sensor.c, 7ch0adc-sensor/ch0adc-sensor.h, 8CH0ADC_MEM

ch0adc-sensor.c, 8ch0adc_sensor

ch0adc-sensor.c, 8ch0adc-sensor.h, 9

collect_processcompsumo-collector.c, 10

compression_charsslzw.c, 14

compsumo-collector.ccollect_process, 10PROCESS, 10REXMITS, 10

compsumo-collector/compsumo-collector.c, 9compsumo.c

compsumo_process, 11PROCESS, 11REXMITS, 11

compsumo/compsumo.c, 10compsumo_msg, 5

data, 5data_size, 5

compsumo_processcompsumo.c, 11

datacompsumo_msg, 5

data_sizecompsumo_msg, 5

dict_node, 5

init_decomp_dictionaryslzw.c, 13

init_dictionaryslzw.c, 13

INPUT_CHANNELch0adc-sensor.c, 8

INPUT_REFERENCEch0adc-sensor.c, 8

lzw_output_file_bufferslzw.h, 16

NUM_DATOSslzw.h, 15

PROCESScompsumo-collector.c, 10compsumo.c, 11

REXMITScompsumo-collector.c, 10compsumo.c, 11

SENSORS_SENSORch0adc-sensor.c, 8

slzw.ccompression_chars, 14init_decomp_dictionary, 13init_dictionary, 13slzw_compress, 13slzw_decompress, 13

slzw.hlzw_output_file_buffer, 16NUM_DATOS, 15slzw_compress, 15slzw_decompress, 16write_buffer, 16

slzw/compsumo-buffer.h, 12slzw/slzw.c, 12slzw/slzw.h, 14slzw_compress

slzw.c, 13slzw.h, 15

slzw_decompressslzw.c, 13slzw.h, 16

undict_node, 6

write_bufferslzw.h, 16