سلام به تمام دوستان گرامی
کتابخانه AVR-WIN که به جرات میتوان گفت تنها نمونه موجود در نوع خود است توسط این جانب طراحی و پیاده سازی شده است . ممکن است این سوال در ذهن شما مطرح شده باشد که کار این کتابخانه چیست ؟ توضیح مختصری راجبه کاربرد آن ارایه میدهم که امیدوارم مورد قبول واقع شود.
اگر تا به حال با زبان های سطح بالا کار کرده باشید حتما میدانید که جدیدا تمام این زیان ها شیء گرا شده و کار برنامه نویسی را خیلی سهل و آسان نموده اند. مثلا زبان ویژوال بیسیک، یا سی شارپ، تا قبل از پیدایش این زبان ها اگر کسی قصد داشت برنامه ای برای ویندوز بنویسد مجبور بود هزاران خط کد بنویسد تا پنجره ای در ویندوز ظاهر گردد و بعد چند صد خط کد بنویسد تا مثلا دکمه ای روی پنجره ظاهر شده قرار بگیرد. ولی در زبان های مورد استفاده امروزی با چند کلیک خیلی ساده کار هزاران خط کد را به راحتی انجام میدهیم و این یک مزیت برنامه نویسی است که روند انجام یک پروژه سرعت می بخشد.
حال فرض کند میخواهید با AVR خود منویی گرافیکی بسازید و فرمی طراحی کنید که کاربر بتواند تنظیمات مورد نظر خود را همانند ویندوز (همان گونه که عادت کرده) انجام دهد، برنامه ای مثل برنامه موبایل که کاربر با استفاده از رابط گرافیکی تنظیمات مورد نظر خود را اعمال میکند. اگر قصد ارتقاع سطح برنامه های خود را دارید یا این که میل دارید پروژه هایی رو که انجام میدهید به سرعت به پایان برسانید این کتابخانه مثلما راه گشای خوبی خواهد بود. با استفاده از این کتابخانه ویندوز را در سخت افزار خود شبیح سازی می کنید. عکس زیر نمونه ای از فورم(پنجره) طراحی شده توسط این کتابخانه است:
فکر میکند برای طراحی چنین فرمی چه مقدار برنامه نویسی لازم باشد ؟ برنامه زیر صفحه بالا را تولید میکند که متشکل از دو تکست باکس و سه دکمه و دو لیبل می باید:
page=get_page();
set_page_optionf(page,”EXECUTION”,exe_page);
page_add_buttomf(page,0,51,”Cancel”,exe_cancel_but);
page_add_lablef(page,6,10,”Select File”,exe_lable_1);
page_add_text(page,6,20,12,exe_file_text);
page_add_buttomf(page,83,20,”Browse”,exe_browse_but);
page_add_lablef(page,6,35,”Count:”,exe_lable);
page_add_text(page,42,33,6,exe_count_text);
page_add_buttomf(page,85,51,”Start”,exe_start_but);
در واقع این توابع جزیی از توابع سطح بالا میباشند که توسط کتابخانه AVR-WIN در دسترس قرار میگیرد و به راحتی قادر خواهید بود هر چیدمانی از المان های شیء گرا را در صفحه خود به وجود بیاوید
این کتابخانه حاوی ۵۰۰۰۰ خط کد است که کار شما را برای طراحی و برنامه نویسی راحت می کند.و دیگر دغدغه رابط کاربر را نخواهید داشت و به راحتی هر صفحه ای که لازم داشتید را ایجاد می کنید.
البته کتابخانه نوشته شده هنوز کامل نمیباشد و در حال تصحیح و رفع عیب آن هستم، این کتابخامه را طی ۴ ماه کار مداوم برنامه نویسی به این مرحله(مرحله قابل استفاده) رسانده ام.
لیست برخی از توابع سطح بالای آن :
struct page *get_last_page();
struct object *get_page_last_obj(struct page *ptr);
struct page *get_last_active_page();
struct object *get_page_last_active_obj(struct page *ptr);
void active_next_page(void);
void active_prev_page(void);
struct page *get_page();
void add_obj(struct page *ptr, struct object *obj_);
void del_page(struct page *ptr);
void drow_pages(void);
void set_page_option(struct page *ptr,char *name,char handel);
void set_page_optionf(struct page *ptr,flash char *name,char handel);
struct page *get_page_whandel(char handel);
void active_page_whandel(char handel);
void key_process(char key);
struct object *page_add_text(struct page *ptr,char x,char y,char length,char handel);
struct object *page_add_lable(struct page *ptr,char x,char y,char *st,char handel);
struct object *page_add_lablef(struct page *ptr,char x,char y,flash char *st,char handel);
struct object *page_add_buttom(struct page *ptr,char x,char y,char *st,char handel);
struct object *page_add_buttomf(struct page *ptr,char x,char y,flash char *st,char handel);
struct object *page_add_listbox(struct page *ptr,char x,char y,char len_x,char len_y,char handel);
void send_key(char key);
نمونه عکس ها:
فورم ورود:
تغییر پسورد:
منو :
و در آخر فایل شبیح سازی شده :
در این فایل نحوی کار این کتابخانه رو به صورت عملی مشاهده خواهید کرد، برای گردش بین المان های یک فورم از دکمه TAB استفاده کنید و برای انتخاب المان(مثلا فشار دادن دکمه) از کلید Space و برای بالا و پایین شدن منو به ترتیب از کلید های A,D استفاده کند.
لازم به ذکر است که رندر شدن صفحه به دلیل سرعت پایین شبیح سازی است و در عمل مشکلی نخواهد داشت.
دانلود مثال :AVR-WIN (324)





منم خیلی تو فکر یه چیزی تو این مایه ها بودم.
خداییش کار خودته یا از جایی پیدا کردی؟
اگه Open Source بود میتونستیم روش کار کنیم و کامل ترش کنیم.
مثل اضافه کردن پشتیبانی از صفحه لمسی و MMC و …
نه رامین جان کار خودمه !
اگه شما تونستی مشابهی پیدا کنی اون وقت حرف شما قبول
دارم در مورد اپن سورس کردنش فکر میکنم
شما مایل به همکاری هستی ؟
واقعا برنامه ی جالبیه.
من نتونستم فایل شبیه سازی رو باز کنم ولی از همین عکسها هم میشه فهمید که چه کار باحالیه!!
مشکلی با سرعت کم میکرو نداشتید؟؟؟ چقدر رم مصرف میکنه؟؟
در مورد اوپن سورس کردنش هم موافقم.چون واقعا کار باارزشیه و ارزش وقت گزاشتن رو داره.
نه – مشکلی نداره اونقدرا سرعت لازم نداره، در حال حاضر مشغول تلفیق این کتابخونه با کتابخونه GBUF هستم که به صورت فزاینده ای باعث افزایش سرعت اون خواهد شد.
در ضمن فایل شبیح سازی با ۴٫Proteus 7 باز میشه و یا ورژن های بالا تر!
هر کسی میخواد مشارکت کنه همینجا اعلام کنه!
سلام مهندس می خواستم بدونم الان وضعیت لایبری شما چجوریه من لازمش دارم ولی من بسکام کار میکنم .لطفا یه کم بیشتر توضیح بدین
کتابخانه موجود هستش ولی خوب هنوز کامل نیست و برای فروش آماده نیست
کد نویسیش خیلی پیچیده است و به سختی بشه ازش سر در آورد – بنده هم به دلیل مشغله زیاد و همچنین طی دوره سربازی قادر به تکمیلش نیستم فعلا
امکانش نیست که این کنابخونه رو به صورت باز در دسترس بذارین تا همه بتونن ازش استفاده کننو و زودتر هم تکمیل بشه البته این کتابخونه رو اول به اسم خودتون ثبتش کنین بعد