דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. עזרה בתקשורת ליציאה טורית בקוד node.js

עזרה בתקשורת ליציאה טורית בקוד node.js

מתוזמן נעוץ נעול הועבר תכנות
4 פוסטים 2 כותבים 179 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • A מנותק
    A מנותק
    avi rz
    כתב ב נערך לאחרונה על ידי
    #1

    בס"ד

    אני מנסה לחבר משקל דיגטלי בחיבור של rs232 ולקבל בnode.js את הפלט שלו,
    ניסיתי להשתמש בספרייה serialport עם כל מיני דוגמאות - ללא הצלחה.
    עברתי על התגובות לבעיה זו כאן, רובם(לא כולם) הבנתי וניסיתי - ללא הצלחה
    מצ"ב הקוד והשגיאה

    app.js

    
    const serial = require("serialport");
    const ReadLine = require("@serialport/parser-readline");
    
    const port = new serial.SerialPort("COM5", {
        baudRate: 9600,
    });
    
    const parser = new ReadLine();
    port.pipe(parser);
    
    parser.on("data",(line) => console.log(line));
    
    port.write("mishkal is conect!");
    
    

    השגיאה:

    C:\Users\User\Desktop\משקל\node_modules\@serialport\stream\dist\index.js:50
                throw new TypeError(`"path" is not defined: ${settings.path}`);
                ^
    
    TypeError: "path" is not defined: undefined
        at new SerialPortStream (C:\Users\User\Desktop\משקל\node_modules\@serialport\stream\dist\index.js:50:19)
        at new SerialPort (C:\Users\User\Desktop\משקל\node_modules\serialport\dist\serialport.js:13:9)
        at Object.<anonymous> (C:\Users\User\Desktop\משקל\app.js:5:14)
        at Module._compile (internal/modules/cjs/loader.js:1137:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
        at Module.load (internal/modules/cjs/loader.js:985:32)
        at Function.Module._load (internal/modules/cjs/loader.js:878:14)
        at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
        at internal/main/run_main_module.js:17:47
    

    הקבצים:
    d7782a2d-1b49-488b-9583-5e622bcfe13a-image.png 20519c19-93fd-4111-a377-f5bdbae11867-image.png bb62be7a-7dc8-46be-a484-742ccdece9b0-image.png

    תודה מראש לכל המסייעים

    A dovidD 2 תגובות תגובה אחרונה
    1
    • A מנותק
      A מנותק
      avi rz
      השיב לavi rz ב נערך לאחרונה על ידי avi rz
      #2

      @avi-rz יש מצב שהסתדרתי אני יבדוק את זה בהמשך
      מתנצל, אבל היות ואני מעריך את העבודה של החברים בלענות תשובות יעילות וחבל שיעבדו סתם קשה.
      אני יעדכן בהמשך.

      תגובה 1 תגובה אחרונה
      3
      • dovidD מנותק
        dovidD מנותק
        dovid ניהול
        השיב לavi rz ב נערך לאחרונה על ידי
        #3

        @avi-rz כתב בעזרה בתקשורת ליציאה טורית בקוד node.js:

        ניסיתי להשתמש בספרייה serialport

        ראה את הדוגמה פה:
        https://serialport.io/docs/guide-usage

        מייד אתה מבין מה השגיאה שהייתה לך עם הpath not defined.

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

        A תגובה 1 תגובה אחרונה
        3
        • A מנותק
          A מנותק
          avi rz
          השיב לdovid ב נערך לאחרונה על ידי avi rz
          #4

          @dovid כתב בעזרה בתקשורת ליציאה טורית בקוד node.js:

          ראה את הדוגמה פה:
          https://serialport.io/docs/guide-usage
          מייד אתה מבין מה השגיאה שהייתה לך עם הpath not defined.

          כן עברתי ע"ז קודם, באמת סידרתי את זה,
          הבעיה הייתה שהעתקתי את הקוד מהרשת וכו', כנראה בשינויי גירסאות זה לא בדיוק נשאר ככה, ובדקתי לפי האובייקטים כיצד באמת לקחת את האובייקט הנכון ולהשתמש בו.
          בנוגע לשגיאה לעיל, היה צריך להחליף את השורה הזאת:

          const port = new serial.SerialPort("COM5", {
              baudRate: 9600,
          });
          

          לזה, (כלומר להכניס את השם של היציאה לתוך האופציות)

          const port = new serial.SerialPort( {
              baudRate: 9600,
              path: "COM5",
          });
          
          

          נ.ב. גם הקישור לעיל הוא לבעיה שהייתה לי קודם, שגם איך שהוא הסתדר,

          לע"ע כשאני לא מחובר למשקל הוא כותב לו file not found וכשאני מחובר למשקל אז הוא בעצם מחכה למשהו, כנראה בקוד צריך לראות איך לשלוף משם את הנתונים,
          יש לי קוד VBA שעבד פעם.
          חיבור:

          If MSComm1.PortOpen = False Then
          MSComm1.CommPort = Val(3)
              MSComm1.PortOpen = True
          End If
          
          

          שליפה:

          If MSComm1.PortOpen = True Then
              a = "W"
              
              MSComm1.Output = a
              MSComm1.InputLen = 10
              mishkal = Mid(MSComm1.Input, 2, 6)
          End If
          
          

          זה נראה בעצם שבחיבור הוא נותן לו את המספר של היציאה (COM3) ומפעיל (True) ב open.
          ובקריאה הוא פשוט מכניס ערך כלשהו ושולף ומסנן את מה שהכניס.

          אממה, לא כ"כ הבנתי באלו פונקציות עושים את זה בספרייה הנ"ל.

          תגובה 1 תגובה אחרונה
          1

          בא תתחבר לדף היומי!
          • התחברות

          • אין לך חשבון עדיין? הרשמה

          • התחברו או הירשמו כדי לחפש.
          • פוסט ראשון
            פוסט אחרון
          0
          • דף הבית
          • קטגוריות
          • פוסטים אחרונים
          • משתמשים
          • חיפוש
          • חוקי הפורום