/*****************************************************************************/
/* File: can-ir.h */
/* Author: Christopher Odenbach */
/* Date: April 1999 */
/* Description: Include file for use of the CAN-IR-Module */
/*****************************************************************************/
#ifndef CAN_IR_H
#define CAN_IR_H
/*
* includes
*
* these includes are needed for the module
*
*/
#include "bios.h"
#include "usercr.h"
#include "math.h"
#include "stdlib.h"
#include "stdio.h"
#include "string.h"
/* global variables */
/* DON'T USE THESE VARIABLES IN YOUR PROGRAM ! */
static unsigned char data[8]; // the buffer
static uint8 sender; // the sender
static uint8 length; // the size of the message
static boolean ir_ready = FALSE; // the flag for the process
/* YOU MAY USE THESE VARIABLES */
static char robot_ID[32]; // the list of existing robots
static uint8 robnr; // the number of existing robots
/*
* send_IR
*
* just send any string up to 8 characters to a robot from A to Z
*
*/
void send_IR (char to, char *data)
{
uint8 length, receiver, i;
length = strlen (data);
receiver = (int)to - 65;
var_put_extension(2,((length - 1)<<5) | receiver);
for (i=0; i < length; i++) {
tim_suspend_task(1); /* we need here about 100 µs */
var_put_extension(3,data[i]);
}
}
/*
* receive_IR
*
* just define a routine named receive_IR in the shown way
* to make your program react to a received message
*
*/
void receive_IR(uint8 sender, uint8 length, uint8 *data);
/*
* process_IR_data
*
* this process has to be started with tim_new_task()
* it takes over the received data and handles commands like
* logins etc.
*
*/
void process_IR_data()
{
uint8 i;
unsigned char local_data[8]; /* the buffer */
uint8 local_sender; /* the sender */
uint8 local_length; /* the size of the message */
boolean exists;
for (i=0; i<32; i++) robot_ID[i]=0x00;
for(;;) {
do {
tim_switch_fast();
} while (!ir_ready);
var_disable_irq();
local_sender = (char)((int)sender + 65);
local_length = length;
for (i=0; i> 5) + 1;
sender = (status & 0x1F);
for (i=0; i
Christopher Odenbach
1999-06-01