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)); }
void Include(const wxString& filename) { getSM()->LoadScript(filename); }
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 ) ); } }