Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1408 → Rev 1407

/demos/trunk/chimera/chimera.c
25,8 → 25,6
kern_printf("Task Name : %s - Max Time : %d\n", proc_table[i].name, (int)tmp);
}
 
trace_send();
 
sys_end();
 
}
80,8 → 78,6
 
clear();
 
trace_init(1000000);
 
init_send(); /* Comunication */
init_key(); /* Keyboard */
 
/demos/trunk/chimera/send.c
12,7 → 12,6
 
#include "chimera.h"
#include "tracer.h"
#include "unistd.h"
 
//#define DEBUG_SEND /* Print Sent Values */
#define SERIAL_ON /* Send Data using Serial Port */
40,9 → 39,9
 
HEXAPOD_STATE status;
 
void *start_tracer = NULL;
void *end_tracer = NULL;
void *trace_pointer = NULL;
void *start_tracer;
void *end_tracer;
void *trace_pointer;
 
extern struct leg_calibration calibration_table[];
 
176,23 → 175,6
return 0;
}
 
/* Init the network stack */
int init_network(char *local_ip)
{
struct net_model m = net_base;
net_setudpip(m, local_ip, "255.255.255.255");
if (net_init(&m) != 1) {
cprintf("Network: Init Error.\n");
return -1;
}
return 0;
}
 
int trace_consumption(int sensor, int value)
{
 
220,63 → 202,27
 
}
 
int trace_send() {
int tracer_send() {
 
static char pkg_buffer[1100];
int actual = 0;
 
UDP_ADDR target, local;
char local_ip[20], target_ip[20];
int socket;
IP_ADDR bindlist[5];
strcpy(local_ip, "192.168.1.10");
strcpy(target_ip, "192.168.1.1");
if (init_network(local_ip)) sys_end();
/* local IP string to addr */
ip_str2addr(local_ip,&(local.s_addr));
/* set the source port */
local.s_port = 20000;
/* target IP string to addr */
ip_str2addr(target_ip,&(bindlist[0]));
memset(&(bindlist[1]), 0, sizeof(IP_ADDR));
/* bind */
socket = udp_bind(&local, NULL);
/* target IP string to addr */
ip_str2addr(target_ip,&(target.s_addr));
/* target port */
target.s_port = 20000;
 
trace_pointer = start_tracer;
actual = 0;
 
while(trace_pointer < end_tracer) {
while(((*(int *)(trace_pointer) >> 8) & 0xAABBFF) == 0xAABBFF) {
 
if (((*(int *)(trace_pointer) >> 8) & 0xAABBFF) == 0xAABBFF) {
memcpy(&(pkg_buffer[actual]),trace_pointer,16);
 
memcpy(&(pkg_buffer[actual]),trace_pointer,16);
actual += 16;
 
actual += 16;
 
if (actual > 1000) {
pkg_buffer[actual] = 0;
udp_sendto(socket, pkg_buffer, strlen(pkg_buffer), &target);
usleep(10000);
actual = 0;
}
 
if (actual > 1000) {
pkg_buffer[actual] = 0;
udp_sendto(socket, pkg_buffer, strlen(pkg_buffer), &target);
usleep(10000);
}
 
trace_pointer += 16;
 
}
 
return 0;
 
}
 
TASK servo_send()
/demos/trunk/chimera/chimera.h
111,5 → 111,5
 
int trace_init(int buffer_size);
int trace_consumption(int sensor, int value);
int trace_send();
int tracer_send();