請先看『使用說明』
LAN By Pass Utility under Linux
From LEXWiKi
(Difference between revisions)
(→How to compile source code) |
(→loop_test_thread) |
||
Line 77: | Line 77: | ||
writesmbusbyte(F75111_address,WDT_Ctrl,STS_WD_TMOUT_Clear|WDTimer_Enable); | writesmbusbyte(F75111_address,WDT_Ctrl,STS_WD_TMOUT_Clear|WDTimer_Enable); | ||
} | } | ||
- | |||
} | } | ||
- | |||
- | |||
} | } |
Revision as of 15:31, 8 November 2011
Contents |
The Sample code source you can download from
Source file: Binary file:
How to compile source code
1. Compile source code with Code::Blocks
download and install the Code::Block with command "apt-get install codeblocks libgtk2.0-dev"
Open an exist project(lanbypass.cbp) in Code::Blocks, click the compile button
( add an option 'pkg-config --libs gtk+-2.0 gthread-2.0' in "Project->Build Option->Linker Setting->Other linker option")
2.Compile source code with "make"
- cd lanbypass
- make
- cd src/bin/Debug // execute the binary file
How to Use The LAN By Pass Utility
- Loop Time: Loop time is means "the time of delay before LAN by pass be enabled".
- Enable: Enable LAN by pass function.
- Disable: Disable LAN by pass function.
- Loop Test: Do LAN by pass loop test as below picture.
Introduction
parameters define
#--------F75111 Controller------- #define Config 0x03 #define WDT_Ctrl 0x36 #define WDTimer 0x37 #define F75111_address 0x9c #--------WDT controller---------- #define set_pin10 0x03 #define WDTimer_Enable 0x20 #define STS_WD_TMOUT_Clear 0x40
Enable Funtion
void enable() { writesmbusbyte(F75111_address,Config,set_pin10); writesmbusbyte(F75111_address,WDTimer,timer); writesmbusbyte(F75111_address,WDT_Ctrl,STS_WD_TMOUT_Clear|WDTimer_Enable); }
Disable Funtion
void disable() { disable_flags=1; writesmbusbyte(F75111_address,Config,set_pin10); writesmbusbyte(F75111_address,WDT_Ctrl,STS_WD_TMOUT_Clear); }
Loop test Funtion
void loop_test() { if(chack_time()==1) { gtk_widget_set_sensitive(enable_button,FALSE); gtk_widget_set_sensitive(disable_button,TRUE); gtk_widget_set_sensitive(loop_test_button,FALSE); g_thread_create((void*)loop_test_thread,timer,FALSE,NULL); } }
loop_test_thread
void loop_test_thread(int timer) { BYTE timeout=0; disable_flags=0; writesmbusbyte(F75111_address,Config,set_pin10); writesmbusbyte(F75111_address,WDTimer,timer); writesmbusbyte(F75111_address,WDT_Ctrl,STS_WD_TMOUT_Clear|WDTimer_Enable); while(disable_flags==0) { usleep(10000); SMBus_ReadByte(F75111_address,WDTimer,&timeout); if(timeout<=1) { writesmbusbyte(F75111_address,SMBHSTCMD,set_pin10); writesmbusbyte(F75111_address,WDTimer,timer); writesmbusbyte(F75111_address,WDT_Ctrl,STS_WD_TMOUT_Clear|WDTimer_Enable); } } }