LAN By Pass Utility under Linux

From LEXWiKi

(Difference between revisions)
Jump to: navigation, search
(New page: Category:AllowPages == The Sample code source you can download from == Source file: Binary file: == How to compile source code == 1. Compile source code with Code::Blocks<br> downlo...)
(How to compile source code)
Line 8: Line 8:
== How to compile source code ==
== How to compile source code ==
1. Compile source code with Code::Blocks<br>
1. Compile source code with Code::Blocks<br>
-
download and install the Code::Block with command "apt-get install codeblocks"<br>
+
download and install the Code::Block with command "apt-get install codeblocks libgtk2.0-dev"<br>
Open an exist project(lanbypass.cbp) in Code::Blocks, click the compile button<br>
Open an exist project(lanbypass.cbp) in Code::Blocks, click the compile button<br>
( add an option 'pkg-config --libs gtk+-2.0 gthread-2.0' in "Project->Build Option->Linker Setting->Other linker option")<br>
( add an option 'pkg-config --libs gtk+-2.0 gthread-2.0' in "Project->Build Option->Linker Setting->Other linker option")<br>
Line 17: Line 17:
How to Use The LAN By Pass Utility<br>
How to Use The LAN By Pass Utility<br>
[[Image:lanbypass.png]]
[[Image:lanbypass.png]]
-
#what you write
+
#Loop Time: Loop time is means "the time of delay before LAN by pass be enabled".
-
#what you write
+
#Enable: Enable LAN by pass function.
-
#what you write
+
#Disable: Disable LAN by pass function.
-
#what you write
+
#Loop Test: Do LAN by pass loop test as below picture.
 +
[[Image:Loop_test.jpg]]<br>
 +
 
 +
== 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);
 +
}
 +
 
 +
}
 +
 
 +
 
 +
}

Revision as of 15:30, 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"

  1. cd lanbypass
  2. make
  3. cd src/bin/Debug // execute the binary file

How to Use The LAN By Pass Utility
Image:lanbypass.png

  1. Loop Time: Loop time is means "the time of delay before LAN by pass be enabled".
  2. Enable: Enable LAN by pass function.
  3. Disable: Disable LAN by pass function.
  4. Loop Test: Do LAN by pass loop test as below picture.

Image:Loop_test.jpg

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);
           }
       }


}
Personal tools