1. برای کسب اطلاعات بیشتر در ساعات 9 الی 13 و 16 الی 18 با شماره 08138270182 یا 08138268809 تماس حاصل فرمایید.
    آدرس ایمیل: info@wsnlab.ir
    آدرس کانال تلگرام http://telegram.me/gloriot
  2. بدین وسیله به اطلاع پژوهشگران محترم می رسانیم که سامانه پیامکی لابراتوار شبکه حسگر بی سیم راه اندازی شد. از این پس می توانید با ثبت شماره تلفن همراه خود از اطلاعیه ها و اخبار پژوهشی لابراتوار آگاه شوید.
    ضمناً آگاهی از کلیه اطلاعات نحوه ارایه خدمات به شما دوستان نیز از طریق همین سامانه امکان پذیر است.
    شماره سامانه: 30001818270182

خطا هنگام اضافه کردن پروتکل جدید در ns2

شروع موضوع توسط narges1 1/2/14 در انجمن انجمن شبکه های موردی - ادهاک

تلفن سفارش: 08138311237 تلفن سفارش: 08138311237
  1. narges1 کاربر تازه وارد

    تاریخ عضویت:
    12/1/14
    تعداد ارسال ها:
    5
    تشکر شده:
    2
    امتیاز دستاورد:
    1
    سلام دوستان کسی میتونه کمک کنه که این خطا مربوط به چی میتونه باشه؟؟
    mcv/mcv.cc:123:19: error: expected primary-expression before ‘id’
    mcv/mcv.cc:123:21: error: cannot call constructor ‘MCV::MCV’ directly [-fpermissive]
    mcv/mcv.cc:123:21: error: for a function-style cast, remove the redundant ‘::MCV’ [-fpermissive]
    mcv/mcv.cc:123:23: error: expected ‘;’ before ‘:’ token


    اسم پروتکلم mcv و خط ۱۲۳ مربوط به خط اول این تابع است

    MCV::MCV(nsaddr_t id) : Agent(PT_MCV), mcvHelloGroupTimer(this), mcvConnectTreetimer(this), mcvWaitTImer(this

    }

    index = id;
    seqno = 1;

    LIST_INIT(&rthead);
    LIST_INIT(&guthead);
    LIST_INIT(&gdthead);
    LIST_INIT(&ghead);

    logtarget = 0;
    ifqueue = 0;

    }

    rthead,guthead,gdthead,ghead همگی اشیاءی از جداول مسیریابییم میباشند


    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  2. مشاوره، آموزش و پیاده سازی پروژه های شبکه های موردی، شبکه حسگر بی سیم و انواع شبکه های کامپیوتری . برای کسب اطلاعات بیشتر با شماره 08138270182 تماس بگیرید. .
  3. mary1001 کاربر معمولی

    تاریخ عضویت:
    11/1/14
    تعداد ارسال ها:
    33
    تشکر شده:
    0
    امتیاز دستاورد:
    6
    سلام
    من بعد از اجرای دستور make در ترمینال با این خطا مواجه میشوم. شما راه حلی برای این ندارید.؟

    *trace/cmu-trace.o : In function `hdr_rtaodv::access(Packet const
    cmu-trace.cc : (.text._ZN7hdr_rtaodv6accessEPK6Packet[hdr_rtaodv::access(Packet const*)]+0x7):
    _undefined reference to `hdr_rtaodv:: offse_




    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  4. rad.bahar کاربر معمولی

    تاریخ عضویت:
    23/9/13
    تعداد ارسال ها:
    118
    تشکر شده:
    22
    امتیاز دستاورد:
    18
    فکر کنم شما می خواهید به aodv یک هدر بسته کنترلی جدید اضافه کنید (hdr_rtaodv) فقط خطا را نوشتی که کافی نیست خود cmu-trace.cc را هم که تغییر دادی کدش را بگدار و همجنین struct خود hdr_rtaodv که در aodv-packet.h احتمالا اضافه کردی را بگذار تا بتوان کمکی کرد.
    mary1001 likes this.
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  5. mary1001 کاربر معمولی

    تاریخ عضویت:
    11/1/14
    تعداد ارسال ها:
    33
    تشکر شده:
    0
    امتیاز دستاورد:
    6
    نه من هنوز چیزی اضافه نکردم فقط عین کد aodv را در rtaodv که خودم نامگذاری کرده ام، کپی کردم.این کپی را هم براساس این فایلی که ضمیمه کرده ام انجام داده ام.

    پیوست ها:

    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  6. rad.bahar کاربر معمولی

    تاریخ عضویت:
    23/9/13
    تعداد ارسال ها:
    118
    تشکر شده:
    22
    امتیاز دستاورد:
    18
    ببینید شما در cmu-trace.cc می خواهید از hdr_rtaodv
    استفاده کنید در حالی که قبلا ان را در جایی تعریف نکرده اید پس طبیعی است که با خطا مواجه شوید شما باید این هدر را در فولدر rtaodv در فایل rtaodv_packet.h تعریف کنید برای این که شیوه تعریف ان را بفهمید پیشنهاد می کنم که در پروتکل aodv فایل aodv_packet.h را ببینید که در ان انواع پیام ها تعریف شده است مثلا نحوه تعریف پیام های request را که با hdr_aodv_request تعریف شده را بینید تا بدانید چگونه hdr_rtaodv را تعریف کنید پس از این که تعریف را انجام دادید در بالای فایل cmu-trace.cc فایل rtaodv_packet.h را با دستور زیر اضافه کنید تا کامپایلر به هنگام روبه رو شدن با hdr_rtaodv بفهمد که این هدر در کدام فایل تعریف شده است
    کد:
    #include <rtaodv/ rtaodv_packet.h>
    mary1001 likes this.
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  7. mary1001 کاربر معمولی

    تاریخ عضویت:
    11/1/14
    تعداد ارسال ها:
    33
    تشکر شده:
    0
    امتیاز دستاورد:
    6
    من تمام این کارایی که شما گفتین قبلا انجام دادم، حتی بارها هم چک کردم ولی درست نشد.
    البته یه مشکل دیگه هم وجود داره که من اصلا نمیتونم با شبیه سازی که نصب کردم حتی یک مثال را اجرا کنم. وقتی در ترمینال دستور ns را تایپ می کنم خطایی که در اینجا ضمیمه کرده ام می آید.این خطا مربوط به دستوراتی است که به صورت زیر وارد کرده ام .حتی این دستورات را در برنامه پاک کردم و دوباره کانفیگ کردم بازم همین خطا اومد.
    ولی در در کل فک نمیکنم این خطا ربطی به خطای make ی که در بالا مطرح کردم داشته باشه.
    Step 12: #ns-allinone-2.35\ns-2.35\tcl\lib\ns-mobilenode.tcl

    Node/MobileNode instproc add-target { agent port } {
    ......
    ......
    # Special processing for AODV
    set aodvonly [string first "AODV" [$agent info class]]
    if {$aodvonly != -1 } {
    $agent if-queue [$self set ifq_(0)]


    ns.errorns.png
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  8. mary1001 کاربر معمولی

    تاریخ عضویت:
    11/1/14
    تعداد ارسال ها:
    33
    تشکر شده:
    0
    امتیاز دستاورد:
    6
    ممنونم از راهنماییهاتون فعلا یکسری خطاها رفع شده. ولی الان به یک خطای دیگه برخورد کردم. خاطرتون هست که من یک پروتکل عین AODV به نام RTAODV اضافه کرده ام . الان که بعد از make کردن فایل های .o ایجاد شده اند این خطا رو دارم error4.png
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  9. rad.bahar کاربر معمولی

    تاریخ عضویت:
    23/9/13
    تعداد ارسال ها:
    118
    تشکر شده:
    22
    امتیاز دستاورد:
    18
    کلاس های مربوط به تایمر ها باید یکتا باشند مثلا در اینجا چون کلاس localrepairtimer قبلا در aodv تعریف و استفاده شده شما حق ندارید دوباره همان کلاس را مجددا در RTAODV تعریف کنید
    تنها کافی است برای RTAODV نام کلاس ها را تغییر دهید مثلا نام کلاس را به localrepairtimer1 تغییر دهید
    Homaei and mary1001 like this.
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  10. mary1001 کاربر معمولی

    تاریخ عضویت:
    11/1/14
    تعداد ارسال ها:
    33
    تشکر شده:
    0
    امتیاز دستاورد:
    6
    خیلی ممنون از راهنماییهاتون. الان دیگه بعد از make کردن به اینجا رسیدم. این یعنی چی؟یعنی make به درستی انجام شده؟
    من هنوز هیچ کار خاصی از شبیه سازیم رو انجام ندادم و این همه خطا داد.امیدوارم در ادامه کار با این همه خطا مواجه نباشم.
    make1.png
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  11. rad.bahar کاربر معمولی

    تاریخ عضویت:
    23/9/13
    تعداد ارسال ها:
    118
    تشکر شده:
    22
    امتیاز دستاورد:
    18
    خروجی عجیبیه به نظرم چون خطا ندارد پس make با موفقیت انجام شده است
    با اجرای یک فایل tcl که پروتکل مسیریابی اش RTAODV هست از این موضوع مطمئن شوید
    mary1001 likes this.
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  12. mary1001 کاربر معمولی

    تاریخ عضویت:
    11/1/14
    تعداد ارسال ها:
    33
    تشکر شده:
    0
    امتیاز دستاورد:
    6
    من الان می خوام پروتکل rtaodv خودم رو به مد بی قید( Promiscuous Mode) ببرم تا یک گره بتونه بسته های همسایه را شنود کند. برای این کار قطعه کد هایی که در فایل ضمیمه آورده ام، اضافه کردم ولی الان این خطا رو میده
    error.promiscuous.png

    پیوست ها:

    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  13. rad.bahar کاربر معمولی

    تاریخ عضویت:
    23/9/13
    تعداد ارسال ها:
    118
    تشکر شده:
    22
    امتیاز دستاورد:
    18
    فکر کنم در دستور void tap(const Packet *p); به جای Packet اشتباها از packet استفاده کرده اید
    mary1001 likes this.
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  14. mary1001 کاربر معمولی

    تاریخ عضویت:
    11/1/14
    تعداد ارسال ها:
    33
    تشکر شده:
    0
    امتیاز دستاورد:
    6
    بله درسته اشتباه بخاطر رعایت نکردن حروف کوچیک و بزرگ بود. ممنونم واقعا
    راستش گفتین که یه فایل tcl اجرا کنم ولی یک مشکلی که من از اول هم داشتم این بود که اصلا نمیتونم هیچ مثالی رو اجرا کنم. وقتی که دستور ns را اجرا می کنم با این خطا مواجه می شوم.همونطوری که می بینید این خطا مربوط به کدی هست که در گام 8 در ns-lib.tcl اضافه کرده ام. ns.png
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  15. rad.bahar کاربر معمولی

    تاریخ عضویت:
    23/9/13
    تعداد ارسال ها:
    118
    تشکر شده:
    22
    امتیاز دستاورد:
    18
    کدی که به ns-lib اضافه کردید را قرار دهید شاید بتوانم کمکتان کنم
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.

به اشتراک بگذارید