Monday, April 7, 2008

Real Time Data Capture Program, But what's the use of it?

ကြန္ျပဴတာစံနစ္တစ္ခု နဲ႕ ထိန္းခ်ဳပ္ၿပီးေတာ့ လည္ပတ္ေနတဲ့ စက္ေတြထဲက ကိုယ္လိုခ်င္တဲ့ ေဒတာေတြကို အခ်ိန္နဲ႕အမွ် ကြန္ျပဴတာထဲမွာ သိမ္းဆည္းထား ႏိုင္မယ့္ Visual Basic Program တစ္ခုကိုေဆြးေႏြးလိုပါတယ္။ လိုအပ္တဲ့ Components ေတြ (ဗီဒီယို၊ စာအုပ္၊ စက္အစိတ္အပိုင္း Listing) အားလံုးကို ကၽြန္ေတာ္ေနာက္က်မွ ၀က္ဘ္ေပၚမွာ တင္ျပေပးပါ့မယ္။ ဗီဒီယုိတင္တာ အဆင္မေျပတာရယ္၊ (၃ရက္ၾကာေတာင္ Upload မၿပီးပါဘူး) ကၽြန္ေတာ္ကိုယ္တုိင္အလုပ္ရႈပ္ေနတာရယ္ေၾကာင့္ ေ၀ဖန္၊ အၾကံဳျပဳ၊ တိုက္ခိုက္မႈမ်ားအား လံုးကို ေျဖရွင္းခ်က္မေပးႏိုင္ေသးပါဘူး။ ဒါေပမယ့္ အားလံုးေက်နပ္ေအာင္ တုံ႕ျပန္ ေဆာင္ရြက္ေပးသြားမွာပါလို႕ အရင္ေျပာပါရေစခင္ဗ်ာ။ Kindly Jump the useless Junks here.



ကၽြန္ေတာ္ အသံုးျပဳထားတဲ့ Protocol က Dedicated protocol ျဖစ္ပါတယ္။ ကၽြန္ေတာ္ အဓိက က်တဲ့ အခ်က္ေတြနဲ႕ ဒီပရိုဂရမ္ကို ဘယ္ေနရာေတြမွာ သံုးႏိုင္တဲ့ ဆိုတဲ့အခ်က္ေတြကို အဓိက ေဆြးေႏြးသြားပါ့မယ္။ အေသးစိတ္ကို စာအုပ္ေတြနဲ႕ ဗီဒီယိုေတြထဲမွာ ၾကည္႕ၾကဘို႕ ေမတၱာရပ္ခံပါတယ္။











Dedicated Protocol ထဲမွာ Control Format ၅ ခုရွိတဲ့ အနက္က Format 1 ကိုပဲ ေရြးခ်ယ္ပါတယ္။ ကၽြန္ေတာ္တို႕ မွတ္ယူႏိုင္တဲ့ အခ်က္တစ္ခုကေတာ့ Computer နဲ႕ ဆက္စပ္ပစၥည္းေတြ အခ်င္းခ်င္းဆက္သြယ္အလုပ္လုပ္ၾကတဲ့ အခါမွာ တိက်တဲ့ အခ်က္ျပသေကၤတ ဇယားေတြ ရွိတယ္ဆိုတာပါ။ Computer နဲ႕ Printer ခ်ိတ္ရင္ ဘယ္လိုဇယားေတြရွိတယ္။ Computer ကေနာက္ Computer ကိုသြားရင္ ဘယ္လိုဇယားေတြ ရွိတယ္။ ပိုၿပီးေတာ့ အဆင့္တစ္ခုထပ္ျမွင့္ခ်င္လို႕ရင္ ကိုယ္ တည္ေဆာက္ထားတဲ့ Electronic Device တစ္ခုနဲ႕ Computer ခ်ိတ္ဆက္အလုပ္လုပ္ႏိုင္ေအာင္ ဇယားတစ္ခု ဘယ္လိုေရးဆြဲသတ္မွတ္မယ္အစရွိသည္ျဖင့္ ေလ့လာႏိုင္ပါတယ္။ ကၽြန္ေတာ္တို႕ေရးတဲ့ Program ဟာ Personal Computer (PC) တစ္ခုကေန Specialized Computer တစ္ခုကို ခ်ိတ္ဆက္ ၿပီးေတာ့ ေဒတာပို႕ျခင္း ရယူျခင္းမ်ား ျပဳလုပ္ရန္အတြက္ ေရးသားထားျခင္းျဖစ္ပါတယ္။ ေဒတာလိုခ်င္ရင္ ကြန္ျပဴတာဘက္က ဘာပို႕ၿပီးေတာ့ အထူးျပဳကြန္ျပဴတာဘက္က ေဒတာရ၊ မရဘာျပန္ေျပာရမယ္ဆိုတာကို အရင္ေလ့လာဘို႕လိုပါ တယ္။ အေသးစိတ္ရွင္းျပဘို႕မလြယ္မွန္းသိတဲ့အတြက္ ကၽြန္ေတာ္တင္ေပးမယ့္ စာအုပ္ေတြကိုသာ ဖတ္ၾကပါလို႕ ထပ္ကာ ထပ္ကာ ေျပာပရေစ။



ပထမဆံုး ကြန္ျပဴတာ ဘက္ကေန ေဒတာပို႕ေပးမယ့္ ေဖာင္ တစ္ခုကို ေဆာက္ပါတယ္။



ပံုမွာျပထားတဲ့အတိုင္း Text Fields နဲ႕ Combo Fields ေတြပထမဆံုးေဆာက္ပါတယ္။ နာရီပံုေလးနဲ႕ တယ္လီဖုန္းပံုကေလးေတြက ပရိုဂရမ္ကို ေနာက္ကေနအလုပ္လုပ္ေပးေနတဲ့ Control ေတြျဖစ္ပါတယ္။ သေဘာတရားျခင္းကေတာ့ C Language မွာ Header File ေခၚရသလိုမ်ိဳး နဲ႕တူမယ္လို႕ ကၽြန္ေတာ္ထင္ပါတယ္။ VB6 ရဲ႕ မူလ Menu မွာ တယ္လီဖုန္းပံုကေလးမပါပါဘူး။ အဲဒီ့ပံုကေလးက Com port ေတြကို Control လုပ္တဲ့ Component ပဲျဖစ္ပါတယ္။ Project Menu ရဲ႕ေအာက္မွာ Reference နဲ႕ Component Sub Menu ႏွစ္ခုရွိပါတယ္။ အဲဒီအထဲကိုသြားၿပီးေတာ့ Microsoft Comm Control 6.0 နဲ႕ Microsoft Excel 11.0 Object Library ေတြကို အရင္ ေရြးထားရပါမယ္။ ဒီ VB ကေတာ္ေတာ္ ေဟာင္းေနပါၿပီ။ ကၽြန္ေတာ္ ရထားတာကိုက လြန္ခဲ့တဲ့ ၃ ႏွစ္ေက်ာ္ေလာက္ကပါ။ ဒီေနရာမွာ ကၽြန္ေတာ္တို႕ မွတ္ယူႏိုင္တာက Original Software ေတြမွာ Full function မပါတတ္ဘူးဆိုတာပါ။ ကိုယ္ေရးခ်င္တဲ့ ပရိုဂရမ္တစ္ခုက Error တက္ေနတယ္ဆိုရင္ Components ေတြလိုေနလို႕ျဖစ္ႏိုင္တယ္ဆိုတာပါ။ Software Version တူရင္ေတာ့ တိုက္ရိုက္ apply လုပ္ႏိုင္ပါတယ္။ Professional Version ထဲမွာ ပါတဲ့ Components ေတြက အမ်ားႀကီးပါ။ ကိုယ္အသံုးလိုရာကို ယူၿပီးေတာ့ Program ေရးၾကတာပါပဲ။













ပရိုဂရမ္စၿပီးေတာ့ ေျပာပါ့မယ္ခင္ဗ်ာ။



Dim x, y As Integer
Dim textcheck, ldtime, ftpclstime, wipeclstime, ftpcycle, wipecycle As String
Dim uldtime, indextime As String



Variable ေတြ သတ္မွတ္ပါတယ္။ အနီေရာင္နဲ႕ ျပထားတဲ့ Variable ေတြကို String အျဖစ္သတ္မွတ္ပါတယ္။ စက္ဆီကလာတဲ့ ေဒတာေတြကို အဲဒီ့ ေနရာေတြမွာထည္႕ရမွာပါ။ ဘာျဖစ္လို႕ စာေၾကာင္းအေနနဲ႕ သတ္မွတ္ရသလဲဆိုေတာ့ Communication Methods ေတာ္ေတာ္မ်ားမ်ားမွာ ျပန္လာတဲ့ ေဒတာေတြဟာ Hex Key Characters ေတြအေနနဲ႕ ျပန္လာလို႕ပဲျဖစ္ပါတယ္။ ဗီဒီယိုထဲမွာ ျမင္ေနရသလိုမ်ိဳး နံပါတ္ေတြ ေပၚေအာင္ အဲဒီ့ Hex ကိုပဲ Decimal ေျပာင္းၿပီးေတာ့ ျပရတာျဖစ္ပါတယ္။ Programming Language ေတာ္ေတာ္မ်ားမ်ား မွာ Hex Key နဲ႕ Decimal ေျပာင္းျခင္းကို အလြယ္တကူ ျပဳလုပ္ႏိုင္ၾကပါတယ္။
Private Sub Form_Load()
Dim xlapp As Object
Dim filename As String



Excel File တစ္ခုတည္ေဆာက္ဘို႕အတြက္ Parameter ေတြစေရးရတာျဖစ္ပါတယ္။
x = 1
y = 1
cbosendcommand.AddItem "BW"
cbosendcommand.AddItem "WW"
cbosenddevice.AddItem "X"
cbosenddevice.AddItem "Y"
cbosenddevice.AddItem "M"
cbosenddevice.AddItem "D"
cbosenddevice.AddItem "R"
cbosenddevice.AddItem "T"
cbosenddevice.AddItem "C"
cbosend_dpoint.AddItem "01"
cbosend_dpoint.AddItem "02"
cbosend_dpoint.AddItem "03"
cbosend_dpoint.AddItem "04"
cbosend_dpoint.AddItem "05"
cbosend_dpoint.AddItem "06"
cbosend_dpoint.AddItem "07"
cbosend_dpoint.AddItem "08"
cbosend_dpoint.AddItem "09"
cbosend_dpoint.AddItem "10"



Combo Box ေတြကို List Down လုပ္လိုက္ရင္ ေပၚလာမဲ့ စာလံုးေတြကို ထည္႕တာျဖစ္ပါတယ္။ ဘာေၾကာင့္ ဒီစကားလံုးေတြေရြးသလဲဆိုတာကို ေနာက္က် ေဖာ္ျပေပးပါ့မယ္။
Stx$ = Chr$(&H2): Etx$ = Chr$(&H3)
Enq$ = Chr$(&H5): Ack$ = Chr$(&H6)
Esc$ = Chr$(&H1B): Nak$ = Chr$(&H15)
Can$ = Chr$(&H18)



ဒီ Command ေတြက အသံုးအ၀င္ဆံုးျဖစ္ပါတယ္။ တစ္ျခား Language ေတြမွာ ဘယ္လိုေရးမလဲ ေလ့လာေ၀မွ် ေပးႏိုင္ပါတယ္။ေဒတာ ပို႕တဲ့ Format ဇယားေလးကို ၾကည္႕လိုက္ရင္ ပံုစံက ENQ : St : Pc : Command : Msg Wait Time : Head Device : Number Of : Sum Check ဆိုၿပီးေတာ့ေတြ႕ရပါလိမ့္မယ္။ အဲဒီေတာ့ ကၽြန္ေတာ္တို႕ Specialized Computer ထဲက ေဒတာလိုခ်င္ရင္ "ENQ00FFBRAD010042" ဆိုတဲ့ စာေၾကာင္းလိုမ်ိဳး Command တစ္ခုကို ပရိုဂရမ္က ပို႕ေပးလိုက္တာပါပဲ။ ဒါမ်ိဳး code ပို႕ေပးလိုက္ရင္ တစ္ဘက္ကြန္ျပဴတာကလဲ ဒါဘာလုပ္ဘို႕ခိုင္းေနတာလဲဆိုတာ နားလည္သြားပါတယ္။ ၾကားထဲမွာ Binary ေျပာင္းတာ အစရွိတဲ့ အလုပ္အားလံုးကို ကြန္ျပဴတာကပဲ လုပ္သြားပါတယ္။ ပရင္တာနဲ႕ ကြန္ျပဴတာ ခ်ိတ္ၿပီးအလုပ္လုပ္ေနတာ၊ စက္နဲ႕ ကြန္ျပဴတာခ်ိတ္ၿပီးအလုပ္လုပ္ေနတာေတြအားလံုးဟာ ဒါမ်ိဳးကုဒ္ေပါင္းမ်ားစြာ အသြားအျပန္လုပ္ၿပီးေတာ့ အလုပ္လုပ္ေနမယ္လို႕ ကၽြန္ေတာ္ခန္႕မွန္းေတြးၾကည္႕လို႕ရပါတယ္။ အခု ေရးထားတဲ့ ပရိုဂရမ္က အဓိကထိန္းေပးေနတာက ဒါမ်ိဳးကုဒ္ေတြ အသြားအျပန္လုပ္ေနတဲ့ အခ်ိန္မ်ိဳးေတြမွာ စံနစ္တက် Timing Diagram ေတြ၊ Signal ေတြအမ်ိဳးမ်ိဳးေပးေနတာေတြကိုပဲ အထိန္းအကြပ္လုပ္ေပးေနတာပဲ ျဖစ္ပါတယ္။ ကၽြန္ေတာ္ ENQ signal နဲ႕ Sum check အေၾကာင္းကိုပဲ အဓိကေျပာခ်င္ပါတယ္။ ASCII Table ရဲ႕ ပထမပိုင္းကို ၾကည္႕လိုက္ၾကရေအာင္။

ASCII (Hex) 00 ကေန 20 အထိက ကုဒ္ေတြဟာ စာလံုးေတြမဟုတ္ပဲ Signal ေတြ ျဖစ္ေနတယ္ဆိုတာ ေတြ႕ရပါလိမ့္မယ္။ အဲဒီ့အထဲက တစ္ခ်ိဳ႕ ကုဒ္ေတြသာ Keyboard ေပၚကစာလံုးေတြျဖစ္ၿပီးေတာ့ တစ္ခ်ိဳ႕ကုဒ္ေတြက အခုကၽြန္ေတာ္တို႕ သံုးမဲ့ Communication လိုမ်ိဳးမွာ အသံုးျပဳဘို႕အတြက္ ပဲျဖစ္ပါတယ္။ ကုဒ္တစ္ခုခ်င္းစီရဲ႕ Function ဟာ ဘာျဖစ္တယ္။ ဘယ္ေနရာမ်ိဳးမွာ အသံုးတဲ့ တယ္ဆိုတာဆိုတာကိုေတာ့ ရွာေဖြေလ့လာၾကေစလိုပါတယ္။ Enq Signal က ASCII Table ရဲ႕ Hex 05 မွာ ရွိတဲ့အတြက္ အထက္မွာ ျပထားတဲ့အတိုင္း Parameter ေတြထဲမွာ ထည္႕ထားလိုက္ျခင္းျဖစ္ပါတယ္။ တစ္ျခား Programming Language ေတြ အမ်ားႀကီးရွိတဲ့ အထဲမွာ ဒါမ်ိဳး Assign လုပ္ဘို႕ ဘယ္လိုေရးရမယ္ဆိုတာကိုေတာ မိမိတို႕ကိုယ္တိုင္သာ ေလ့လာႏိုင္ၾကပါတယ္ခင္ဗ်ာ။
With MSComm1
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
.CommPort = 1
.Settings = "9600,N,8,1"
.InputLen = 0
End With
End Sub




Serial Com Port 1 က ပြင့္ေနရင္ ျပန္ပိတ္လိုက္ပါလို႕ အရင္ေရးပါတယ္။ ေနာက္ၿပီးေတာ့ Setting လုပ္ပါတယ္။ Baud Rate, Parity, Data bit နဲ႕ Sum check လုပ္မယ္ဆိုတဲ့ အေၾကာင္းကို ေျပာလိုက္တာပါ။ Inputlen ကေတာ့ ၀င္လာတဲ့ ေဒတာကို အကန္႕အသတ္မထားပဲ လက္ခံမယ္လို႕ ေၾကညာလိုက္ပါတယ္။



ဒါ ေဖာင္ဖြင့္လိုက္တာနဲ႕ ေနာက္ကြယ္က လုပ္ေဆာင္သြားတဲ့ ပရိုဂရမ္ အစိတ္အပိုင္းျဖစ္ပါတယ္။





Private Sub send_Click()
Dim stno, pc, msgtime As String
Dim tmpstr As String
Dim sndstr As String
Dim OVEN As Object
Dim fopen As Boolean
Call initialize
stno = "00"
pc = "FF"
msgtime = "A"
tmpstr = stno + pc + Trim$(cbosendcommand) + msgtime + Trim$(cbosenddevice) + Trim$(Text1) + Trim$(cbosend_dpoint) + Trim$(txtsenddata(0))
checksum = 0
For I = 1 To Len(tmpstr)
checksum = checksum + Asc("" & Mid(tmpstr, I, 1) & "")
Next I
checksum = Right(Hex(checksum), 2)




Sum Check လုပ္သြားတဲ့ Loop ျဖစ္ပါတယ္။ ဘာေၾကာင့္ လုပ္ရသလဲဆိုတာကို Data Communication သီအုိရီ အေျခခံကို သိသူမ်ားသိၾကပါတယ္။ ဒီဟာက ပရိုဂရမ္နဲ႕ ဘယ္လိုလုပ္လို႕ရသလဲဆိုတဲ့ Concept ကိုပဲ ယူၾကေစလိုပါတယ္။ ပထမဆံုး tmpstr variable ထဲကို တည္ေဆာက္ထားတဲ့ form ေပၚက User select or Type လုပ္လိုက္တဲ့ Combo Box or Text field ေတြထဲက စာလံုးေတြကို ေပါင္းထည္႕ေပးလိုက္ပါတယ္။ ၿပီးေတာ့မွ အဲဒီ့စာေၾကာင္းရွိတဲ့ စာလံုးအေရအတြက္အတိုင္း တစ္လံုးၿပီးတစ္လံုး Hex Key ေတြေျပာင္းၿပီးေတာ့ Loop ထဲမွာ ေပါင္းေပါင္းထည္႕၊ ေနာက္ဆံုးအဆင့္မွာ ေပါင္းလို႕ရတဲ့ ရလဒ္ရဲ႕ ညာဘက္အစြန္ဆံုး ၂လံုးကိုပဲ ယူၿပီးေတာ့ ေပးပို႕မယ့္ Sum Check Code အျဖစ္သတ္မွတ္လိုက္ျခင္းပါ။ Looping လုပ္တာကို Asc, Mid, Right, Hex အစရွိတဲ့ commands ေတြနဲ႕ တြဲစပ္အသံုးျပဳသြားျခင္းျဖစ္ပါတယ္။ Command တစ္ခုျခင္းစီရဲ႕ အလုပ္လုပ္ပံုနဲ႕ Command Structure ေတြကို Help ထဲမွာသာ ၾကည္႕ၾကဘို႕ေမတၱာ ရပ္ခံပါတယ္။




Enq$ = Chr$(&H5)
sndstr = Enq$ & stno & pc & Trim$(cbosendcommand) & msgtime & Trim$(cbosenddevice) & Trim$(Text1) & Trim$(cbosend_dpoint) & Trim$(txtsenddata(0)) & checksum



ဒီ Command အၿပီးမွာေတာ့ sndstr ဆိုတဲ့ Variable ထဲမွာ Π00FFBRAD01000542 လိုမ်ိဳး ေပးပို႕ရမဲ့ စာေၾကာင္းတစ္ခု၀င္သြားပါၿပီ။ အေရွ႕ဆံုးက ေလးေထာင့္အကြက္ကေလးက Enq Signal ပဲျဖစ္ၿပီးေတာ့ စာလံုးတစ္ခုအေနနဲ႕ ျမင္ရမွာမဟုတ္ပါဘူး။ ဒါေပမယ့္ ဒီ ေလးေထာင့္အကြက္မပါရင္လဲ ဘာမွျမင္ရမွာ မဟုတ္ပါဘူး။
Call sendtoPLC(sndstr)
Call comin
End Sub





အဲဒီ့ Command Line ကိုပို႕လုိက္ျခင္းနဲ႕ ျပန္၀င္လာတဲ့ ေဒတာကို လက္ခံျခင္း ကို Sub program ၂ခုေရးၿပီးေတာ့ လုပ္လိုက္ပါတယ္။



Sub sendtoPLC(sndstr As String)
Dim a As Single
With MSComm1
.RTSEnable = True
.DTREnable = True
For a = 1 To 300000
Next a

.Output = sndstr
End With
End Sub




DTR, DSR Control Method ကိုသံုးၿပီးေတာ့ ပို႕လိုက္ပါတယ္။ ဘယ္လိုပို႕တယ္ဆိုတဲ့ အေသးစိတ္ရွင္းျပခ်က္ကို စာအုပ္ထဲမွာ ၾကည္႕ပါ။ Signal တစ္ခုနဲ႕ တစ္ခုအၾကားမွာ အခ်ိန္ ဘယ္ေလာက္ ျခားရမလဲဆိုတာ Diagram ထဲမွာ ျပထားတဲ့အတြက္ For Loop နဲ႕ ပတ္ေပးထားတာျဖစ္ပါတယ္။ ကၽြန္ေတာ္တို႕ သတိထားရမွာက Timing out ရင္ ဘာမွထြက္လာမွာ မဟုတ္ဘူးဆိုတာပါပဲ။ ေနာက္ပရိုဂရမ္က ေဒတာ၀င္လာတာကို ရယူတဲ့အပိုင္းပါ။

Sub comin()
For k = 1 To 10000
Next k
With MSComm1
If .CDHolding = False Then
For k = 1 To 30000
Next k
.DTREnable = True
End If
dsp_buff = ""
For j = 1 To 100
For I = 1 To 200000
Next I
ret = .InBufferCount
If ret > 0 Then
dsp_buff = dsp_buff + .Input
frmReceive.Text = dsp_buff
End If
Next j
End With
End Sub

ဒီမွာ ေတြ႕ေနရတဲ့ .DTR enable = True/False ဆိုတာေတြက Diamgram ထဲက Signal ပံုစံေတြနဲ႕ အညီ အဖြင့္အပိတ္လုပ္ေနျခင္းပါပဲ။ ၾကားထဲမွာ ေစာင့္ရမယ္ဆိုရင္ Loop ထည္႕ခံပါတယ္။ Wait() command ကိုလဲ အသံုးျပဳႏိုင္ပါတယ္။ ၀င္လာတဲ့ ေဒတာကို ကၽြန္ေတာ္တို႕ ပထမဆံုးေဆာက္ခဲ့တဲ့ Form ထဲက frmreceive.text ဆိုတဲ့ Text field ထဲကိုထည္႕လိုက္ပါတယ္။ ၀င္လာတဲ့ ေဒတာမွန္ မမွန္ဆိုတာကို ေတာ့ အရင္အထပ္ထပ္ Run ၿပီးေတာ့ စစ္ေဆးမႈ ျပဳလုပ္ရပါတယ္။ Timing ခ်ိန္တာ Signal On/Off လုပ္တာမွန္မမွန္ စစ္ေဆးတာမ်ိဳးေတြပါ။

Setup
Set xlapp = New Excel.Application
Set xlbook = GetObject("C:\Test1.xls")
xlbook.Application.Visible = True
Set OVEN = xlbook.Worksheets("Test")
OVEN.Application.Visible = True
OVEN.Activate
If y = 0 Then
y = y + 1
End If


ဒီမွာ Setup Program က Module.bas Program ကိုသြားေခၚတာပါ။ Visual Basic Program ကေန Excel မွာရွိတဲ့ Function ေတြကို အသံုးျပဳရင္ အေပၚမွာ ျပထားတဲ့ Code ေတြကို ေလ့လာၿပီးေတာ့ အသံုးျပဳႏိုင္ပါတယ္။ ပရိုဂရမ္ၾကည္႕ပဲ သက္သက္ေရးသားဘို႕ခက္ခဲတဲ့ တြက္ခ်က္မႈမ်ိဳးမ်ားကို Excel ရဲ႕ ေဖာ္ျမဴလာေတြကို အသံုးခ်ၿပီးေတာ့ ေနာက္ကြယ္ကေန တြက္ခ်က္မႈေတြ ျပဳလုပ္ခိုင္းထားႏိုင္ပါတယ္။


textcheck = Mid(dsp_buff, 6, 4)
ldtime = Mid(dsp_buff, 10, 4)
ftpclstime = Mid(frmReceive.Text, 14, 4)
wipeclstime = Mid(frmReceive.Text, 18, 4)
wipecycle = Mid(frmReceive.Text, 22, 4)
ftpcycle = Mid(frmReceive.Text, 26, 4)
uldtime = Mid(frmReceive.Text, 30, 4)
indextime = Mid(frmReceive.Text, 34, 4)
textlen = Len(textcheck)
LDLEN = Len(ldtime)
ftpclslen = Len(ftpclstime)
wipeclslen = Len(wipeclstime)
wipecyclelen = Len(wipecycle)
ftpcyclelen = Len(ftpcycle)
uldlen = Len(uldtime)
indexlen = Len(indextime)
Text34.Text = textcheck

၀င္လာတဲ့ ေဒတာေတြကို Variables ေတြထဲမွာ ေျပာင္းထည္႕လိုက္ပါၿပီ။

Text37.Text = textcheck
RESULT = 1
FINALRESULT = 0
Text37.Text = Text34.Text
'On Error GoTo hebierrorhandler
For I = 1 To textlen
checkcondition = False
Text37.Text = Left(Text34.Text, textlen)
textcheck = Right(Text37.Text, 1)
If textcheck = "0" Then e = 0
If textcheck = "1" Then e = 1
If textcheck = "2" Then e = 2
If textcheck = "3" Then e = 3
If textcheck = "4" Then e = 4
If textcheck = "5" Then e = 5
If textcheck = "6" Then e = 6
If textcheck = "7" Then e = 7
If textcheck = "8" Then e = 8
If textcheck = "9" Then e = 9
If textcheck = "A" Or textcheck = "a" Then e = 10
If textcheck = "B" Or textcheck = "b" Then e = 11
If textcheck = "C" Or textcheck = "c" Then e = 12
If textcheck = "D" Or textcheck = "d" Then e = 13
If textcheck = "E" Or textcheck = "e" Then e = 14
If textcheck = "F" Or textcheck = "f" Then e = 15

If I = 1 Then
RESULT = e * 1
FINALRESULT = RESULT + FINALRESULT
RESULT = 1
End If
If I = 2 Then
RESULT = e * 16
FINALRESULT = RESULT + FINALRESULT
RESULT = 1
End If
If I = 3 Then
RESULT = e * 256
FINALRESULT = RESULT + FINALRESULT
RESULT = 1
End If
If I = 4 Then
RESULT = e * 4096
FINALRESULT = RESULT + FINALRESULT
RESULT = 1
End If
If I = 5 Then
RESULT = e * 65536
FINALRESULT = RESULT + FINALRESULT
End If
If I = 6 Then
RESULT = e * 1048576
RESULT = 1
End If
textlen = textlen - 1
Next I
Text37.Text = FINALRESULT
> But What's the Use Of it?
အခုဆိုရင္ ပရိုဂရမ္ရဲ႕ ရွင္းလင္းတင္ျပမႈ မျပည္႕မစံုနဲ႕ ၿပီးသြားပါၿပီခင္ဗ်ား။ အခုဒုတိယပိုင္းျဖစ္တဲ့ But what's the use of it ကို ဆက္ပါေတာ့မယ္။

အမွန္အတိုင္းေျပာရရင္ကေတာ့ အေပၚမွာ ျပထားတဲ့ ပရိုဂရမ္ေတြကို အခ်ိန္မရွိတဲ့ၾကားက ကၽြန္ေတာ္ေတာ္ေတာ္ ႀကီးေအာင့္အီးၿပီးေတာ့ ရွင္းျပလိုက္ရတာပါ။ ဖတ္ၾကည္႕တဲ့သူေတာ္ေတာ္မ်ားမ်ား ေရးေတးေတးကလြဲၿပီးေတာ့ ဘာမွသိမယ္လို႕ေတာ့ မထင္ပါဘူး။ ဘာျဖစ္လို႕ မသိရသလဲဆိုေတာ့ ဖတ္တဲ့သူညံ႕လို႕မဟုတ္ပါဘူး။ ကၽြန္ေတာ္တို႕ကိုယ္ကၽြန္ေတာ္တို႕ ရွင္သန္ရုန္းထေနတဲ့ သစ္ပင္တစ္ခုလို႕ျမင္ၾကည္႕မယ္ဆိုရင္ ကၽြန္ေတာ္တို႕ ေပါက္ေနတဲ့ ေျမျပင္ က ေျမၾသဇာမရွိ ေျမမပါ ေက်ာက္သားပကတိေပၚမွာ ေပါက္ေနတဲ့ အပင္မ်ားသာ ျဖစ္ေနၾကလို႔ပါပဲ။

Experience without Theory is blind, Theory without experience is mere intellectual play ဆိုတဲ့ စကားပံုတစ္ခုရွိပါတယ္။ ဂ်ာမနီမွာ အင္ဂ်င္နီယာဘြဲ႕ရယူ မဲ့သူေတြဟာ တူကိုင္ဂြကိုင္ အနည္းဆံုး ၃ ႏွစ္လုပ္ၿပီးမွ အင္ဂ်င္နီယာဘြဲ႕ကိုေပးတယ္လို႕ၾကားဘူးပါတယ္။ ကၽြန္ေတာ္တို႕ရဲ႕ ဆရာေျပာသြားတာပါ။ မွန္မ မွန္ေတာ့ မသိပါဘူး။ အက်ိဳးျပဳလုပ္ငန္းတစ္ခု တစ္ကယ္ကို ေအာင္ေအာင္ျမင္ျမင္လုပ္ကိုင္ ခ်င္တယ္ဆိုရင္ အေျခခံ အက်ဆံုး အခ်က္(၅)ခုနဲ႕ ျပည္႕စံုမွ ေအာင္ျမင္ေအာင္လုပ္ေဆာင္ႏိုင္တယ္လို႕ မွတ္သားဘူးပါတယ္။ Capacity လို႕ေခၚတဲ့ လုပ္ကိုင္ႏိုင္မႈရွိျခင္း၊ တာ၀န္ေပးအပ္ျခင္းခံရမႈ ၊ Delivery လို႕ေခၚတဲ့ ျပဳလုပ္လိုက္တဲ့ အရာတစ္ခုခုကို လက္ခံအသံုးျပဳတဲ့သူ၊ System လို႕ေခၚတဲ့ ျပဳလုပ္၊ လက္ခံမယ့္ စံနစ္၊ Partners & Networks လို႕ေခၚတဲ့ အဆက္သြယ္မ်ားနဲ႕ Closure လို႕ေခၚတဲ့ မည္ကဲ့သို႕၊ မည္သည္႕အခ်ိန္မွာ အဆံုးသတ္ရမည္ကို သိရွိျခင္းေတြပါ။ Closure ရဲ႕အေရးပါတဲ့ အခ်က္တစ္ခုကေတာ့ ကၽြန္ေတာ္တို႕ ျပဳလုပ္လိုက္တဲ့ လုပ္ငန္းတိုင္း ဟာ ေသခ်ာေပါက္ေအာင္ျမင္မယ္လို႕ ဘယ္သူမွ ကံေသကံမ မေျပာႏိုင္ပါဘူး။ လုပ္ကိုင္ေနဆဲ တစ္၀က္တစ္ပ်က္မွာ ဘယ္လိုမွမေအာင္ျမင္ႏိုင္ဘူးဆိုတာ သိလာၿပီဆိုရင္ အဆံုးအရံႈးနဲနဲနဲ႕ အဲဒီ့လုပ္ငန္းကို ဘယ္လို စြန္႕လႊတ္ပစ္လိုက္ဘို႕အတြက္ ႀကိဳတင္ျပင္ဆင္ထားတာပဲ ျဖစ္ပါတယ္။ ေရဗူးေပါက္တာမလိုခ်င္ဘူး ေရပါတာပဲ လိုခ်င္တဲ့ အယူအဆနဲ႕ေတာ့ နဲနဲ ကြဲျပားတာေပါ့။

အဲဒီေတာ့ အေပၚက ပရိုဂရမ္ရယ္၊ ႏိုင္ငံေတာ္က လႊတ္ထားတဲ့ ပညာေတာ္သင္ႀကီးမ်ားနဲ႕၊ ဒီကေန႕ ျမန္မာႏိုင္ငံတို႕ကို ေရာေမႊၾကည္႕ရေအာင္ဗ်ာ။ ကၽြန္ေတာ့္ စီပံုးထဲမွာ တစ္ေယာက္လာေျပာသြားဘူးပါတယ္။ ပညာေရးလိုလို၊ ႏိုင္ငံေရးလိုလို၊ ရုရွားဆန္႕က်င္ေရးလိုလုိမလုပ္နဲ႕တဲ့။ ကၽြန္ေတာ္လုပ္ေနတာ အဲဒါမ်ိဳး လိုလိုေတြပဲ လုပ္ေနတာလို႕ ျပန္ေျပာခ်င္ပါတယ္ခင္ဗ်ာ။ ေနာက္တစ္ခုက အတင္းေျပာတယ္ဆိုတာပါ။ အတင္း မဟုတ္ပါဘူး။ အတည္႕ေျပာတာပါလို႕ေျပာခ်င္ပါတယ္။ ဒါေပမယ့္ ဒါေနာက္ဆံုးပဲလို႕ေတာ့ ေျပာခ်င္ပါတယ္။ ကၽြန္ေတာ့္ပို႕စ္ေတြရဲ႕အစကို ေသေသခ်ာေသခ်ာၾကည္႕လိုက္ပါ။ ကၽြန္ေတာ္စခဲ့တာက ကၽြန္ေတာ္တို႕ ႀကံဳေတြ႕ ေနရတဲ့ အေျခအေနအခက္အခဲေတြကို ယထာဘူတက်က် အခ်က္က်က်နဲ႕ ေဆြးေႏြးႏိုင္ၾကဘို႕ အတြက္ စတင္ခဲ့ျခင္းျဖစ္ပါတယ္။ အခုအခ်ိန္မွာ ႏိုင္ငံကၽြန္ျဖစ္ေနတာေတာင္မွ ေနာင္တစ္ခ်ိန္မွာ လိုအပ္လာရင္ ႏိုင္ငံ့အတြက္ အဆင္သင့္ျဖစ္ႏိုင္ဘို႕ သတိျပဳထားစရာမ်ားကို ကၽြန္ေတာ္ကိုယ္တိုင္ေလ့လာသင္ယူၿပီးေတာ့ ေဆြးေႏြးလိုတာျဖစ္ပါတယ္။ စစ္အစိုးရ ရဲ႕ အရည္မရ အဖတ္မရ မုသားေရးမွ ထမင္းစားရမဲ့ လူမ်ား၀င္လာၿပီး ဟာသမ်ားေရးသြားတဲ့အတြက္ နဲနဲ ပြဲၾကမ္းသြားရျခင္းျဖစ္ပါတယ္။ အရမ္းယုတ္ယုတ္မာမာေတြသာ မဆဲၾကဘို႕ေတာင္းပန္ပါတယ္။ ေခြးနဲ႕ႏိႈင္းတာ ေလာက္အထိေတာ့ရပါတယ္။ က်န္တာႀကိဳက္တာေရးလို႕ရပါတယ္။ ဒါေပမဲ့ ငါ့စကားႏြားရ ေျပာတတ္တဲ့သူေတြ၊ ကိုယ့္ကိုကို ဖိုးေရႊလထင္ေနသူေတြ အနာေပၚဒုတ္က်ျဖစ္သြားတယ္ဆိုရင္ ေတာ့ စိတ္မေကာင္းပါဘူး။ဖုိးေရႊလဆိုသူမ်ား ၀ါးလံုးေခါင္းထဲလသာ၊ လဒေလာက္ေတာ့ ငွက္တိုင္းလွတယ္ဆိုတဲ့ စကားပံုမ်ားကို အမွတ္ရေစလိုပါတယ္။ အရူးလိုမလုပ္နဲ႕ ဆိုတာလဲပါပါတယ္။ အရူးက စစ္ေခြးထက္ တစ္မူးသာတာ ဘယ္သူ႕လိုက္ေမးေမး သိပါတယ္။ ေရေ၀းေရာက္ခ်င္လားလို႕ ျခိမ္းေျခာက္တာလဲပါပါတယ္။ ဒါကေတာ့ ေနာက္ဆံုး လက္နက္ပဲ ျဖစ္ပါလိမ့္မယ္။ ေရေ၀းေရာက္မွာ ေၾကာက္ရင္ ကၽြန္ေတာ္ ဘေလာ့ဂ္မေရးပါဘူးလို႕ ေျပာခ်င္ပါတယ္ခင္ဗ်ာ။

ျမန္မာႏိုင္ငံကို ပညာေတာ္သင္ႀကီးမ်ားက ကၽြန္ေတာ္ေရးထားတဲ့ ပရိုဂရမ္ကို ယူသြားၿပီး တိုင္းျပည္အတြက္ အသံုးျပဳၾကမယ္လို႕ ေတြးၾကည္႕ရေအာင္ခင္ဗ်ာ။ ပထမဆံုး Capacity (တာ၀န္ေပးအပ္ျခင္းခံရဘို႕) အတြက္ ကၽြန္ေတာ့္အေဖက အသက္ႀကီးတဲ့ လူႀကီးမဟုတ္တဲ့အတြက္ Delivery ကိုအရင္ဆံုး Practice လုပ္လိုက္ရပါတယ္။ အသက္ႀကီးတဲ့ လူႀကီးဆီကို ဒီပရိုဂရမ္ေလးသံုးခ်င္လြန္းလို႕ပါဆိုၿပီးေတာ့ အရေခ်ာင္တဲ့ စက္ရံုကို ပို႕ေပးဘို႕ ေနာက္ေဖးေပါက္ ကေန ပံုးေတြပံုးေတြ Delivery လုပ္လိုက္ရတာပါ။ အဲဒါမ်ိဳး Delivery လုပ္ႏိုင္ဘို႕အတြက္ကို Network ေတြ Partner Contact ေတြကလဲ ရွိရပါေသးတယ္။ အဲဒီ့ေနာက္ေတာ့ စက္ရံုႀကီး ကိုေရာက္သြားတဲ့အခါမွာ အသံုးျပဳတဲ့ System က ရွိတာေရာင္းစား၊ ရသမွ်ခိုးျဖစ္ေနတဲ့အတြက္ရယ္။ ကြန္ျပဴတာဆိုတာ လူႀကီးလာမွ ဖုတ္ဖက္ခါ ထုတ္ျပတဲ့ စံနစ္ရယ္ မီးကလဲ လာခ်င္မွလာ အျမဲပ်က္ျဖစ္ေနတဲ့ အတြက္ရယ္ ျဖစ္ပ်က္မႈမ်ားျဖစ္ေနတာေၾကာင့္ အဲဒီပရိုဂရမ္ကို အိတ္ထဲထည္႕ ခ်ိတ္ပိတ္ကာ ေအာင္ျမင္စြာ Closure လုပ္ပစ္လိုက္ေၾကာင္းပါခင္ဗ်ား။

အခုလက္ရွိအသံုးျပဳေနတဲ့ေနရာမွာေတာ့ Six Sigma Philosophy ရဲ႕ ေနာက္ဆံုးအဆင့္ (၈) ျဖစ္တဲ့ Automatic Data Capture ကိုေကာင္းေကာင္းႀကီးအသံုးခ်ကာ တစ္ႏွစ္တစ္ႏွစ္ ေဒၚလာ သန္းခ်ီေအာင္ ဆံုးရႈံး ေလလြင့္မႈမ်ားကို ကာကြယ္ေနတဲ့အေၾကာင္း ေၾကညာအပ္ပါတယ္ခင္ဗ်ား။

P.S သက္ဆိုင္တဲ့ငါ့လူတို႕ေရ။ ငါ့လူတို႕ကို ေနာက္ဆံုးေျပာခ်င္တာက ငါ့လူတုိ႕ဟာ Divide and Rule စံနစ္ရဲ႕ သားေကာင္ေတြဆိုတာပါပဲ။ ငါ့လူတို႕ကို ႏိုင္ငံျခားလႊတ္လိုက္တဲ့ ရည္ရြယ္ခ်က္ကို က ႏိုင္ငံကို ဖြံ႕ၿဖိဳးေစခ်င္လို႕ လႊတ္လိုက္တယ္ဆိုတာထက္ Manipulation Strategy တစ္ခုအရလႊတ္လိုက္တယ္ဆိုတာ ကိုယ့္လူတို႕ ျမင္ႏိုင္ၾကပါေစ။ ႏိုင္ငံကို တစ္ကယ္ဖြံ႕ၿဖိဳးေစခ်င္ရင္ ေမာင္ရင္တို႕ အခုပညာသင္ေနတဲ့ အေရအတြက္ ထက္အဆေပါင္းမ်ားစြာေသာ ျမန္မာျပည္သားေတြ အဆေပါင္းမ်ားစြာအဆင့္ျမင့္တဲ့ ပညာေတြကို ႏိုင္ငံအသီးသီးမွာ အငတ္ငတ္အျပတ္ျပတ္နဲ႕ ကုန္းရုန္းပညာသင္ေနၾကပါတယ္။ သူတို႕ဟာ ျမန္မာႏိုင္ငံ စံနစ္ေျပာင္းသြားရင္ တစ္ကယ္ျပည္ေတာ္ျပန္ၾကမဲ့သူေတြပါ။ ကုမၸဏီတစ္ခု ေအာင္ျမင္ဘို႕အတြက္ ပညာတတ္ရာေပါင္းမ်ားစြာ လိုအပ္ပါတယ္လို႕ ဆိုရင္ ႏိုင္ငံတစ္ခုတည္ေထာင္ဘို႕အတြက္ အခုေမာင္ရင္တို႕ လူေတြေလာက္နဲ႕ မလံုေလာက္ဘူးဆိုတာ သိရမွာေပါ့ေနာ္။ ျမန္မာႏိုင္ငံက ေက်ာင္းေတြမွာ ျပန္ၿပီးေတာ့ ႀကိဳးစားႏိုင္မယ္လို႕ ယံုၾကည္ေနၾကဆဲပဲလား။ ကၽြန္ေတာ္အထက္က တင္ျပခဲ့တဲ့ အခ်က္(၅)ခု ျမန္မာျပည္မွာ ရွိေနၿပီးသားပါလို႕ အခ်က္အလက္က်က်နဲ႕ ျပန္ၿပီးေတာ့ ေျပာျပၾကပါလားကြာ။ ဒါဆိုရင္ေတာ့ ေအာင္ျမင္ၿပီလို႕ပဲ ေျပာလိုက္ပါရေစ။ အဲဒီ့အထဲက System ကို ဘယ္လိုေျပာင္းႏိုင္မလဲဆိုတာ ေဆြးေႏြးႏိုင္ရင္ေတာ့ အေကာင္းဆံုးပါပဲဗ်ာ။ တစ္ကယ္ေျပာင္းႏိုင္ မေျပာင္းႏိုင္ဆိုတာထက္ ျမန္မာျပည္ကို ျပန္ေရာက္တဲ့ အခ်ိန္မွာ ကိုယ့္အထက္က ဘာမွမသိတဲ့ လူႀကီးကို ဆရာ ဒီစံနစ္က ဒါေတြမွားေနတယ္ဆရာ လို႕ ေျပာျပရဲတဲ့ သတၱိရွိရင္ေတာင္မွ ျမန္မာႏိုင္ငံ ေကာင္းစားဘို႕နီးလာပါၿပီလို႕ ကၽြန္ေတာ္ ဥာဏ္မွီသေလာက္ ေျပာပါရေစ။

ကၽြန္ေတာ့္အေနနဲ႕ကေတာ့ ေနာက္ကို ဒါမ်ိဳးပရိုဂရမ္ရွင္းျပျခင္း ေနာက္ကို လံုး၀မေရးေတာ့ပါ။





8 comments:

Anonymous said...

RS 232C နဲ႔ RS 422 ဘာကြာလဲသိပါရေစ

Anonymous said...

Please go an see @ http://www.arcelect.com/rs422.htm . Or you wanna know the whole working principal circuit. Please wait for my topic to finish before asking. All our knowledge are useless with that gov and situation. Anonymous, I know that you're just a bastard which I'm not worth of even talking to you. Understand?

Anonymous said...

ေမးတာက်ေသခ်ာမေျပာဘူး။ေစာက္ရူးဘဲ

Anonymous said...

ma thi tar lay may ma loh .. ma may tot par bu .. shin ma pya pal .. website twe pay nay oo mal .. a chay a nay ka lal ma kg bu hehe

AungNN said...

Burmaunited ေၿပာတာမွန္တယ္၊က်ြဲပါးေစာင္းတီး ပါဘဲ၊ PLC ကေတာ့အရင္ကနဲနဲသတိထားမိတယ္၊ စင္ကာပူမွာကိုေစာပလာတူးစက္ရုံက PLC ေတြသုံးၿပီး packaging machine ေတြလုတ္တာမွတ္မိွတယ္၊ Z80 နဲ႔ 8088 processor ေတြသုံးတယ္၊ တၿခားစက္ေတြအမ်ားၾကီးလုပ္လို႔ရမွာေပါ့၊
ြြGas အေၾကာင္းေရးထားတာလဲေကာင္းပါတယ္၊ ႏိုင္ငံၿခားေရာင္းၿပီးရတဲ့ေငြလက္နက္နဲ႔အႏုၿမဴေပါင္းဖို ၀ယ္မဲ့အစားမီးဖိုေၿခာင္သုံးနဲ႔ကားေတြမွာထဲ့ဖို႔ဆီ - လွ်ပ္စစ္အားထုတ္ဖို႔သုံးရင္ၿပည္သူေတြသိတ္ဒုတ္ခ မေရာက္ ဘူးေပါ့၊
ေမာင္ရင္ပညာဆက္ၾကိဳးစားပါ၊စစ္ဘိုေတြမင္းလုပ္တုံးေတာ့မၿပန္နဲ႔၊
သူတို႔မရွိေတာ့တိုင္းၿပည္ဆတဲ့တဘိုးတိုးေအာင္ေဆာင္ရြက္ႏိုင္ပါေစ၊ က်ဳပ္ကေတာ့အသက္ၾကီးၿပီ၊ မွီၿခင္မွမွီေတာ့မယ္၊
I wish you luck!

Anonymous said...

မင္းအဲဒီေလာက္တတ္ေနတယ္ဆိုေတာ့ ျမန္မာႏိုင္ငံအတြက္ ဘာလုပ္ၿပီးၿပီလဲ? သူမ်ားႏိုင္ငံမွာကၽြန္သြားခံေနၿပီးေတာ့ ျမန္မာႏိုင္ငံတုိးတက္ေအာင္လုပ္မယ့္သူေတြကို တိုက္ခိုက္ေနတယ္။ သူတို႔က ဘယ္အစိုးရဘဲတက္တက္ ႏိုင္ငံအတြက္ အလုပ္လုပ္မယ့္သူေတြကြ။ မင္းတုိ႔ႏိုင္ငံေရးလုပ္တာက ဘယ္အစိုးရဘဲလာလာ အတိုက္အခံလုပ္တာကို ႏိုင္ေရးလို႔ထင္ေနတာ။ တကယ္တမ္းက် မင္းတို႔လိုေကာင္ေတြက သူမ်ားႏိုင္ငံတိုးတက္တာကိုၾကည့္ၿပီး ကိုယ့္ႏိုင္ငံကိုအထင္ေသးေနတဲ့ေကာင္ေတြပဲ။ သူမ်ားကိုအျပစ္ေျပာခ်င္ရင္ ကိုယ့္ကို ကို အရင္ျပန္ၾကည့္ဦး။

Anonymous said...

မင္းအဲဒီေလာက္တတ္ေနတယ္ဆိုေတာ့ ျမန္မာႏိုင္ငံအတြက္ ဘာလုပ္ၿပီးၿပီလဲ? သူမ်ားႏိုင္ငံမွာကၽြန္သြားခံေနၿပီးေတာ့ ျမန္မာႏိုင္ငံတုိးတက္ေအာင္လုပ္မယ့္သူေတြကို တိုက္ခိုက္ေနတယ္။ သူတို႔က ဘယ္အစိုးရဘဲတက္တက္ ႏိုင္ငံအတြက္ အလုပ္လုပ္မယ့္သူေတြကြ။ မင္းတုိ႔ႏိုင္ငံေရးလုပ္တာက ဘယ္အစိုးရဘဲလာလာ အတိုက္အခံလုပ္တာကို ႏိုင္ေရးလို႔ထင္ေနတာ။ တကယ္တမ္းက် မင္းတို႔လိုေကာင္ေတြက သူမ်ားႏိုင္ငံတိုးတက္တာကိုၾကည့္ၿပီး ကိုယ့္ႏိုင္ငံကိုအထင္ေသးေနတဲ့ေကာင္ေတြပဲ။ သူမ်ားကိုအျပစ္ေျပာခ်င္ရင္ ကိုယ့္ကို ကို အရင္ျပန္ၾကည့္ဦး။

Anonymous said...

http://amyochitthu.wordpress.com
http://amyochitthu.blogspot.com