Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 126 → Rev 127

/Riddim/fc.c
0,0 → 1,125
#include "fc.h"
 
 
unsigned char TxBuffer[150];
unsigned char _TxBuffer[150];
 
 
int mk_socket;
 
 
void AddCRC(unsigned int wieviele)
{
unsigned int tmpCRC = 0,i;
for(i = 0; i < wieviele;i++)
{
tmpCRC += TxBuffer[i];
}
tmpCRC %= 4096;
TxBuffer[i++] = '=' + tmpCRC / 64;
TxBuffer[i++] = '=' + tmpCRC % 64;
TxBuffer[i++] = '\r';
}
 
 
void SendOutData(unsigned char cmd,unsigned char modul, unsigned char *snd, unsigned char len)
{
int status =0;
unsigned int pt = 0;
unsigned char a,b,c;
unsigned char ptr = 0;
 
TxBuffer[pt++] = '#'; // Startzeichen
TxBuffer[pt++] = modul; // Adresse (a=0; b=1,...)
TxBuffer[pt++] = cmd; // Commando
 
while(len)
{
if(len) { a = snd[ptr++]; len--;} else a = 0;
if(len) { b = snd[ptr++]; len--;} else b = 0;
if(len) { c = snd[ptr++]; len--;} else c = 0;
TxBuffer[pt++] = '=' + (a >> 2);
TxBuffer[pt++] = '=' + (((a & 0x03) << 4) | ((b & 0xf0) >> 4));
TxBuffer[pt++] = '=' + (((b & 0x0f) << 2) | ((c & 0xc0) >> 6));
TxBuffer[pt++] = '=' + ( c & 0x3f);
}
 
AddCRC(pt);
printf("Sending to MK %d \n" , pt);
 
status = send(mk_socket,"\r" , 1, 0);
// for (c=0;c<pt+2;c++)
// {
status = write(mk_socket,&TxBuffer , pt+3);
// printf("Send to MK %d \n" , TxBuffer[c] );
// }
/*while(TxBuffer[i] !='\r' && i<150)
{
// TxBuffer[i]='#';
status = send(s,&TxBuffer[i] , 1, 0);
printf(" +%d%c ",i,TxBuffer[i]);
i++;
}
 
status = send(s,"\r" , 1, 0);
*/
// status = send(s,"\r" , 1, 0);
printf("\n");
}
 
/*
 
int connect_mk_bluetooth(char dest[18])
{
 
 
struct sockaddr_rc addr ;
 
// allocate a socket
mk_socket = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
// set the connection parameters (who to connect to)
addr.rc_family = AF_BLUETOOTH;
addr.rc_channel = 1;
str2ba( dest, &addr.rc_bdaddr );
 
// connect to server
status = connect(mk_socket, (struct sockaddr *)&addr, sizeof(addr));
 
return status;
}
 
*/
 
 
int connect_mk_localhost_socket(int port)
{
 
int status;
struct sockaddr_in sa;
sa.sin_family = AF_INET;
sa.sin_addr.s_addr = htonl(0x0);
sa.sin_port = htons(port);
// allocate a socket
// s = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
mk_socket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
//);
 
// set the connection parameters (who to connect to)
 
// connect to server
// status = connect(s, (struct sockaddr *)&addr, sizeof(addr));
status = connect(mk_socket,(struct sockaddr*) &sa, sizeof(struct sockaddr_in));
 
return status;
 
}