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...)
Current revision (14:20, 25 February 2022) (edit) (undo)
(The Sample code source you can download from)
 
(23 intermediate revisions not shown.)
Line 1: Line 1:
[[Category:AllowPages]]
[[Category:AllowPages]]
 +
== The Sample code source you can download from ==
== The Sample code source you can download from ==
-
Source file:
 
-
Binary file:
 
 +
<Google Drive>
 +
 +
Source file: [https://drive.google.com/file/d/1x4Hwi-gkbcSgS1ObnVwOlwY54jUpcnJf/view?usp=sharing LANByPass_v1.1_Src]
 +
 +
Binary file: [https://drive.google.com/file/d/1TDTRP2v3eVi69dmDdxfElTUgwdX0egB1/view?usp=sharing LANByPass_v1.1_Bin]
 +
 +
 +
<FTP>
 +
 +
Source file: [ftp://ftp.lex.com.tw/Engineer\SoftSupport\AP_Module\LanByPass_Utility\LINUX\LANByPass_V1.1_SRC.tar.gz LANByPass_v1.1_Src]
 +
 +
Binary file: [ftp://ftp.lex.com.tw/Engineer\SoftSupport\AP_Module\LanByPass_Utility\LINUX\LANByPass_V1.1_BIN.tar.gz LANByPass_v1.1_Bin]
== 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 and libgtk2.0-dev 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<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 gtk+-2.0 --cflags`-std=gnu99''' in "Project->Build Option->compiler setting->Other option"<br>
-
2.Compile source code with "make"
+
# add an option '''`pkg-config gtk+-2.0 --libs`''' in "Project->Build Option->Linker Setting->Other linker option"<br>
 +
#click the compile button<br>
 +
2.'''Compile source code with "make"'''<br>
 +
#download and install the libgtk2.0-dev with command "apt-get install libgtk2.0-dev"<br>
# cd lanbypass
# cd lanbypass
 +
# ./configure
# make
# make
-
# cd src/bin/Debug // execute the binary file
+
# cd src/lanbypass // execute the binary file()
-
How to Use The LAN By Pass Utility<br>
+
 
 +
==How to Use The LAN By Pass Utility==
[[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);
 +
}
 +
}
 +
}

Current revision


Contents

The Sample code source you can download from

<Google Drive>

Source file: LANByPass_v1.1_Src

Binary file: LANByPass_v1.1_Bin


<FTP>

Source file: LANByPass_v1.1_Src

Binary file: LANByPass_v1.1_Bin

How to compile source code

1. Compile source code with Code::Blocks

  1. download and install the Code::Block and libgtk2.0-dev with command "apt-get install codeblocks libgtk2.0-dev"
  2. Open an exist project(lanbypass.cbp) in Code::Blocks
  3. add an option `pkg-config gtk+-2.0 --cflags`-std=gnu99 in "Project->Build Option->compiler setting->Other option"
  4. add an option `pkg-config gtk+-2.0 --libs` in "Project->Build Option->Linker Setting->Other linker option"
  5. click the compile button

2.Compile source code with "make"

  1. download and install the libgtk2.0-dev with command "apt-get install libgtk2.0-dev"
  2. cd lanbypass
  3. ./configure
  4. make
  5. cd src/lanbypass // 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