Esempio n. 1
0
 SQInteger Require(HSQUIRRELVM v)
 {
     StackHandler sa(v);
     const wxString& filename = *SqPlus::GetInstance<wxString,false>(v, 2);
     if (!getSM()->LoadScript(filename))
     {
         wxString msg = wxString::Format(_("Failed to load required script: %s"), filename.c_str());
         return sa.ThrowError(cbU2C(msg));
     }
     return sa.Return(static_cast<SQInteger>(0));
 }
Esempio n. 2
0
 void Include(const wxString& filename)
 {
     getSM()->LoadScript(filename);
 }
Esempio n. 3
0
void I2CDeviceManager::begin( int devices )
{
	// I2C Master
	Wire.begin();

	union
	{
		uint8_t byte[12];
		int values[6];
	} buf;

	INFO( "search I2C bus" );


	// es werden max. 10 I2C Adressen unterstuetzt, sonst wird das ganze zu langsam. Weitere Boards via USB anschliessen!!!
	for	( int i = 1; i < devices; i++ )
	{
		int board = getSM( i, 0, 0, srcp::CV, 0 );
		// kein I2C Board auf dieser Adresse vorhanden?
		if	( board == -1 || board == 255 )
			continue;

		// Liefert die Adressen von/bis von FB, GA, GL
		int rc = getDescription( i, 0, 0, srcp::LAN, buf.byte );
		if	( rc == -1 )
			continue;

#if ( LOGGER_LEVEL >= INFO_LEVEL )
			INFO( "I2C addr: ");
			Logger.print ( ", " );
			Logger.print ( i );
			Logger.print( ", FB ");
			Logger.print( buf.values[0] );
			Logger.print( "-" );
			Logger.print( buf.values[1] );
			Logger.print( ", GA ");
			Logger.print( buf.values[2] );
			Logger.print( "-" );
			Logger.print( buf.values[3] );
			Logger.print( ", GL ");
			Logger.print( buf.values[4] );
			Logger.print( "-" );
			Logger.print( buf.values[5] );
#endif
		// FB Geraete vorhanden
		if	( buf.values[0] > 0 && buf.values[1] > 0 )
		{
			// pro 8 Sensoren ein Feedbackmodul erstellen
			for	( int s = buf.values[0]; s < buf.values[1]; s += 8 )
				DeviceManager.addFeedback( new I2CFBProxy( s, s+8, i) );
		}

		// GA Geraete vorhanden
		if	( buf.values[2] > 0 && buf.values[3] > 0 )
			DeviceManager.addAccessoire( new I2CGAProxy( buf.values[2], buf.values[3], i ) );

		// GL Geraete vorhanden
		if	( buf.values[4] > 0 && buf.values[5] > 0 )
			DeviceManager.addLoco( new I2CGLProxy( buf.values[4], buf.values[5], i ) );
	}
}