+++ /dev/null
-/***************************************************************************
- * ts7200_client.c
- *
- * Wed Nov 18 10:46:06 2009
- * Copyright 2009 Bartlomiej Swiercz
- * <bartlomiej.swiercz@teleca.com>
- ****************************************************************************/
-
-#include <stdio.h>
-#include <errno.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include "ts7200_client.h"
-
-ACT_STATE act_connect( sid_t sid, int *sock )
-{
- nota_addr_t addr = { sid, DEFAULT_PORT };
- int err;
-
- *sock = Hsocket( Hgetinstance(), AF_NOTA, SOCK_STREAM, 0 );
- if(sock < 0)
- {
- perror( "Hsocket" );
- return HSOCKET_ERR;
- }
-
- err = Hconnect( Hgetinstance(), *sock, (struct sockaddr*) &addr, sizeof(addr) );
- if( err < 0 )
- {
- Hclose( Hgetinstance(), *sock );
- perror( "Hconnect" );
- return HCONNECT_ERR;
- }
-
- return OK;
-
-}
-
-ACT_STATE act_send( int sock, char cmd )
-{
- int err;
- err = Hsend( Hgetinstance(), sock, &cmd, 1, 0 );
- if(err != 1) {
- Hclose( Hgetinstance(), sock );
- perror( "Hsend" );
- return HSEND_ERR;
- }
-
- return OK;
-}
-
-ACT_STATE act_recv( int sock, char *resp )
-{
- int err;
- err = Hrecv( Hgetinstance(), sock, resp, 1, 0 );
- if(err != 1) {
- Hclose( Hgetinstance(), sock );
- perror( "Hrecv" );
- return HRECV_ERR;
- }
-
- return OK;
-}
-
-void act_close( int sock )
-{
- Hclose( Hgetinstance(), sock );
-}
-
-ACT_STATE act_run_cmd( sid_t sid, ACT_CMD cmd )
-{
- int err, sock, resp;
- char buf;
- err = act_connect( sid, &sock );
- if ( err != OK ) return NOTCONNECTED;
-
- switch ( cmd )
- {
- case PING:
- act_send( sock, 'P' );
- act_recv( sock, &buf );
- if (buf == 'P')
- resp = CONNECTED;
- else
- resp = NOTCONNECTED;
- break;
-
- case FACE_DETECTED:
- act_send( sock, 'F' );
- act_recv( sock, &buf );
- if (buf == 'F')
- resp = CONNECTED;
- else
- resp = NOTCONNECTED;
- break;
-
- default:
- resp = WEIRD;
- break;
- }
-
- act_close( sock );
-
- return resp;
-}
-