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

نام تاپیک: حذف داده های بافر پورت سریال

  1. #1

    حذف داده های بافر پورت سریال

    سلام
    چطوری می تونم قسمتی از یافر سریال پورت رو حذف کنم
    مثلا از 10 بایتی که رسیده 5 تای اول رو حذف کنم

    ممنون

  2. #2

    نقل قول: حذف داده های بافر پورت سریال

    باید اول دیتای رسیده را مثلاً با دستور ReadExisting بخونی و در یک متغیر string بریزی، بعد هر قسمت از این دیتا را که می خواهی استخراج کنی:

    string s,myData;
    s=SerialPort1.ReadExisting();
    myData=s.SubString(5,5);

  3. #3

    نقل قول: حذف داده های بافر پورت سریال

    سل
    یک مشکل دارم برای این کار

    یک event برای زمانی که داده از پورت کامل رسید
     
    SP = new SerialPort();
    SP.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);

    private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {
    SerialPort SP = (SerialPort)sender;
    int CountDataInPort = SP.BytesToRead;
    ...
    SP.DiscardInBuffer();
    {


    توی کد بالا
    int CountDataInPort = SP.BytesToRead;
    تو پورت سریال 8 تا بایت فرستاده میشه ، اما بعضی مواقع یکم فاصله بین این می افته مثلا دو تا 8 بایت دریافت میشه.
    چکار کنم تا وقتی که هنوز داده داره می آد برنامه صبر کنه؟
    (البته ممکنه نویز باشه و حقیقتا 4 تا بایت باشه)

    بالای اون خط چی بنویسم ، تا مطمئن شم داده ای دیگه وجچود ندارد؟

    ممنون

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

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