Lập trình VB6 giao tiếp với Mobile, GSM Modem, USB 3G ... thông qua AT commands

Thảo luận trong 'LẬP TRÌNH CHO DI ĐỘNG' bắt đầu bởi haiduyvu, 22 Tháng tám 2010.

  1. haiduyvu Thành viên

    Mình xin phép lập riêng ra cái topic này nhằm để chuyên sâu hơn các vấn đề lập trình ứng dụng lệnh AT cho tất tần tật các thiết bị viễn thông có ghép nối với máy tính! Một vấn đề đơn giản nhưng lại có tầm ứng dụng rộng lớn được xây dựng bằng một ngôn ngữ quá quen thuộc (VB6). Kính mong Ban Quản Trị soi xét mà để nó tồn tại, đón nhận những ý kiến đóng góp chia sẻ của anh em GSM về vấn đề này.
    =D>=D>=D>=D>=D>=D>=D>=D>=D>=D>=D>=D>=D>=D>

    Link tải ứng dụng Test các lệnh AT dùng với USB3G loại E173u mà Viettel, vinaphone dùng.
    http://www.mediafire.com/download/aik1o360l6h31lz/ATTESTsetup.rar
    [​IMG]
    Chỉnh sửa cuối: 14 Tháng tám 2015
    linh2508 and hoangngoc72007 like this.
  2. haiduyvu

    haiduyvu Thành viên

    Bài viết:
    339
    Được Like:
    419
    Trước hết mình Up lên đây một ứng dụng nho nhỏ mà mình tự viết để check các lệnh AT.
    Trước hết các bạn tải Bộ cài về, tải cả file acomport.dll về.
    Copy file acomport vào ổ C rồi vào start rồi vào Run gõ lệnh regsvr32 c:\acomport.dll để đang ký file dll rồi giải nén các file của bộ cài tải về thành một file Setup.exe, cài đặt như bình thường rồi chạy thôi.

    Các file đính kèm:

  3. haiduyvu

    haiduyvu Thành viên

    Bài viết:
    339
    Được Like:
    419
    2 phần tiếp của file SETUP

    Các file đính kèm:

    linh2508 thích bài này.
  4. haiduyvu

    haiduyvu Thành viên

    Bài viết:
    339
    Được Like:
    419
    Sau khi cài xong bạn sẽ thấy trên DESKTOP có biểu tượng AT TEST màu đỏ, chạy nó bạn sẽ thấy giao chương trình như sau:
    [​IMG]
    vankiepsau and linh2508 like this.
  5. haiduyvu

    haiduyvu Thành viên

    Bài viết:
    339
    Được Like:
    419
    Ở ô chọn cổng ghép nối bạn sẽ thấy danh sách các cổng đang ghép nối với máy tính của bạn, lúc này bạn chỉ việc chọn đúng cổng đang ghép với thiết bị mà bạn định Test lệnh AT cho nó.
    Ví dụ nếu bạn đang dùng Bluetooth ghép nối với Điện thoại thì sẽ thấy có một cổng là BLUETOOTH DUN MODEM
    Nếu bạn dùng ĐT cắm trực tiếp vào PC, hay dùng GSM modem hoặc USB 3G cắm vào PC thì bạn chỉ cần vào phần hardware xem nó là cổng nào thì chọn cổng đó.
    Xong Click vào nút Mở kết nối
    Nếu đúng cổng, thì sẽ kết nối được và 3 đèn màu đỏ sẽ nhấp nháy liên tục, nếu không thì thất bại
    Sau khi thực hiện kết nối xong:
    Bạn chỉ việc gõ các lênh AT vào ô Cú pháp lệnh AT rồi Click vào nút Truyền lệnh AT tới thiết bị
    Nếu lệnh đúng thì sẽ có thông báo SUCCESS và có nội dung trả lời từ thiết bị, hiển thị ở ô Phản hồi
    Ban đầu bạn nên thử các lệnh cơ bản như:
    AT
    AT+CGMF
    ATI1
    ATI2
    ...
    Bạn nên đọc kỹ phần lệnh AT để hiểu thêm
    Chú ý:
    Các lệnh AT có thể thay đổi thiết đặt của thiết bị cho nên các bạn hãy cẩn thận trước khi dùng lệnh, không nên dùng bừa kẻo lại mang vạ vào thân.

    Chúc thành công, mà chắc là thành công thôi, mình đã chạy chương trình này cả 100000000000000000000 lần rồi, chỉnh sửa 99999999 lần, chạy thử với 999999 thiết bị rồi OK hết. YÊN TÂM MÀ THỬ NHÉ
    linh2508 thích bài này.
  6. haiduyvu

    haiduyvu Thành viên

    Bài viết:
    339
    Được Like:
    419
    Các bạn cứ test thử rồi cho ý kiến, sau đó chúng ta sẽ thảo luận một số lệnh AT và phương thức thực hiện lệnh AT trên VB6.
    Mình vốn không phải dân chuyên lập trình nên cứ dùng thằng VB6 cho đơn giản, các bạn thông cảm!
    linh2508 thích bài này.
  7. vanmanh1988

    vanmanh1988 Thành viên

    Bài viết:
    1
    Được Like:
    1
    bạn ơi chỉ cách lập trình cái này đi bạn
    mình thấy hay hay đó
    linh2508 thích bài này.
  8. kientk4

    kientk4 Thành viên

    Bài viết:
    2
    Được Like:
    2
    Đầu tin xin cảm ơn bác haiduyvu đã chia sẻ vấn đề này. Không biết vấn đề này mới hay cũ nhưng em thấy rất ít tài liệu nói đến. Bác có thể up lên cho anh em một số tài liệu về tập lênh AT được không ạ?? Thêm nữa, em muốn lập trình bằng ngôn ngữ C# các bác có biết câu lệnh nào để lấy ra các cổng kết nối đến máy tính để hiện ra combobox như bác haiduyvu vừa làm ko ạ?? em xin cảm ơn.
    linh2508 thích bài này.
  9. haiduyvu

    haiduyvu Thành viên

    Bài viết:
    339
    Được Like:
    419
    Lưu ý: Thực ra các tài liệu về lệnh AT rất nhiều, các bạn tìm bằng Google thì ra cả đống, tuy nhiên mình chỉ lưu ý các bạn là nên chọn tài liệu bao gồm cả cú pháp và ghi chú giải thích các nội dung phản hồi từ thiết bị.

    Ví dụ bạn sẽ đọc một tài liệu về AT command có dạng thế này:

    Command Possible response(s)
    +CMS ERROR: <err>
    +CMGL[=<stat>] SMS-SUBMITs and/or SMS-DELIVERs
    +CMGL: <index>, <stat>, <oa/da>, [<alpha>], [<scts>]
    [,<tooa/toda>, <length>]<CR><LF><data>[<CR><LF>
    +CMGL: <index>, <stat>, <da/oa>, [<alpha>], [<scts>]
    [,<tooa/toda>, <length>]<CR><LF>
    <data>[...]]
    SMS-STATUS-REPORTs:
    +CMGL:
    <index>,<stat>,<fo>,<mr>,[<ra>],[<tora>],<scts>,<dt>,<st>[<C
    R><LF>
    +CMGL: <index>, <stat>, <fo>, <mr>, [<ra>], [<tora>],
    <scts>, <dt>, <st>[...]]
    SMS-COMMANDs:
    +CMGL: <index>, <stat>, <fo>, <ct>[<CR><LF>
    +CMGL: <index>, <stat>, <fo>, <ct>[...]]
    CBM storage:
    +CMGL: <index>, <stat>, <sn>, <mid>, <page>,
    <pages><CR><LF>
    <data>[<CR><LF>
    +CMGL: <index>, <stat>, <sn>, <mid>, <page>,
    <pages><CR><LF>
    <data>[...]]
    +CMGL=? +CMGL: (list of supported <stat>s)

    Thì bạn phải hiểu thế nào cho đúng về lệnh này?
    Trước tiên bạn phải hiểu là cú pháp của nó sẽ là: AT+CMGL
    Chức năng: Liệt kê danh sách tin nhắn
    Các lênh hộ trợ lệnh này là: AT+CMGL=?
    Chức năng là kiểm tra những số thự tự tin nhắn nào có thể liệt kê sau dấu = của lệnh chính.
    Nói nghe hơi phức tạp nhưng thực hiện nhiều bạn sẽ hiểu

    Mình UP tạm lên đây một tài liệu AT điển hình:

    Các file đính kèm:

    linh2508 thích bài này.
  10. haiduyvu

    haiduyvu Thành viên

    Bài viết:
    339
    Được Like:
    419
    Thực ra tài liệu về thực hiện lệnh AT rất nhiều, vì hầu như hãng ĐT nào cũng có một bộ AT riêng cho dòng ĐT của mình vì AT chính là lệnh cơ bản để chíp ĐT thực hiện các chức năng của ĐT, nó chính là tiêu chuẩn viễn thông châu âu mà.
    Tuy nhiên việc thực hiện lệnh AT ở VN mình theo mình biết thì không nhiều.
    Mình làm TỰ ĐỘNG HOÁ nên nghiên cứu một chút về nó để thực hiện việc giám sát và đặt thông số cho thiết bị, máy móc vận hành qua ĐT thôi.
    Các bạn tiếp tục thảo luận về lệnh AT nhé, sáng tỏ phần này thì mới bắt đầu lập trình thực thi lệnh AT được.
    linh2508 and nguyennxz like this.