Timestamp چیست و چه کاربردهایی دارد

blog
۱۳۹۸-۰۸-۲۰
5 دقیقه

Timestamp چیست و چه کاربردهایی دارد به همراه سورس و مثال

فرض کنید شما قراره زمان را توسط یک ماژول GPS و ارتباط سریال با پروتکل NMEA دریافت کنید.

همچنین لازمه در فاز بعدی اون را ذخیره کنید و توسط مثلا ارتباط GPRS اون را ارسال کنید و حتی برخی محاسبات روی اون هم انجام بدید, مثلا اون را محلی کنید ( همانطور که میدونید زمان ارسال شده GPS بر اساس UTC هست ) و شایدم برخی محاسبات روی اون انجام بدید.

زمان را میتوان یکی از مهمترین داده ها در ساز و کار نرم افزارها و سخت افزارها نامید, به همین سبب نحوه ذخیره سازی و اعمال برخی تغییرات و محاسبات نیز پراهمیت هست.

وقتی مهندسین الکترونیک قراره با زمان کار کنند چون منابع سخت افزاری بسیار محدود میشه لازمه بهترین روش برای موارد بالا در نظر گرفته بشه.

اکثر پروژه های الکترونیکی نیاز به محاسبات زمان دارند پروژه هایی که دغدغه های زیر را هم دارند:

  • ذخیره زمان
  • تغییر در زمان, مثلا محلی کردن زمان در زمان
  • مقایسه و یا برخی اعمال محاسبات ریاضی بر روی زمان
  • انتقال زمان از بسترهای مختلف مانند GPRS

خب برمیگردیم به مثال اولمون..

قسمتی از پکت NMEA را  که شامل اطلاعات زمان هست در زیر می بنید.

بعد از اولین کاما 123519  ساعت GPS را شما مشاهده میکنید و بعد از هفت امین کاما شما تاریخ 230317 را مشاهده میکنید .

به عبارتی    ساعت 12:35:19  و تاریخ 23/03/2017 میباشد.

حال فرض کنید قرار هست ما این زمان که بر اساس UTC هست را به ساعت محلی ایران تبدیل کنیم , ساعت محلی ایران در 6 ماه اول سال +3:30 میباشد و در 6 ماه آخر سال +4.30  میباشد.

ما 12 بایت کاراکتر اسکی داریم که اگر بخواهیم تبدیل کنیم به حالت عددی میشه 6 بایت اطلاعات که البته هر کدام از بایتها محدودیت هم دارند ( مثلا ماه میتونه بین 1 تا 12 باشه) و صد البته هر نوع اضافه و کم کردن زمان به این مقادیر (مصل محلی کردن اطلاعات) میتونه توابع خاص خودش را داشته باشه.

الان چطور میتونیم زمان را چهار و ساعت و نیم افزایش بدیم و آن را به زمان محلی ایران تبدیل کنیم؟

شاید راه اولی که به ذهن خیلی های میرسه اینه که یک تابع بنویسیم و در اون بیاییم ابتدا ساعت و دقیقه ها را افزایش بدیم ! خب باید پس یک سری شرط بنویسیم که اگر  بعد از افزایش ساعت و دقیقه روز را هم اضافه کنیم و اگر روز را هم اضافه کردیم باید حواسمون باشه شاید مجبور بشیم ماه را اضافه کنیم! و اگر ماه را اضافه کردیم باید حواسمون به این باشه که برخی از ماهها تعداد روزهاش متفاوته و امکان داره حتی به افزایش سال هم برسیم..

با کمی نگاه دقیق تر  به نظر بهتره که زمان را به یک عدد تبدیل کنیم و در یک تابع دیگه بتونیم اون عدد را مجددا به تاریخ تبدیل  کنیم که البته اون هم تابع خیلی ساده ای نداره:-)

صد البته این پروژه قبلا انجام شده و تحت عنوان Unix Timestamp شناخته میشه.

ساختاری که جهت ذخیره کردن زمان و تاریخ در سیستمهای یونیکس استفاده شده و میشه.

با تبدیل این اعداد به Timestamp شما علنا چهار بایت را اشغال میکنید که هم حافظه کمتری اشغال میکنه و هم محاسبات بر روی آن راحت تر هست.

البته تنها مشکل این نوع نگهداری زمان بحث ناخوانا بودن ساعت در یک نگاه میباشد و لازم است برای تبدیل به زمان قابل درک برای ما یک محاسبه ریاضی انجام شود.

نوع تبدیل هم بسیار ساده هست این عدد از تاریخ 1/1/1970 شروع شده و به ازای هر یک ثانیه , عدد مربوطه بعلاوه یک میشود.

در وب سایت www.unixtimestamp.com میتوانید بصورت آنلاین تبدیل را انجام دهید.

TimeStamp چیست

نحوه استفاده از توابع Timestamp در میکروکنترلر

به نظر  هویت Timestampe مشخص شده ما برای این سیستم الان به دو تا تابع نیاز داریم:

تبدیل ساعت , دقیقه , ثانیه , ماه , روز , سال به TimeStamp و بالعکس:

در زیر سورس این دو تابع را میتونید ببنید که برای اینکه مشخص بشه توابع چطور کار میکنن ما یک پروژه کوچک با کدویژن Codevision انجام دادیم و با شبیه ساز پروتئوس نیز اون را شبیه سازی کردیم که در زیر میتونید هم سورس کدویژن و هم Proteus را دانلود کنید و در پروژه های خودتون استفاده کنید.

 

 

 

 

در زیر هم میتونید تابع Main  برنامه را ببنید که در این تابع ما یک تاریخ را تبدیل به Timestamp میکنیم سپس اون عدد را یکبار دیگه تبدیل به تاریخ میکنیم و نمایش میدیم و در فاز بعدی سعی میکنیم  اون زمان را +4.30  به جلو بکشیم ( اصطلاحا زمان را محلی کنیم) و دوباره زمان جدید را مشاهده کنیم.

در زیر نیز خروجی تابع را میتونید مشاهده کنید.

تبدیل Timestamp تایم استمپ و مثال

  •  

دانلود سورس کد کدویژن و پروتئوس

دانلود سورس کدویژن – تبدیل و مثال Timestamp

پسورد Sisoog

اطلاعات
0
0
لینک و اشتراک
profile

Sisoog Os

متخصص الکترونیک

کارآفرین, تولید کننده, طراح الکترونیک و ....

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند.
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند.
family

دیدگاه ها

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله