السﻻم عليكم
رمضان مبارك..
أقدم لكم أول برنامج مفتوح المصدر أقوم بإنشائه في اللينوكس باستخدام بيئة الـ GAMBAS...
البرنامج عبارة عن أداة بسيطة مبنية على الصفحة التالية ﻹنشاء تعريف لمودم SpeedTouch USB 330 بسرعة و سهولة خاص بتوزيعة المندريفا و ما يتوافق معها
الكود أغلبه أوامر شل بس بطريقة تتنفذ آليا و بعد تعيين المتغيرات من قبل المستخدم..
البرنامج بسيط جدا و هو نتيجة أول استخدام للبيئة مني كخطوة أولية لفهم نظامها..
الشيء الجيد في الـ GAMBAS أنها غير معقدة و بسيطة و لكن في نفس الوقت فعالة
و أيضا هنا الكثير من اﻷوامر السهلة أكثر من البيئة التي تعودت عليها أيام الويندوز
لن أطيل و سأبدأ مع البرنامج:
الصورة العامة للبرنامج:
عند تشغيل البرنامج يطلب منك متغيرات هي اسم المستخدم الخاص بمزود الخدمة
و كلمة المرور من المزود أيضا
و رقم الـ VPI/VCI الخاص بالمزود
و أخيرا نوع اﻻتصال:
PPPoA
أو PPPoE
بعد إدخال البيانات يقوم البرنامج تلقائيا بإنشاء الملفات الخاصة و إعادة تشغيل النظام بعد أن ينتهي من الإعداد....
استفدت بشكل أساسي من العنصر TEXTAREA الذي وفر خيارات جيدة مثل إمكانية إدخال نص في مكان معين من النص اﻷصلي
و لكن ﻻ زالت لدي بعض المشاكل في بعض الحاﻻت و التي ستﻻحظونها عند تحميل المشروع و اﻻطرع على الكود...
أما السورس كود فهو بسيط و ﻻ يوجد به أي تعقيد - كما قلت مرحلة أولى حتى أفهم البيئة أكثر -
IF Message.Warning("The following libraries need to be installed: liblinux-atm, ppp-pppoatm, ppp-pppoe please install them and then continue!", "OK, EVERY THING INSTALLED CONTINUE", "CANCEL IT") = 2 THEN RETURN
'checking the entries:
IF TextBox1.text = "" THEN
message.Error("Please check the username field!", "OK")
RETURN
END IF
IF TextBox2.text = "" THEN
message.Error("Please check the password field!", "OK")
RETURN
END IF
IF TextBox3.text = "" THEN
message.Error("Please check the VPI/VCI field!", "OK")
RETURN
END IF
IF RBSTAT = FALSE THEN
message.Error("Please check the revision options!", "OK")
RETURN
END IF
IF RB1.Value = TRUE THEN
SHELL "unzip SpeedTouch330_firmware_3012.zip && chmod +x firmware-extractor && ./firmware-extractor KQD6_3.012"
END IF
IF RB2.Value = TRUE THEN
SHELL "unzip SpeedTouch330_firmware_3012.zip && chmod +x firmware-extractor && ./firmware-extractor ZZZL_3.012"
END IF
SHELL "cp speedtch* /lib/firmware"
IF CB1.Value = TRUE THEN
Message.Info("You have selected your connection as PPPoA.. so now you can setup your connection normally from Mandriva Control Center", "OK")
RETURN
ELSE
textarea1.Visible = TRUE
Button3.Visible = TRUE
RETURN
END IF
END
PUBLIC SUB Button2_Click()
IF message.Question("Are you sure you want to exit?", "EXIT", "RETURN") = 1 THEN
QUIT
END IF
END
PUBLIC SUB Label5_MouseDown()
SHELL "firefox http://www.linux-usb.org/SpeedTouch/faq/index.html#q12"
END
PUBLIC SUB TextBox4_KeyPress()
textbox4.text = "awk '/4061/ { print $5 }' /proc/bus/usb/devices"
END
PUBLIC SUB RB1_Click()
RBSTAT = TRUE
END
PUBLIC SUB RB2_Click()
RBSTAT = TRUE
END
PUBLIC SUB Button3_Click()
textarea1.Visible = FALSE
Button3.Visible = FALSE
CONTINUE_EXE()
END
PUBLIC SUB CONTINUE_EXE()
DIM FILENM AS File
FILENM = OPEN "/home/" & textbox6.text & "/1111" FOR CREATE
FILENM.Save("/home/" & textbox6.text & "/shorewall", TextArea2.Text)
SHELL "mv /etc/rc.d/init.d/shorewall{,.old} && install -m 744 shorewall /etc/rc.d/init.d/shorewall"
textbox5.Select(1, 0)
textbox5.Insert(textbox1.text)
textbox5.Select(8 + textbox1.Length, 0)
textbox5.Insert(textbox2.text)
FILENM.Save("/home/" & textbox6.text & "/secrets", textbox5.text)
SHELL "install -m 600 secrets /etc/ppp/chap-secrets && install -m 600 secrets /etc/ppp/pap-secrets"
textarea3.Select(33, 0)
textarea3.Insert(textbox1.text)
FILENM.Save("/home/" & textbox6.text & "/speedtch", textarea3.text)
SHELL "install -m 600 speedtch /etc/ppp/peers/speedtch"
SHELL "install -m 700 br2684ctl /usr/sbin"
textarea4.Select(157, 1)
textarea4.Insert(textbox3.text)
FILENM.Save("/home/" & textbox6.text & "/dial", textarea4.text)
SHELL "install -m 744 dial /etc/rc.d/init.d/dial && ln -s ../init.d/dial /etc/rc.d/rc5.d/S96dial"
FILENM.Close
IF Message.Info("The system now will REBOOT, after that you should be online.. if not check the username and the passowrd and VCI/VPI, if that did not work make it normally!, OPEN README", "OK") = 1 THEN
SHELL "reboot"
END IF
END
PUBLIC SUB Button1_Click()
سيكون هناك الكثير من المﻻحظات لذا أرجو منكم أﻻ تبخلو علي بأي صغيرة و كبيرة فيها..
)رفعت الملف على سيرفر آخر ﻷن حجمه أكبر من المسموح لي(
http://www3.webng.com/salehram/ST330DriverMaker-0.0.6.tar.gz
الملفات المصدر
الحجم 2.3 ميغا
(h)






