Code Search for Developers
 
 
  

CTestee.cpp from Make Controller at Krugle


Show CTestee.cpp syntax highlighted

/****************************************************************************
**
** CTESTEE
** MakingThings 2006.
**
****************************************************************************/

#include "CTestee.h"
#include "CTestThread.h"

CTestee::CTestee( MessageInterface *messageInterface )
{
	this->messageInterface = messageInterface;
	samba = new Samba( messageInterface );
		
	packetUdp = new PacketUdp( messageInterface );
  osc = new Osc( packetUdp, messageInterface );
}

CTestee::Status CTestee::start()
{
	messageInterface->message( 2, "  Testee Start\n" );
	if ( packetUdp->connect(	"192.168.0.200", 10000, 10000 ) != PacketUdp::OK )
	{
  	messageInterface->message( 2, "  Couldn't set up connection\n" );
	  return ERROR_CANT_OPEN_SOCKET;
	}	

	return OK;
}

CTestee::Status CTestee::stop()
{
	packetUdp->disconnect();
	return OK;
}

CTestee::Status CTestee::checkForTestProgram()
{
	// Check for a reaction
	osc->createMessage( "/ctestee/active" );
	osc->sendPacket();
	
	messageInterface->sleepMs( 100 );
	
 	OscMessage oscMessage;
	Osc::Status s = osc->receive( &oscMessage );
	if ( s != Osc::OK )
	{
    messageInterface->message( 2, "  No response - Not programmed\n" );
	  return ERROR_NO_RESPONSE;
	}
	
  messageInterface->message( 2, "Testee Already Programmed\n" );
	return OK;
}

CTestee::Status CTestee::requestErase()
{
	// Check for a reaction
	osc->createMessage( "/ctestee/active", ",i", 0 );
	osc->sendPacket();
	
	return OK;
}

CTestee::Status CTestee::flash()
{
	messageInterface->message( 2, "  Testee Flashing...\n" );
	messageInterface->message( 3, "    - Connecting\n" );
	
	if ( samba->connect( ) != Samba::OK )
  {
  	messageInterface->message( 3, "  Error Connecting\n" );
	  return ERROR_COULDNT_CONNECT;
  }
  
	messageInterface->message( 2, "    - Sending the file\n" );    

	Samba::Status sambaStatus = samba->flashUpload( "ctestee.bin" );
	if ( sambaStatus != Samba::OK )
  {
  	messageInterface->message( 3, "  Error Uploading\n" );
  	switch ( sambaStatus )
  	{
  		case Samba::ERROR_INCORRECT_CHIP_INFO:
  		  return ERROR_WEIRD_CHIP;
  		case Samba::ERROR_COULDNT_FIND_FILE:
  		case Samba::ERROR_COULDNT_OPEN_FILE:
  		  return ERROR_NO_CTESTEE_BIN;
  		case Samba::ERROR_SENDING_FILE:
  		  return ERROR_COULDNT_DOWNLOAD;
  		default:
  		  return ERROR_SAMBA_ERROR;
  	}
  }

	messageInterface->message( 2, "    - Switching to Boot from Flash\n" );    
 
	if ( samba->bootFromFlash(  ) != Samba::OK )
  {
  	messageInterface->message( 3, "  Error Switching to Boot from Flash\n" );
	  return ERROR_COULDNT_SWITCH;
  }

	if ( samba->disconnect(  ) != Samba::OK )
  {
  	messageInterface->message( 3, "  Error Switching to Boot from Flash\n" );
	  return ERROR_COULDNT_CONNECT;
  }

	return OK;
}

CTestee::Status CTestee::ioPattern( int pattern )
{
	messageInterface->message( 2, "  Testee IO Pattern Set - %d\n", pattern );	
		
	osc->createMessage( "/ctestee/iopattern", ",i", pattern );
	osc->sendPacket();
	
	return OK;
}

CTestee::Status CTestee::eepromTest( )
{	
	osc->createMessage( "/ctestee/eepromtest" );
	osc->sendPacket();
	
	messageInterface->sleepMs( 500 );
	
	OscMessage oscMessage;
	Osc::Status s = osc->receive( &oscMessage );
	if ( s != Osc::OK )
	{
  	messageInterface->message( 2, "  No message back from the testee\n" );
	  return ERROR_NO_REPLY_EEPROM_TEST;
	}
	
   if ( strcmp( oscMessage.address, "/ctestee/eepromtest" ) != 0 )
  {
  	messageInterface->message( 2, "  Wrong message back from the tester - %s\n", oscMessage.address );
    return ERROR_INCORRECT_RESPONSE;
  }
	
	return oscMessage.i ? OK : ERROR_EEPROM_FAILURE;

}

CTestee::Status CTestee::canOut( int mode )
{
	messageInterface->message( 2, "  Setting Can Mode - %d\n", mode );	
		
	osc->createMessage( "/ctestee/canout", ",i", mode );
	osc->sendPacket();
	
	return OK;
}

CTestee::Status CTestee::canIn( int* value )
{
	messageInterface->message( 2, "  Testing IO on Tester\n" );	
		
	osc->createMessage( "/ctestee/canin" );
	osc->sendPacket();
	
	messageInterface->sleepMs( 100 );
	
	OscMessage oscMessage;
	Osc::Status s = osc->receive( &oscMessage );
	if ( s != Osc::OK )
	{
  	messageInterface->message( 2, "  No message back from the tester\n" );
	  return ERROR_NO_RESPONSE;
	}
	
   if ( strcmp( oscMessage.address, "/ctestee/canin" ) != 0 )
  {
  	messageInterface->message( 2, "  Wrong message back from the tester - %s\n", oscMessage.address );
    return ERROR_INCORRECT_RESPONSE;
  }
	
	*value = oscMessage.i;
	
  return OK;
}






See more files for this project here

Make Controller

The Make Controller is an open microcontroller platform for Makers of all kinds, by MakingThings. This project maintains the official firmware for the board and source for the software tools used with the board.

Project homepage: http://sourceforge.net/projects/makingthings
Programming language(s): C,C#,C++
License: other

  .externalToolBuilders/
    qmake.launch
  debug/
    ctest.exe
    ctestee.bin
    moc_CTestThread.cpp
    moc_CTestWindow.cpp
    test.bin
  io_win32/
    FCPipe.cpp
    FCPipe.h
    FCPipeUSB.cpp
    FCPipeUSB.h
    FC_Error.h
    SAM-BA.dll
    SAMBADLL.cpp
    SAMBADLL.h
    timer.cpp
    timer.h
    xmodem.cpp
    xmodem.h
  release/
    ctest.exe
    moc_CTestThread.cpp
    moc_CTestWindow.cpp
  .cdtproject
  .project
  CTestThread.cpp
  CTestThread.h
  CTestWindow.cpp
  CTestWindow.h
  CTestee.cpp
  CTestee.h
  CTester.cpp
  CTester.h
  Makefile
  Makefile.Debug
  Makefile.Release
  MessageInterface.h
  Osc.cpp
  Osc.h
  PacketInterface.h
  PacketUdp.cpp
  PacketUdp.h
  Samba.cpp
  Samba.h
  SetupAPI.Lib
  SetupAPI.h
  ctest.pro
  ctest.ui
  guid829.h
  loader256_data.h
  main.cpp
  object_script.ctest.Debug
  object_script.ctest.Release
  test.bin
  ui_ctest.h