پاسخ به : مشکل در لاگ گرفتن

#471
modir
سرپرست کل

محسن
1392/9/10 4:42 PM

سلام

برنامه تون کمی بی نظم و خیلی حجیمه!

خروجی power status وقتی دستگاه خاموش و روشن بشود برابر صفر و وقتی با watch dog ریست شود برابر یک می شود.
شما از کجا مطمین هستید که دستگاه تان ریست می شود؟

در network پنجم (Open for write Error) تابع save sample چک می کنید اگر فایل به درستی باز نشده بود ادامه ندهد، به network آخر رفته و فایل بسته شود در صورتی که اگر فایل به درستی باز نشده باشد چیزی برای بسته شدن هم وجود نخواهد داشت و بنابراین دستگاه ریست خواهد شد.

نکته دیگر اینکه شما بعد از نوشتن هر متغیر در فایل در صورتی که خطایی نباشد به network آخر jump کرده و فایل را می بندید! با این کار فقط اولین متغیر در فایل نوشته خواهد شد و از بقیه صرف نظر می شود.

برای نوشتن تعداد زیادی متغیر لازم نیست برای هر کدام جداگانه عمل کنید و یک network ایجاد کنید.
متغیرهای خود را به صورت متوالی در حافظه قرار دهید و با استفاده از تابع indirect assign و آدرس دهی مناسب، متغیرهای مورد نظر خود را به یک متغیر ثابت انتقال داده، آن را به string تبدیل کرده و در فایل بنویسید. بعد از نوشتن هر متغیر آدرس را با مثلا 2 (چون متغیرهای شما word هستند که هر کدام 2 بایت می شود) جمع کرده و این عمل را تکرار کنید تا به آدرس آخرین متغیر برسید (همان for در کدنویسی).