نمایش نتایج 1 تا 11 از 11

نام تاپیک: ارتباط وب سرور با یک برنامه تحت لینوکس

  1. #1

    ارتباط وب سرور با یک برنامه تحت لینوکس

    سلام.
    من در حال طراحی یک سیستم نمایشگر با استفاده از یک امبدد سیستم هستم. این سیستم باید یک برنامه مونیتورینگ را تحت لینوکس اجرا کند و باید تعدادی پارامتر را از پورت سریال دریافت کند و بر روی LCD نمایش دهد.
    همزمان با نمایش بر روی LCD، باید یک وب سرور هم وجود داشته باشد تا اطلاعات دریافت شده توسط پورت سریال را، در مواقع نیاز کاربر، ارائه دهد. یعنی داده ای که توسط نرم افزار تحت لینوکس از طریق درگاه سریال دریافت می شود، در اختیار وب سرور نیز باید قرار داده شود. در ضمن این داده ها باید حتی الامکان در حافظه RAM قرار داشته باشند و از نوشتن آنها در فایل و ذخیره بر روی درایو هارد جلوگیری گردد. زیرا سیستم امبدد مورد استفاده از حافظه های NAND Flash به عنوان هارد درایو استفاده می کند و نوشتن داده به طور متناوب بر روی آن باعث کاهش عمر تراشه حافظه NAND Flash می گردد.
    سوال من این است که آیا می توان داده های دریافتی توسط یک نرم افزار را در لینوکس، در اختیار وب سرور قرار داد؟ یا راه بهتری برای پیاده سازی چنین سیستمی وجود دارد؟
    با تشکر

  2. #2

    نقل قول: ارتباط وب سرور با یک برنامه تحت لینوکس

    لینوکس روی مموری نصب هست؟ اگر اینطور هست که خود سیستم عامل برای انجام خیلی‌ از کارها روی حافظه read و write انجام میده

    سوال من این است که آیا می توان داده های دریافتی توسط یک نرم افزار را در لینوکس، در اختیار وب سرور قرار داد؟ یا راه بهتری برای پیاده سازی چنین سیستمی وجود دارد؟
    بله، راه بهتر بستگی به اطلاعات ارائه شده شما داره

  3. #3
    کاربر دائمی آواتار aqm176
    تاریخ عضویت
    شهریور 1394
    محل زندگی
    مشهد
    سن
    26
    پست
    137

    نقل قول: ارتباط وب سرور با یک برنامه تحت لینوکس

    سلام و خسته نباشید.
    کل برنامه شما را بنده با یک برد رزبری انجام داده ام.
    که برنامه آن با زبان سی ++ نوشته شده بود.
    کار برنامه دریافت اطلاعات از پورت سریال بود با یه امنیت خاصی، که نتیجه اش نمایش روی ال سی دی مرکز بود.
    شیوه دیگر این است که که با زبان پایتون بنویسید و بدون نیاز به پورت سریال.
    در این روش میبایست نرم افزاری نوشته که 24 ساعت روی صفحه باشد.
    نیاز به شل اسکریپت هایی دارد که در هر دقیقه برنامه را از سرور خوانده که برد شما با کابل یا هر چیز دیگر به نت محلی مرکز وصل شده باشد.
    شل ها از سرور میخوانند و در بانک محلی بافر میکنند و سپس به نمایش در میآورد.
    تمام اخبار و اطلاعیه های دو روز را در خود بافر میکند.
    بیشتر از این نیازی نیست.

  4. #4

    نقل قول: ارتباط وب سرور با یک برنامه تحت لینوکس

    با تشکر از شما
    نقل قول نوشته شده توسط negative60 مشاهده تاپیک
    لینوکس روی مموری نصب هست؟ اگر اینطور هست که خود سیستم عامل برای انجام خیلی‌ از کارها روی حافظه read و write انجام میده
    بله درست است، ولی اطلاعات دریافتی از پورت سریال هر یک ثانیه به تعداد حدود 200 بایت دریافت می شود و در هر بار ممکن است متفاوت با دفعه قبل باشد. در واقع داده های اندازه گیری شده سنسورها است. بنابر این در صورت ذخیره در مموری، تعداد دفعات نوشتن در مموری بسیار زیاد می شود. اما در مورد سیستم عامل لینوکس، فکر نمی کنم این حجم نوشتن بر روی مموری را داشته باشد و احتمالا در هنگام بوت شدن ممکن است این کار را انجام دهد.


    نقل قول نوشته شده توسط negative60 مشاهده تاپیک
    بله، راه بهتر بستگی به اطلاعات ارائه شده شما داره
    همانطور که عرض کردم یک نرم افزار گرافیکی در ابتدای روشن شدن سیستم اجرا می شود و داده هایی را از پورت سریال دریافت می کند و بر روی صفحه نمایش می دهد. داده هایی مثل دما، ولتاژ و جریان برق. همچنین کاربر باید بتواند به این داده ها از طریق صفحات وب نیز دسترسی داشته باشد. در ضمن بتواند به تعداد محدودی از طریق وب، داده به پورت سریال ارسال کند. نمایش داده ها توسط نرم افزار تحت سیستم عامل و وب باید همزمان امکان پذیر باشد.

  5. #5

    نقل قول: ارتباط وب سرور با یک برنامه تحت لینوکس

    سلام و تشکر
    نقل قول نوشته شده توسط aqm176 مشاهده تاپیک
    سلام و خسته نباشید.
    کل برنامه شما را بنده با یک برد رزبری انجام داده ام.
    که برنامه آن با زبان سی ++ نوشته شده بود.
    کار برنامه دریافت اطلاعات از پورت سریال بود با یه امنیت خاصی، که نتیجه اش نمایش روی ال سی دی مرکز بود.
    آیا آن اطلاعات از طریق پورت LAN برد رزپری و به صورت وب در دسترس بود؟

    نقل قول نوشته شده توسط aqm176 مشاهده تاپیک
    شیوه دیگر این است که که با زبان پایتون بنویسید و بدون نیاز به پورت سریال.
    داده هایی که باید نمایش داده شود، باید از طریق پورت سریال دریافت شود. این سیستم در حال حاضر وجود دارد ولی توسط یک میکروکنترلر AVR داده ها از پورت سریال (با پروتکل مدباس) دریافت و بر روی LCD گرافیکی تک رنگی نمایش داده می شود. هم چنین وب سرور نیز ندارد. این جانب برای ارتقای این سیستم باید یک وب سرور به این سیستم اضافه کنم. هم چنین می خواهم برای افزایش قابلیت گرافیکی از LCD رنگیTFT استفاده کنم. در نتیجه به این فکر افتادم که از یک امبدد سیستم استفاده نمایم. حال می خواهم بدانم که پیاده سازی یک وب سرور و یک نرم افزار تحت سیستم عامل، در صورتی که هر دو از داده های مشترکی که توسط پورت سریال باید دریافت گردد، امکان پذیر است یا خیر؟ و چطور باید این کار انجام شود؟

  6. #6
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379

    نقل قول: ارتباط وب سرور با یک برنامه تحت لینوکس

    روی همه بردهای Embedded مبتنی بر لینوکس MySQL قابل نصب است ، از SQLite هم می توانید استفاده کنید، اما به نظر من MySQL با توجه کاربرد چند گانه دیتابیس که قرار است توسط چند برنامه جدا خوانده و نوشته شوند و نتیجتا منجر به خواندن و نوشتن به صورت Multi Thread می شود گزینه بهتری است.
    شما می توانید یک برنامه Console بنویسید که و آن را به صورت سرویس اجرا کنید. این برنامه داده ها را از پورت دریافت کرده و داخل دیتابیس می نویسد. همچنین دو برنامه دیگر وجود دارند که یکی داده ها را خوانده و بر روی LCD نمایش می دهد. برای وب هم می توانید PHP و یک وب سرور مانند Apache نصب کنید. بدین ترتیب می توانید یک برنامه مبتنی بر وب نیز داشته باشید که داده ها را از همان دیتابیس بخواند و در وب نمایش دهد.

    آیا آن اطلاعات از طریق پورت LAN برد رزپری و به صورت وب در دسترس بود؟
    با روش فوق این خواسته نیز برآورده می شود.

  7. #7

    نقل قول: ارتباط وب سرور با یک برنامه تحت لینوکس

    نقل قول نوشته شده توسط Aghil61 مشاهده تاپیک
    با تشکر از شما
    بله درست است، ولی اطلاعات دریافتی از پورت سریال هر یک ثانیه به تعداد حدود 200 بایت دریافت می شود و در هر بار ممکن است متفاوت با دفعه قبل باشد. در واقع داده های اندازه گیری شده سنسورها است. بنابر این در صورت ذخیره در مموری، تعداد دفعات نوشتن در مموری بسیار زیاد می شود. اما در مورد سیستم عامل لینوکس، فکر نمی کنم این حجم نوشتن بر روی مموری را داشته باشد و احتمالا در هنگام بوت شدن ممکن است این کار را انجام دهد.
    فقط زمان بوت شدن نیست بستگی به کاری که سیستم عامل انجام میده داره


    نقل قول نوشته شده توسط Aghil61 مشاهده تاپیک
    همانطور که عرض کردم یک نرم افزار گرافیکی در ابتدای روشن شدن سیستم اجرا می شود و داده هایی را از پورت سریال دریافت می کند و بر روی صفحه نمایش می دهد. داده هایی مثل دما، ولتاژ و جریان برق. همچنین کاربر باید بتواند به این داده ها از طریق صفحات وب نیز دسترسی داشته باشد. در ضمن بتواند به تعداد محدودی از طریق وب، داده به پورت سریال ارسال کند. نمایش داده ها توسط نرم افزار تحت سیستم عامل و وب باید همزمان امکان پذیر باشد.
    پس شما می‌خواهید ارتباط آنتایم به وسیله وب با برنامه تون داشته باشید در واقع می‌خواید اینترفیس سیستمون وب باشه که هم اطلاعات بگیره و به صورت لحظه ایی اطلاعات سنسور‌ها رو نمایش بده و هم اطلاعات یا دستور بفرسته

    در این صورت تو لینوکس میتونید از وبسوکت یا سوکت پرگرمینگ استفاده کنید به صورت کلاینت سروری کار کنید

  8. #8

    نقل قول: ارتباط وب سرور با یک برنامه تحت لینوکس

    با سلام و تشکر
    نقل قول نوشته شده توسط negative60 مشاهده تاپیک
    پس شما می‌خواهید ارتباط آنتایم به وسیله وب با برنامه تون داشته باشید در واقع می‌خواید اینترفیس سیستمون وب باشه که هم اطلاعات بگیره و به صورت لحظه ایی اطلاعات سنسور‌ها رو نمایش بده و هم اطلاعات یا دستور بفرسته
    در این صورت تو لینوکس میتونید از وبسوکت یا سوکت پرگرمینگ استفاده کنید به صورت کلاینت سروری کار کنید
    اگر درست فهمیده باشم منظور شما این است که به جای استفاده از وب سرور لینوکس (مثل آپاچی)، آن را در نرم افزار تحت لینوکس پیاده سازی کنم. اگر منظور شما این بود، فکر میکنم که کار ساده ای نباشه و مانند یک وب سرور، دستم برای پیاده سازی صفحات وب حرفه ای، باز نباشد.

  9. #9

    نقل قول: ارتباط وب سرور با یک برنامه تحت لینوکس

    نقل قول نوشته شده توسط مهدی کرامتی مشاهده تاپیک
    روی همه بردهای Embedded مبتنی بر لینوکس MySQL قابل نصب است ، از SQLite هم می توانید استفاده کنید، اما به نظر من MySQL با توجه کاربرد چند گانه دیتابیس که قرار است توسط چند برنامه جدا خوانده و نوشته شوند و نتیجتا منجر به خواندن و نوشتن به صورت Multi Thread می شود گزینه بهتری است.
    شما می توانید یک برنامه Console بنویسید که و آن را به صورت سرویس اجرا کنید. این برنامه داده ها را از پورت دریافت کرده و داخل دیتابیس می نویسد. همچنین دو برنامه دیگر وجود دارند که یکی داده ها را خوانده و بر روی LCD نمایش می دهد. برای وب هم می توانید PHP و یک وب سرور مانند Apache نصب کنید. بدین ترتیب می توانید یک برنامه مبتنی بر وب نیز داشته باشید که داده ها را از همان دیتابیس بخواند و در وب نمایش دهد.


    با روش فوق این خواسته نیز برآورده می شود.
    با سلام و تشکر
    استفاده از دیتا بیس برای چنین کاری، همانطور که شما اشاره کردید، بهترین و اصولی ترین روش است. فقط تنها نکته ای که در این مورد خاص وجود دارد، همانطوری که در پست اول اشاره کردم، این است که نمی خواهم اطلاعات دریافتی از پورت سریال را (که در هر ثانیه باید دریافت شود) در فایل و بر روی درایو سخت (که معمولا در سیستم های امبدد تراشه NAND Flash است) ذخیره کنم. می خواهم این اطلاعات را در حافظه RAM نگه دارم. البته باید بررسی بیشتری در مورد روش ذخیره سازی داده به دفعات زیاد بر روی NAND Flash انجام دهم. در همین راستا خواهشمندم دوستان لطف کنند و به لینک زیر یک نگاهی بیندازند و نظر خودشان را بیان کنند. (دو پاراگراف اول را مطالعه کنید کافیست)
    https://www.google.com/url?sa=t&rct=...ALZXHKZCMxP9Vw

    من یک ایده ای به ذهنم رسیده که می خواهم بدانم عملی هست یا نه و آیا از نظر برنامه نویسی، درست است یا خیر. به نظر شما می توانم در برنامه ای که تحت لینوکس اجرا می شود، یک آرایه از نوع استاتیک تعریف کنم و در هنگام اجرا شدن برنامه، آدرس آن متغیر را در یک فایل و در یک مسیر مشخص، بر روی هارد ذخیره کنم. آن گاه برای دسترسی به داده های این آدرس در برنامه PHP تحت وب، آدرس داده ها را از فایلی که توسط نرم افزار لینوکس ساخته شده بخوانم و به داده های آن آدرس دسترسی داشته باشم؟

  10. #10
    کاربر دائمی آواتار aqm176
    تاریخ عضویت
    شهریور 1394
    محل زندگی
    مشهد
    سن
    26
    پست
    137

    نقل قول: ارتباط وب سرور با یک برنامه تحت لینوکس

    سلام و خسته نباشید.
    اطلاعات از طریق پورت لن نیز در دسترس بود چرا که شل اسکریپت هایی که طراحی کرده بودم، اطلاعات را از سرور مرکزی میخواند. بافر میکرد و نرم افزار من از بانک محلی دیکد میکرد و به نمایش در میآورد.

  11. #11

    Thumbs up نقل قول: ارتباط وب سرور با یک برنامه تحت لینوکس

    با سلام و تشکر از همه.
    خواستم اطلاع دهم که در نهایت تصمیم بر این شد که از دیتابیس در سیستم استفاده شود و با هر بار دریافت داده از پورت سریال، یک رکورد در جدول دیتابیس اضافه شود. و با توجه به این که یکی از فیلدهای دیتابیس، تاریخ و زمان است، در این صورت یک سیستم Log هم خواهیم داشت. در بخش وب هم برای به روز کردن داده ها، همیشه آخرین رکورد از دیتابیس خوانده می شود. پس از این که یک تعداد بسیار زیادی داده در جدول دیتابیس ذخیره شد (این تعداد به حجم حافظه NAND بستگی دارد)، داده های جدید از اول و روی قدیمی ترین داده ها ذخیره می شوند و به این شکل مشکل تعداد زیاد دفعات نوشتن در یک قسمت حافظه (نسبت به حالتی که دیتا Log نشود) برطرف می شود. در واقع تعداد دفعات نوشتن داده در حافظه، برابر می شود با تعداد داده ها تقسیم بر تعداد رکوردها. در هر صورت از کمک همه سپاسگزارم.

تاپیک های مشابه

  1. سوال: ایجاد ارتباط با یک برنامه تحت وب
    نوشته شده توسط mtnam1372 در بخش C#‎‎
    پاسخ: 8
    آخرین پست: دوشنبه 26 خرداد 1393, 16:17 عصر
  2. مقالات يا مثال هايي از ارتباط دو فرم در يك برنامه تحت ويندوز با دات نت
    نوشته شده توسط odiseh در بخش برنامه نویسی مبتنی بر Microsoft .Net Framework
    پاسخ: 3
    آخرین پست: پنج شنبه 30 دی 1389, 22:15 عصر
  3. ارتباط با صفحات وب در يك برنامه تحت ويندوز
    نوشته شده توسط سوگند رها در بخش توسعه نرم افزار تحت وب
    پاسخ: 3
    آخرین پست: دوشنبه 05 مرداد 1388, 14:19 عصر
  4. نحوه ی ارسال مقادیر به یک برنامه تحت وب با کمک IdHTTP?
    نوشته شده توسط AlirezaBahredar در بخش برنامه نویسی در Delphi
    پاسخ: 5
    آخرین پست: سه شنبه 23 بهمن 1386, 11:58 صبح
  5. ازتباط با یک برنامه تحت داس
    نوشته شده توسط Mahdi_Prog در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 2
    آخرین پست: پنج شنبه 08 آذر 1386, 11:50 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •