一般來講,每塊網(wǎng)卡都具有1個(gè)以上的LED(LightEmittingDiode發(fā)光二極管)指示燈,用來表示網(wǎng)卡的不同工作狀態(tài),以方便我們查看網(wǎng)卡是否工作正常。典型的LED指示燈有Link/Act、Full、Power等。Link/Act表示連接活動(dòng)狀態(tài),F(xiàn)ull表示是否全雙工(FullDuplex),而Power是電源指示等。
在很多應(yīng)用程序,特別是工控程序中,經(jīng)常需要讀入并顯示一些開關(guān)量,比如串口通信是否正常,電源是否打開,電機(jī)工作是否正常等等。這些開關(guān)量的顯示用一些控件來實(shí)現(xiàn)。這些控件根據(jù)輸入的開關(guān)量顯示不同顏色和文字用來表示打開和關(guān)閉。NI公司專門開發(fā)了一套LabWindows控件,專門用于程序開發(fā),當(dāng)然這是要花錢的.本文以CStatic為基類,編寫了一個(gè)LED燈,它可根據(jù)輸入的bool值顯示開關(guān),類似于vb里的shape控件。
NI控件
具體實(shí)現(xiàn)請(qǐng)請(qǐng)參考CLED類,當(dāng)然這個(gè)類很簡單,完全可以自己實(shí)現(xiàn),當(dāng)時(shí)如過你不想自己動(dòng)手編寫,那么可以發(fā)郵件向我要:visualsan@yahoo.cn.也可以直接復(fù)制文章低部的類的頭文件和cpp文件。下面是程序運(yùn)行時(shí)的截圖:
//類頭文件
#if!defined(AFX[_]LED[_]H[_][_]BDAD9442[_]11BB[_]4917[_]8E43[_]0E2ACC246FE3[_][_]INCLUDED[_])
#defineAFX[_]LED[_]H[_][_]BDAD9442[_]11BB[_]4917[_]8E43[_]0E2ACC246FE3[_][_]INCLUDED[_]
#if[_]MSC[_]VER1000
#pragmaonce
#endif//[_]MSC[_]VER1000
//LED.h:headerfile
//
#defineCIRCLE0
#defineSQUARE1
#defineELLIPSE2
/////////////////////////////////////////////////////////////////////////////
//CLEDwindowclassCLED:publicCStatic
{
//Constructionpublic:
CLED();
//Attributespublic:
//Operationspublic:
COLORREFm[_]crBK,m[_]crOnFG,m[_]crOffFG;
CBrush*m[_]brOnFG,*m[_]brOffFG;
intm[_]iType;
boolm[_]bOn;
CStringm[_]sOnString,m[_]sOffString;
boolm[_]bTextOn;
//Overrides
//ClassWizardgeneratedvirtualfunctionoverrides
//{{AFX[_]VIRTUAL(CLED)
//}}AFX[_]VIRTUAL
//Implementationpublic:
intGetType();
boolGetTextOnOff();
CStringGetOnText();
BOOLGetOnOff();
COLORREFGetOnFgColor();
CStringGOffText();
COLORREFGetOffFgColor();
COLORREFGetBKColor();
voidSetTextOnOff(boolval);
voidSetOffText(CStringstr);
voidSetOnText(CStringstr);
voidSetBKColor(COLORREFC);
voidSetOnOff(boolval);
voidSetType(inttype);
voidSetOffFgColor(COLORREFC);
voidSetOnFgColor(COLORREFC);
virtual~CLED();
//Generatedmessagemapfunctionsprotected:
//{{AFX[_]MSG(CLED)
afx[_]msgintOnCreate(LPCREATESTRUCTlpCreateStruct);
afx[_]msgvoidOnPaint();
afx[_]msgvoidOnDestroy();
afx[_]msgvoidOnSize(UINTnType,intcx,intcy);
//}}AFX[_]MSGDECLARE[_]MESSAGE[_]MAP()
private:
voidDrawFigure();
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX[_]INSERT[_]LOCATION}}
//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline.
#endif//!defined(AFX[_]LED[_]H[_][_]BDAD9442[_]11BB[_]4917[_]8E43[_]0E2ACC246FE3[_][_]INCLUDED[_])
/////////////////////////////////////////////////////////////////
///////////////類cpp文件
//LED.cpp:implementationfile
//
#include"stdafx.h"
#include"colortext.h"
#include"LED.h"
#ifdef[_]DEBUG
#definenewDEBUG[_]NEW
#undefTHIS[_]FILEstaticcharTHIS[_]FILE=[_][_]FILE[_][_];
#endif
/////////////////////////////////////////////////////////////////////////////
//CLEDCLED:CLED()
{
m[_]crBK=RGB(255,255,255);
m[_]crOnFG=RGB(0,255,0);
m[_]crOffFG=RGB(255,0,0);
m[_]iType=0;
m[_]bOn=true;
m[_]brOnFG=newCBrush(m[_]crOnFG);
m[_]brOffFG=newCBrush(m[_]crOffFG);
m[_]sOnString="on";
m[_]sOffString="off";
m[_]bTextOn=true;
}
CLED:~CLED()
{
deletem[_]brOffFG;
deletem[_]brOnFG;
}
BEGIN[_]MESSAGE[_]MAP(CLED,CStatic)
//{{AFX[_]MSG[_]MAP(CLED)
ON[_]WM[_]CREATE()
ON[_]WM[_]PAINT()
ON[_]WM[_]DESTROY()
ON[_]WM[_]SIZE()
//}}AFX[_]MSG[_]MAPEND[_]MESSAGE[_]MAP()
/////////////////////////////////////////////////////////////////////////////
//CLEDmessagehandlersintCLED:OnCreate(LPCREATESTRUCTlpCreateStruct)
{
if(CStatic:OnCreate(lpCreateStruct)==-1)
return-1;
//TODO:Addyourspecializedcreationcodeherereturn0;
}
voidCLED:OnPaint()
{
CPaintDCdc(this);//devicecontextforpainting
//TODO:AddyourmessagehandlercodehereDrawFigure();
//DonotcallCStatic:OnPaint()forpaintingmessages
}
voidCLED:OnDestroy()
{
CStatic:OnDestroy();
//TODO:Addyourmessagehandlercodehere
}
voidCLED:SetOnFgColor(COLORREFC)
{
m[_]brOnFG-DeleteObject();
m[_]crOnFG=C;
m[_]brOnFG-CreateSolidBrush(m[_]crOnFG);
OnPaint();
}
COLORREFCLED:GetOnFgColor()
{
returnm[_]crOnFG;
}
voidCLED:SetOffFgColor(COLORREFC)
{
m[_]brOffFG-DeleteObject();
m[_]crOffFG=C;
m[_]brOffFG-CreateSolidBrush(m[_]crOffFG);
OnPaint();
}
COLORREFCLED:GetOffFgColor()
{
returnm[_]crOffFG;
}
voidCLED:SetType(inttype)
{
if(type0||type2)
{
return;
}
m[_]iType=type;
OnPaint();
}
intCLED:GetType()
{
returnm[_]iType;
}
voidCLED:DrawFigure()
{
CClientDCpdc(this);
CBrushb;
CRectr;
GetClientRect(r);
b.CreateSolidBrush(m[_]crBK);
pdc.SelectObject(&b);
pdc.FillRect(r,&b);
pdc.SetBkMode(TRANSPARENT);
if(m[_]bOn==true)
{
CPenpen(0,0,m[_]crOnFG);
pdc.SelectObject(&pen);
pdc.SelectObject(m[_]brOnFG);
}
else
{
CPenpen(0,0,m[_]crOffFG);
pdc.SelectObject(&pen);
pdc.SelectObject(m[_]brOffFG);
}
if(m[_]iType==0)//circle
{
CRectr1;
if(r.Width()r.Height())
{
r1.left=r.left+(r.Width()-r.Height())/2.0;
r1.right=r.right-(r.Width()-r.Height())/2.0;
r1.top=r.top;
r1.bottom=r.bottom;
}
else
{
r1.left=r.left;
r1.right=r.right;
r1.top=r.top+(r.Height()-r.Width())/2.0;
r1.bottom=r.bottom-(r.Height()-r.Width())/2.0;
}
pdc.Ellipse(r1);
}
if(m[_]iType==1)//squre
{
pdc.Rectangle(r);
}
if(m[_]iType==2)//ellipse
{
pdc.Ellipse(r);
}
if(!m[_]bTextOn)
return;
if(m[_]bOn)
pdc.TextOut(r.CenterPoint().x-m[_]sOnString.GetLength()*3.5,r.CenterPoint().y-10,m[_]sOnString,m[_]sOnString.GetLength());
elsepdc.TextOut(r.CenterPoint().x-m[_]sOffString.GetLength()*3.5,r.CenterPoint().y-10,m[_]sOffString,m[_]sOffString.GetLength());
}
voidCLED:SetOnOff(boolval)
{
m[_]bOn=val;
OnPaint();
}
BOOLCLED:GetOnOff()
{
returnm[_]bOn;
}
voidCLED:OnSize(UINTnType,intcx,intcy)
{
CStatic:OnSize(nType,cx,cy);
OnPaint();
}
voidCLED:SetBKColor(COLORREFC)
{
m[_]crBK=C;
OnPaint();
}
COLORREFCLED:GetBKColor()
{
returnm[_]crBK;
}
voidCLED:SetOnText(CStringstr)
{
m[_]sOnString=str;
OnPaint();
}
CStringCLED:GetOnText()
{
returnm[_]sOnString;
}
voidCLED:SetOffText(CStringstr)
{
m[_]sOffString=str;
OnPaint();
}
CStringCLED:GOffText()
{
returnm[_]sOffString;
}
voidCLED:SetTextOnOff(boolval)
{
m[_]bTextOn=val;
OnPaint();
}
boolCLED:GetTextOnOff()
{
returnm[_]bTextOn;
}
一般來講,每塊網(wǎng)路卡(NIC)都具有1個(gè)以上的LED(LightEmittingDiode,發(fā)光二極體)指示燈,用來表示網(wǎng)卡的不同工作狀態(tài),以方便我們查看網(wǎng)卡是否工作正常。典型的LED指示燈有Link/Act、Full、Power等。Link/Act表示連接活動(dòng)狀態(tài),Full表示是否全雙工(FullDuplex),而Power是電源指示等。
在正常情況下,在不傳送資料時(shí),網(wǎng)卡的指示燈閃爍較慢,傳送資料時(shí),閃爍較快。無論是不亮,還是長亮不滅,都表明有故障存在。如果網(wǎng)卡的指示燈不正常,需關(guān)掉電腦更換網(wǎng)卡。對(duì)于Hub的指示燈,凡是插有網(wǎng)線的埠,指示燈都亮。由于是Hub,所以,指示燈的作用只能指示該埠是否連接有終端設(shè)備,不能顯示通信狀態(tài)。
LED應(yīng)用在這類產(chǎn)品的指示燈時(shí),所選用的LED產(chǎn)品等級(jí)普遍是比較一般的產(chǎn)品,像是Lamp型LED。而比較高階的網(wǎng)路卡產(chǎn)品,會(huì)采用SMD型LED,除了省空間外,使用的電流也會(huì)比較校
除了手機(jī)背光以外,SMD型LED也很適合擔(dān)任各種電子裝置的指示燈,普遍是綠色、紅色、橘色、藍(lán)色等??色,價(jià)格上的差異日益縮小化。
在常見網(wǎng)絡(luò)設(shè)備上都有幾個(gè)指示燈,用于監(jiān)控設(shè)備的狀態(tài)和運(yùn)行,這些指示燈稱之為發(fā)光二極管(LED)。充分了解這些指示燈的意義,往往能在網(wǎng)絡(luò)故障診斷的過程中,簡單快捷的判斷出故障原因,達(dá)到意想不到的效果。
一、網(wǎng)卡
在網(wǎng)卡后側(cè)RJ45接口一邊有兩個(gè)指示燈。它們分別為連接狀態(tài)指示燈和信號(hào)傳輸指示燈,其中正常狀態(tài)下連接狀態(tài)指示燈呈綠色并且長亮,信號(hào)指示燈呈紅色,正常應(yīng)該不停地閃爍。
如果連接指示燈,也就是綠燈不亮,那么表示網(wǎng)卡連接到HUB或交換機(jī)之間的連接有故障。一般情況下這種故障發(fā)生多半是網(wǎng)線沒有接牢或水晶頭故障所造成的。而且故障點(diǎn)大多是在連接的兩端,例如交換機(jī)的端口處和連接計(jì)算機(jī)的網(wǎng)卡處,可以借助測線儀或者采用更換網(wǎng)線的方法進(jìn)行解決。如果不是接頭的原因造成的,則需對(duì)整個(gè)鏈路用測線儀進(jìn)行分段排除。
如果信號(hào)指示燈,也就是紅燈不亮,那么則說明沒有信號(hào)進(jìn)行傳輸,但在綠燈亮的情況下,可以肯定的是線路之間是正常的??梢圆捎锰鎿Q法換一臺(tái)計(jì)算機(jī)連接到該網(wǎng)線上試試,如果所換計(jì)算機(jī)不能正常上網(wǎng),則需更換該計(jì)算機(jī)連接的交換機(jī)端口或者重啟動(dòng)交換機(jī)。如果所換計(jì)算機(jī)能正常上網(wǎng),則可以肯定有信號(hào)傳送,進(jìn)而確定是本地網(wǎng)卡的問題??梢試L試Ping一下本機(jī)的IP地址,如果不能Ping通,可以嘗試重新插拔網(wǎng)卡、安裝網(wǎng)卡驅(qū)動(dòng)來解決;如果能夠Ping通則說明網(wǎng)卡的安裝沒有太大問題,這時(shí)需要檢查IP設(shè)置是否存在錯(cuò)誤,是否存在IP沖突的情況。另外如果使用了集成網(wǎng)卡或質(zhì)量不高的網(wǎng)卡,容易出現(xiàn)不穩(wěn)定的現(xiàn)象,即所有設(shè)置都正確,但網(wǎng)絡(luò)卻不通。對(duì)此可以將網(wǎng)卡禁用,然后再重新啟用的方法,可能會(huì)解決紅燈不亮不閃的問題。
二、光纖收發(fā)器
光纖收發(fā)器是一種將短距離的雙絞線電信號(hào)和長距離的光信號(hào)進(jìn)行互換的以太網(wǎng)傳輸轉(zhuǎn)換單元,又稱為光電轉(zhuǎn)換器。光纖收發(fā)器延伸了以太網(wǎng)的連接距離,打破了雙絞線只能傳輸100m的距離限制,因此廣泛應(yīng)用于使用長距離光纖的網(wǎng)絡(luò)環(huán)境中。伴隨著光纖收發(fā)器應(yīng)用的不斷增多,它也成為網(wǎng)絡(luò)中一個(gè)比較重要的故障點(diǎn)。利用收發(fā)器的指示燈是否正常,可以快速的判斷出故障所在。
1.光路LINK燈不亮。首先檢查光纖鏈路是否有問題,光纖斷裂和光纖中間環(huán)節(jié)過多,都可能引起LINK燈不亮。比如中間有幾個(gè)接續(xù)包或者通過法蘭盤跳接等使光纖損耗過大,超出了收發(fā)器接收范圍,用光功率機(jī)測試一下就可知道。然后看收發(fā)器的兩個(gè)光纖接口與光纖的連接是否正確,A端的TX口應(yīng)與B端的RX口連接,A端的RX口應(yīng)與B端的TX連接。測試連接正確與否的方法很簡單,將與光纖收發(fā)器相連接的兩根光纖跳線互換,互換后,LINK燈亮了,即可證明原來的連接錯(cuò)誤。
2.電路LINK燈不亮。首先檢查網(wǎng)線是否有問題,是否存在網(wǎng)線不通、水晶頭故障等問題。然后根據(jù)與收發(fā)器連接的設(shè)備選用直通線或者交叉線,一般與交換機(jī)等多地址網(wǎng)絡(luò)設(shè)備連接時(shí)用交叉線,與服務(wù)器工作站等單地址網(wǎng)絡(luò)設(shè)備連接時(shí)用直通線。有些收發(fā)器有兩個(gè)RJ45端口,一個(gè)直通一個(gè)交叉,有些側(cè)面有MPR和DTE兩個(gè)選擇開關(guān),MPR表示直通連接,DTE表示交叉連接。還有一種情況是收發(fā)器與其他網(wǎng)絡(luò)設(shè)備(網(wǎng)卡、集線器、交換機(jī)等)的速率不匹配,比如100M的收發(fā)器接了個(gè)10M網(wǎng)卡或1G交換機(jī)端口,因此電路LINK燈始終不亮。要注意的是,有些收發(fā)器必須等光路連通后電路LINK燈才亮,因此要注意看收發(fā)器使用說明書。
3.收發(fā)器各指示燈都亮著,但光路LINK燈和電路LINK燈閃爍過慢或閃爍明顯不對(duì)稱,從而導(dǎo)致網(wǎng)絡(luò)不通,一般重啟一下收發(fā)器就可恢復(fù)正常。
三、交換機(jī)
交換機(jī)因其品牌、類型、模塊等差異,設(shè)備上的指示燈也存在不同,但是交換機(jī)前面板上一般都存在下列幾種指示燈:電源指示燈、連接指示燈、端口模式指示燈、端口狀態(tài)指示燈。根據(jù)這些指示燈的異常,可以判斷出交換機(jī)很多的故障原因,并快速采取相應(yīng)解決方法。
1.電源指示燈(POWERLED)
POWERLED為綠燈表示電源供應(yīng)正常,熄滅表示沒有電源供應(yīng)。電源指示燈不亮?xí)r,確認(rèn)交換機(jī)的電源線連接是否正確,使用的電源插座是否完好。可以重新安裝交換機(jī)的電源線或換用另外的電源插座。
2.連接指示燈(LNK/ACTLED)
LINKLED不亮表示沒有連接,需確認(rèn)交換機(jī)與其他設(shè)備的設(shè)置是否一致,并確認(rèn)線纜連接正確。另外,交換機(jī)與其它網(wǎng)絡(luò)設(shè)備之間的連接線纜為五類線,且距離超過100米,也會(huì)造成LINKLED不亮。
3.端口模式指示燈(MODELED)
端口模式指示燈顯示交換機(jī)端口所處的模式。如果要選擇或修改端口模式,連續(xù)的按壓Mode按鈕直到端口模式指示燈指示在所需的模式。
端口模式?jīng)Q定如何對(duì)端口狀態(tài)指示燈進(jìn)行解釋。也就是說對(duì)應(yīng)于不同的模式,端口狀態(tài)指示燈的顏色等情況表示的是不同的含義。
Mode按鈕有三種狀態(tài):
。STAT(狀態(tài),states)
。UTL(利用率,Utilization)
。FDUP(全雙工,fullduplex)
如果交換機(jī)的狀態(tài)燈為閃爍的橙色,一般表明在某一個(gè)端口或者模塊有硬件故障。
以華為S2100型交換機(jī)為例,按MODE按紐,按下后A/L和D/S的指示燈相互切換,當(dāng)用MODE按鈕切換到A/L模式時(shí),A/L燈亮,端口狀態(tài)指示燈用來指示端口的Active和Link狀態(tài),此時(shí)端口狀態(tài)指示燈為綠色,表示鏈路正常運(yùn)行。當(dāng)切換到D/S模式的時(shí)候,D/S燈亮,此時(shí)端口狀態(tài)指示燈表示端口的雙工模式和速率情況,端口上方的黃燈就跟著亮了,表示雙工的工作方式。
4.端口狀態(tài)指示燈
端口狀態(tài)指示燈能代表多種含義,取決于端口模式指示燈的當(dāng)前值。
端口模式的缺省模式為STAT狀態(tài),此時(shí)某端口狀態(tài)指示燈若關(guān)閉,表示無鏈路,即確定沒有連接到端口的設(shè)備;指示燈持續(xù)綠色,表示鏈路正常運(yùn)行;指示燈閃爍綠色,表示發(fā)送或者接收數(shù)據(jù);指示燈綠色/琥珀色交替,表示是鏈路錯(cuò)誤;指示燈持續(xù)琥珀色,表示是非轉(zhuǎn)發(fā)狀態(tài).是阻塞狀態(tài)。
端口模式處于不同狀態(tài)時(shí),各個(gè)廠商對(duì)于不同顏色的LED指示燈的功能定義是各不相同的,根據(jù)端口狀態(tài)指示燈判斷交換機(jī)的端口狀態(tài)之前,應(yīng)認(rèn)真閱讀相關(guān)產(chǎn)品的說明書。
四、路由器
路由器相比交換機(jī)而言,主要用于較大型的局域網(wǎng)和城域網(wǎng)。但隨著局域網(wǎng)的快速發(fā)展,路由器的應(yīng)用也出現(xiàn)快速上升的趨勢,各種路由器故障也隨之接踵而來。
路由器的LED指示燈較交換機(jī)的指示燈作用更局限,因?yàn)槁酚善鞯慕^大部分故障都出現(xiàn)在軟件和設(shè)置上,而路由器的LED指示燈主要用來輔助查看設(shè)備的硬件故障。比如:電源模塊上有一個(gè)綠色的POWER狀態(tài)指示燈。當(dāng)這個(gè)指示燈亮著時(shí),表示電源工作正常。接口模塊上的TX、RX指示燈。RX指示燈為綠色表示端口正在接收數(shù)據(jù)包;如果為橙色,則表示正在接收流控制的數(shù)據(jù)包。TX指示燈為綠色表示端口正在發(fā)送數(shù)據(jù)包;如果為橙色,則表示正在發(fā)送流控制的數(shù)據(jù)包。
同樣,不同品牌和型號(hào)的路由器對(duì)指示燈意義的定義不盡相同,除參考經(jīng)驗(yàn)之外,還要認(rèn)真閱讀產(chǎn)品說明書。
Copyright ? mingxiaow.com All Rights Reserved. 杭州優(yōu)配網(wǎng)絡(luò)科技有限公司 版權(quán)所有 未經(jīng)書面允許不得轉(zhuǎn)載、復(fù)制信息內(nèi)容、建立鏡像
本網(wǎng)站內(nèi)容僅供參考,請(qǐng)以各學(xué)校實(shí)際情況為主!內(nèi)容侵權(quán)或錯(cuò)誤投訴:841539661@qq.com 工信部備案號(hào):浙ICP備20019715號(hào)