Thông báo

Collapse
No announcement yet.

Xử lý dữ liệu nhận về từ cổng COM trong thời gian thực...

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Xử lý dữ liệu nhận về từ cổng COM trong thời gian thực...

    Mình đang làm 1 project về gọi điện thoại, trong đó có nhiều máy con và 1 máy mẹ (do mình điều khiển thông qua RS 232). Cụ thể là:
    Máy con muốn liên lạc với máy mẹ thì sẽ gửi 1 đoạn byte (độ dài 8 byte) đến máy mẹ, và nhiệm vụ của mình là nghe đoạn byte đó và xác định đó là máy con có ID bao nhiêu (cái này mình đã làm đc) và có cho phép nói chuyện với máy mẹ hay không (cái này mình cũng làm đc).
    Nhưng trong quá trình làm mình gặp vài vấn đề sau, thực sự là tìm nhiều cách rồi mà không giải quyết được..
    Thứ 1: Xử lý động trong thời gian thực. Mình muốn liên tục cập nhật request của các máy con, tức là khi máy con request là phải có tên trong danh sách luôn. Hiện tại thì mình chỉ xác định được máy con nào request sau khi ấn 1 button lưu lại dữ liệu nhận được từ các máy con rồi mới xử lý. Mình rất muốn quá trình đọc đoạn byte gửi về và phân tích này nó tự động.
    Thứ 2: Mình lắng nghe đoạn dữ liệu gửi về ở dạng string, sau đó chuyển về dạng byte, sau đó chuyển ra hex rồi phân tích chuỗi hex đó theo protocol cho trước, nhưng cách phân tích này nhiều lúc gặp lỗi vì là thao tác cắt, xén chuỗi string rồi so sánh:
    Ví dụ 07 6A 01 01 02 00 02 00 => minh sẽ cắt xén lấy ra chuỗi tại vị trí 13-14 tức là 02 để xử lý, nhưng hay gặp lỗi do dữ liệu nhận về không đủ, hoặc nhiều máy con cùng request dẫn đến chèn dữ liệu lên nhau và không đúng định dạng protocol cho trước.
    Có một anh đã nói mình nên dùng Ring buffer, nhưng mình chưa hiểu lắm, mình nghĩ nhận dữ liệu về dạng byte rồi lưu vào buffer để chờ xử lý vẫn là chuẩn nhất rồi chứ không phải là receive data như kiểu của mình. Nhưng nên lưu thế nào thì mình vẫn đang mắc.
    Mong các bạn giúp đỡ mình 2 vấn đề này. Mình rất cần hướng giải quyết sớm vì sắp đến deadline rồi. Cám ơn mọi người nhiều.

  • #2
    Bạn học bên viễn thông chắc luôn và đã được học qua ghép kênh ..bạn đưa các hoạt động bạn cần xử lý vào một chu kỳ làm việc và cứ thế mà lặp đi lặp lại cái chu kỳ đó n lần thôi ...thân

    Comment


    • #3
      Nguyên văn bởi pephuong Xem bài viết
      Bạn học bên viễn thông chắc luôn và đã được học qua ghép kênh ..bạn đưa các hoạt động bạn cần xử lý vào một chu kỳ làm việc và cứ thế mà lặp đi lặp lại cái chu kỳ đó n lần thôi ...thân
      Mình viết chương trình này trên C# bạn ơi, sao mà ghép kênh gì được?

      Comment


      • #4
        Bài toán của bạn là giải quyết vấn đề đa truy nhập. Đường truyền nhận RS232 của máy tính phải phục vụ đồng thời cho 8 thuê bao. Vậy có 2 cách:
        1. Thiết lập một kênh truyền RS232 đi từ máy tính đến các đầu vào RS232 nhận của 8 máy điện thoại con. Máy tính lần lượt phát tín hiệu cho phép từng máy con truyền về (phương pháp thẻ bài). Hoặc máy tính gửi 1 bản tin đồng bộ, sau đó là chia thời gian làm 8 khe, mỗi máy tính để bàn được phát dữ liệu trong khe tương ứng với ID của nó (ID máy từ 1-8) (phương pháp đa truy nhập phân chia theo thơi gian).
        2. Lắp một mạch dùng vi điều khiển, lập trình 8 cổng UART mềm với tốc độ thấp (ví dụ baudrate =300, 4 byte tốn gần 200ms -chấp nhận được). Dùng đầu ra UART cứng của VĐK nối máy tính. Lập trình đọc 8 kênh tốc độ thấp để dồn dữ liệu vào 1 kênh tốc độ cao truyền về máy tính.

        Comment


        • #5
          cám ơn mọi người nhiều

          Comment

          Về tác giả

          Collapse

          please1102 Tìm hiểu thêm về please1102

          Bài viết mới nhất

          Collapse

          • tuyennhan
            Trả lời cho Tiếng Anh cho người Việt
            bởi tuyennhan
            Cái thư sai ngay câu chào Dear sir mới đúng Hi chỉ dùng cho người quen , các vấn đề về kỹ thuật nó không trả lời hoặc nói loanh quanh tránh ảnh hưởng đến công ty .
            Giup1 người cần không giúp người không cần với lại văn mình vợ người nha đừng quên .
            hôm nay, 07:44
          • vi van pham
            Trả lời cho Tiếng Anh cho người Việt
            bởi vi van pham
            Cám ơn những lời chúc tốt đẹp của em.

            Việc em làm giống như chê sếp dốt, chẳng những không có miếng xôi nào để ăn mà còn chịu nhiều trù dập lên bờ , xuống ruộng.

            Hãy tránh vết xe đổ của tui đi. Dành thời gian lo cho gia đình....
            hôm nay, 02:00
          • nhathung1101
            Trả lời cho Tiếng Anh cho người Việt
            bởi nhathung1101
            Ngoại ngữ là không thể thiếu, nhất là làm việc với công nghệ.

            Nhưng học để tán gái hay để đọc datasheet, manual là chuyện cần quan tâm.

            Và đọc ở nguồn nào đáng tin cậy, chứ cứ lên tictok hay facebook học lỏm thì...
            Hôm qua, 22:18
          • dinhthuong80
            Trả lời cho Tiếng Anh cho người Việt
            bởi dinhthuong80
            Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

            Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
            Hôm qua, 14:51
          • dinhthuong80
            Trả lời cho Tiếng Anh cho người Việt
            bởi dinhthuong80
            Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

            Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
            Hôm qua, 14:39
          • dinhthuong80
            Trả lời cho Tiếng Anh cho người Việt
            bởi dinhthuong80
            Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

            Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
            Hôm qua, 14:28
          • bqviet
            Trả lời cho Tiếng Anh cho người Việt
            bởi bqviet
            Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
            21-02-2025, 20:26
          • mèomướp
            Trả lời cho Tiếng Anh cho người Việt
            bởi mèomướp
            Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
            21-02-2025, 12:32
          • vi van pham
            Trả lời cho Tiếng Anh cho người Việt
            bởi vi van pham
            Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

            Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
            20-02-2025, 21:31
          • bqviet
            Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
            bởi bqviet
            Thiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.
            20-02-2025, 17:22
          Đang tải...
          X