//IFX_ETHSW_HANDLE handle; static int __init IFX_ETHSW_Switch_API_testModule_Init(void) { //printk("Init IFX_ETHSW_Switch_API_testModule successfully.\n"); IFX_ETHSW_HANDLE handle; handle = ifx_ethsw_kopen("/dev/switch/0"); switch (g_cmd) { case 1: CfgGet(handle); break; case 2: CfgSet(handle); break; case 3: PortCfgGet(handle); break; case 4: PortCfgSet(handle); break; case 5: PortLinkCfgGet(handle); break; case 6: PortLinkCfgSet(handle); break; case 7: PortRedirectGet(handle); break; case 8: PortRedirectSet(handle); break; case 9: MAC_tableRead(handle); break; case 10: MAC_tableAdd(handle); break; case 11: MAC_tableRemove(handle); break; case 12: MAC_TableClear(handle); break; case 13: VLAN_IdCreate(handle); break; case 14: VLAN_IdDelete(handle); break; case 15: VLAN_IdGet(handle); break; case 16: VLAN_PortMemberAdd(handle); break; case 17: VLAN_PortMemberRemove(handle); break; case 18: VLAN_PortCfgGet(handle); break; case 19: VLAN_PortCfgSet(handle); break; case 20: VLAN_ReservedAdd(handle); break; case 21: VLAN_ReservedRemove(handle); break; case 22: MDIO_DataRead(handle); break; case 23: MDIO_DataWrite(handle); break; case 24: RegisterGet(handle); break; case 25: RegisterSet(handle); break; default: help(); break; } ifx_ethsw_kclose(handle); return IFX_SUCCESS; }
// Initializes internal variables to their default value and reads the parameters in the // specified INI file. Then initializes the camera using current settings. If BaseAddress // or RegOffset parameters are specified (not equal to -1) then one or both of these // values are used for the m_BaseAddress and m_RegisterOffset properties overriding those // settings in the INI file. long config_load( char* cfgname, short BaseAddress, short RegOffset ) { short plen; char retbuf[256]; if ((strlen(cfgname) == 0) || (cfgname[0] == '\0')) return CCD_OPEN_CFGNAME; // attempt to open INI file FILE* inifp = NULL; if ((inifp = fopen(cfgname,"r")) == NULL) return CCD_OPEN_CFGDATA; // Check whether we are on an NT platform OSVERSIONINFO VersionInfo; memset(&VersionInfo, 0, sizeof(OSVERSIONINFO)); VersionInfo.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); GetVersionEx ( &VersionInfo ); bool IsNT = VersionInfo.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS; // System if (CfgGet (inifp, "system", "interface", retbuf, sizeof(retbuf), &plen)) { // Assume cam is currently null if ( stricmp( "isa", retbuf ) == 0 ) { if ( IsNT ) cam = new CCameraIO_ISA_NT; else cam = new CCameraIO_ISA_9x; } else if ( stricmp( "ppi", retbuf ) == 0 ) { if ( IsNT ) cam = new CCameraIO_PPI_NT; else cam = new CCameraIO_PPI_9x; } else if ( stricmp( "pci", retbuf ) == 0 ) { cam = new CCameraIO_PCI; } if ( cam == NULL ) { fclose( inifp ); return CCD_OPEN_ALLOC; } } else { fclose( inifp ); return CCD_OPEN_CFGDATA; } ///////////////////////////////////////////////////////////////////////////////// // Settings which are stored in a class member (not in firmware) are already set // to a default value in the constructor. Settings accessed by get/put functions // must be set to a default value in this routine, after the base address and // communication protocal is setup. ///////////////////////////////////////////////////////////////////////////////// // These settings must done first since they affect communication with the camera if ( BaseAddress == -1 ) { if (CfgGet (inifp, "system", "base", retbuf, sizeof(retbuf), &plen)) cam->m_BaseAddress = hextoi(retbuf) & 0xFFF; else { fclose( inifp ); delete cam; cam = NULL; return CCD_OPEN_CFGDATA; // base address MUST be defined } } else cam->m_BaseAddress = BaseAddress & 0xFFF; if ( RegOffset == -1 ) { if (CfgGet (inifp, "system", "reg_offset", retbuf, sizeof(retbuf), &plen)) { unsigned short val = hextoi(retbuf); if ( val >= 0x0 && val <= 0xF0 ) cam->m_RegisterOffset = val & 0xF0; } } else { if ( RegOffset >= 0x0 && RegOffset <= 0xF0 ) cam->m_RegisterOffset = RegOffset & 0xF0; } ///////////////////////////////////////////////////////////////////////////////// // Necessary geometry settings if (CfgGet (inifp, "geometry", "rows", retbuf, sizeof(retbuf), &plen)) { short val = hextoi(retbuf); if ( val >= 1 && val <= MAXTOTALROWS ) cam->m_Rows = val; } else { fclose( inifp ); delete cam; cam = NULL; return CCD_OPEN_CFGDATA; // rows MUST be defined } if (CfgGet (inifp, "geometry", "columns", retbuf, sizeof(retbuf), &plen)) { short val = hextoi(retbuf); if ( val >= 1 && val <= MAXTOTALCOLUMNS ) cam->m_Columns = val; } else { fclose( inifp ); delete cam; cam = NULL; return CCD_OPEN_CFGDATA; // columns MUST be defined } ///////////////////////////////////////////////////////////////////////////////// if (CfgGet (inifp, "system", "pp_repeat", retbuf, sizeof(retbuf), &plen)) { short val = hextoi( retbuf ); if ( val > 0 && val <= 1000 ) cam->m_PPRepeat = val; } ///////////////////////////////////////////////////////////////////////////////// // First actual communication with camera if in PPI mode if ( !cam->InitDriver() ) { delete cam; cam = NULL; fclose( inifp ); if ( IsNT ) return CCD_OPEN_NTIO; else return CCD_OPEN_LOOPTST; } ///////////////////////////////////////////////////////////////////////////////// // First actual communication with camera if in ISA mode cam->Reset(); // Read in command register to set shadow register known state ///////////////////////////////////////////////////////////////////////////////// if (CfgGet (inifp, "system", "cable", retbuf, sizeof(retbuf), &plen)) { if (!stricmp("LONG",retbuf)) cam->write_LongCable( true ); else if ( !stricmp("SHORT",retbuf) ) cam->write_LongCable( false ); } else cam->write_LongCable( false ); // default if ( !cam->read_Present() ) { delete cam; cam = NULL; fclose( inifp ); return CCD_OPEN_LOOPTST; } ///////////////////////////////////////////////////////////////////////////////// // Set default setting and read other settings from ini file cam->write_UseTrigger( false ); cam->write_ForceShutterOpen( false ); if (CfgGet (inifp, "system", "high_priority", retbuf, sizeof(retbuf), &plen)) { if (!stricmp("ON",retbuf) || !stricmp("TRUE",retbuf) || !stricmp("1",retbuf)) { cam->m_HighPriority = true; } else if (!stricmp("OFF",retbuf) || !stricmp("FALSE",retbuf) || !stricmp("0",retbuf)) { cam->m_HighPriority = false; } } if (CfgGet (inifp, "system", "data_bits", retbuf, sizeof(retbuf), &plen)) { short val = hextoi( retbuf ); if ( val >= 8 && val <= 18 ) cam->m_DataBits = val; } if (CfgGet (inifp, "system", "sensor", retbuf, sizeof(retbuf), &plen)) { if ( stricmp( "ccd", retbuf ) == 0 ) { cam->m_SensorType = Camera_SensorType_CCD; } else if ( stricmp( "cmos", retbuf ) == 0 ) { cam->m_SensorType = Camera_SensorType_CMOS; } } if (CfgGet (inifp, "system", "mode", retbuf, sizeof(retbuf), &plen)) { unsigned short val = hextoi(retbuf) & 0xF; cam->write_Mode( val ); } else cam->write_Mode( 0 ); // default if (CfgGet (inifp, "system", "test", retbuf, sizeof(retbuf), &plen)) { unsigned short val = hextoi(retbuf) & 0xF; cam->write_TestBits( val ); } else cam->write_TestBits( 0 ); //default if (CfgGet (inifp, "system", "test2", retbuf, sizeof(retbuf), &plen)) { unsigned short val = hextoi(retbuf) & 0xF; cam->write_Test2Bits( val ); } else cam->write_Test2Bits( 0 ); // default cam->write_FastReadout( false ); //default if (CfgGet (inifp, "system", "shutter_speed", retbuf, sizeof(retbuf), &plen)) { if (!stricmp("normal",retbuf)) { cam->m_FastShutter = false; cam->m_MaxExposure = 10485.75; cam->m_MinExposure = 0.01; } else if (!stricmp("fast",retbuf)) { cam->m_FastShutter = true; cam->m_MaxExposure = 1048.575; cam->m_MinExposure = 0.001; } else if ( !stricmp("dual",retbuf)) { cam->m_FastShutter = true; cam->m_MaxExposure = 10485.75; cam->m_MinExposure = 0.001; } } if (CfgGet (inifp, "system", "shutter_bits", retbuf, sizeof(retbuf), &plen)) { unsigned short val = hextoi(retbuf); cam->m_FastShutterBits_Mode = val & 0x0F; cam->m_FastShutterBits_Test = ( val & 0xF0 ) >> 4; }