Thảo luận GSM Modem: Data card (Kiểm tra tài khoản, hủy, đăng ký, nạp tiền)

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

  1. thinh18tt Thành viên

    Chào các bạn;
    Mình tham gia diễn đàn và đã học hỏi được một số thứ nên đã làm xong phần mềm này phục vụ công việc của cơ quan.
    Lý do: Vì mình hay phải kiểm tra tốc độ tải 3G của các nhà mạng bằng Data card nên rất bất tiện khi cần kiểm tra dung lượng data còn lại, hủy gói cước, đăng ký gói cước...

    Mình gửi lên diễn đàn để bạn nào quan tâm thì dùng thử và nếu có thể thì trao đổi thêm để phần mềm được hoàn thiện hơn.
    Mình chỉ có 1 loại Data card nên chưa biết nó có tương thích với các loại khác hay không.

    PS: Mình đính kèm luôn file MSComm32 đã được hack để nhận tới 99 cổng COM. Vì mặc định nó chỉ hỗ trợ đến 16 cổng thôi.

    Cuối cùng: Ứng dụng được viết bằng VB6

    Các file đính kèm:

  2. thinh18tt

    thinh18tt Thành viên

    Bài viết:
    21
    Được Like:
    0
    Chào các bạn, mình nêu vấn đề của mình gặp trước nhé:
    Khi mình đọc SMS nhận được SMS như sau:
    21/10/2015 08:09:41 << AT+CMGL="ALL"

    21/10/2015 08:09:44 >>
    +CMGL: 0,"REC READ","090",,"13/12/13,11:11:01+28"
    MobiFone TANG NGAY dung luong su dung tuong duong 50% gia tri the nap tu 13/12/2013 den 14/12/2013. Chi tiet goi 9090. Tu choi QC, soan TC gui 9241.
    +CMGL: 1,"REC READ","090",,"15/10/18,15:20:45+28"
    (QC) Truoc 24h hom nay, Ban co the duoc nap Mien Phi 500.000VND vao tai khoan dien thoai khi soan P gui 9333 tu CTKM cua MobiFone. Tu choi, soan TC gui 9241
    +CMGL: 2,"REC READ","999",,"15/10/20,07:06:02+28"
    Quy khach dang su dung goi F120, dung luong su dung toc do toi da con lai la 5991 MB, han su dung den 18/11/2015 07:37:55, chi su dung tai Viet Nam.
    +CMGL: 3,"REC READ","18001090",,"15/10/20,13:10:20+28"
    Tai khoan data cua quy khach chi con duoi 10MB. Quy khach luu y khi su dung de tranh phat sinh cuoc ngoai mong muon.
    +CMGL: 4,"REC READ","999",,"15/10/21,08:09:05+28"
    Quy khach dang su dung goi F120, dung luong su dung toc do toi da con lai la 0 MB, han su dung den 18/11/2015 07:37:55, chi su dung tai Viet Nam.
    +CMGL: 5,"REC READ","999",,"15/10/21,08:09:40+28"
    616E20444B112054656E20676F692063756F63206775692064656E203939392E2043616D206F6E20517579206B686163682064612073752064756E67206469636820767520637561204D6F6269466F6E6521
    +CMGL: 6,"REC UNREAD","999",,"15/10/21,08:09:40+28"
    596575206361752068757920676F692063756F6320463132302063756120517579206B68616368207468616E6820636F6E672E20517579206B68616368207365206B686F6E672064756F632073752064756E672064696368207675206461746120766020534D53206D69656E2070686920736175206B68692068757920676F692063756F632E2044652064616E67206B79206C61692C20736F

    OK

    ==> Có 2 SMS mới nhất bị mã hóa, không đọc được nội dung. Nó giống như gửi SMS ở PDU Mode.
    Chỉnh sửa cuối: 26 Tháng mười 2015
  3. thinh18tt

    thinh18tt Thành viên

    Bài viết:
    21
    Được Like:
    0
    Nhiều view quá mà không thấy có phản hồi gì nhỉ?
  4. anhyeuem12hp

    anhyeuem12hp Thành viên

    Bài viết:
    1,254
    Được Like:
    25
    Vì đọc nội dung nhưng không hiểu nên chịu, chẳng biết comment thế nào cả.
    thinh18tt thích bài này.
  5. thinh18tt

    thinh18tt Thành viên

    Bài viết:
    21
    Được Like:
    0
    Chào bạn, chắc bạn không dùng data card hoặc không tải phần mềm về nên bạn nói thế. Mình thấy có 6 bạn tải về nhưng không thấy phản hồi gì cả.
  6. haiduyvu

    haiduyvu Thành viên

    Bài viết:
    339
    Được Like:
    419
    Tặng bạn Thinh18tt hàm này để bạn chuyển đổi sms bị mã hóa thành text nhé:
    Public Function DoiChuoiSMS(Goc As String) As String
    Dim Chay As Integer
    DoiChuoiSMS = ""
    Goc = Trim(Goc)
    Goc = Replace(Goc, vbCrLf, "")
    Goc = Replace(Goc, "OK", "")
    For Chay = 1 To Len(Goc) Step 2
    DoiChuoiSMS = DoiChuoiSMS & Chr("&H" & Mid(Goc, Chay, 2))
    Next
    End Function

    Chuỗi mã hóa trong SMS của bạn sẽ có nội dung là:
    Yeu cau huy goi cuoc F120 cua Quy khach thanh cong. Quy khach se khong duoc su dung dich vu data v` SMS mien phi sau khi huy goi cuoc. De dang ky lai, so
  7. haiduyvu

    haiduyvu Thành viên

    Bài viết:
    339
    Được Like:
    419
    Mà hình như hôm trước bạn gọi cho mình thì phải. Giờ thì gắn cái hàm kia vào SMS là OK hết bạn nhé
    thinh18tt thích bài này.
  8. thinh18tt

    thinh18tt Thành viên

    Bài viết:
    21
    Được Like:
    0
    Đúng rồi anh ạ, em post lên nhưng đợi mãi không thấy ai hồi âm nên tìm số của anh để gọi. Sau khi gọi cho anh thì em lên mạng cũng tìm được đoạn code tương tự như của anh và đã ổn.
    À, có cách nào để biết tin nhắn đó dạng hex hoặc dạng Ascii không anh? Vì có tin dạng hex có tin dạng Ascii.
    Tuy nhiên em lại gặp 1 trường hợp khá đặc biệt, đó là bên em có hơn chục cái Data card Vodafone (ZTE) nhưng có vài cái thì không đọc được tin nhắn, mặc dù vẫn gửi tin bình thường và vẫn nhận được:
    • Sending message (HUY) to 191...
    • Sent message (HUY) to 191 successfully!
    • Waiting for incomming message from 191...
    • Have new message(s). Loading...
    • +CMTI: "SM",12
    • Read all SMS from SIM successfully.
    • Have new message(s). Loading...
    • +CMTI: "SM",13
    • Read all SMS from SIM successfully.
    Trước đó có 11 SMS nhưng khi em xóa thì cũng ko xóa được. Gửi tiếp SMS nữa thì nhận được thêm 2 SMS của 191 nhưng không load ra được. Không biết là tại sao nữa.
  9. haiduyvu

    haiduyvu Thành viên

    Bài viết:
    339
    Được Like:
    419
    Cách nhận dạng SMS dạng Text và dạng Hex:
    - Bước 1: Tách phần nội dung SMS từ chuỗi đọc về
    - Bước 2: Do chuỗi Hex không có dấu cách nên dùng dấu cách để nhận biết. Chuỗi nào có dấu cách thì để nguyên, chuỗi nào không có dấu cách thì gọi hàm chuyển đổi Hex ra ký tự là OK.
    (Rất đơn giản đúng không?)
  10. thinh18tt

    thinh18tt Thành viên

    Bài viết:
    21
    Được Like:
    0
    Xin hỏi thêm một câu hỏi mà em nghĩ câu trả lời là không vì em cũng đã tìm kiếm
    Em cũng nhận ra điều ấy và làm như vậy nhưng phải loại trừ vài trương hợp đặc biệt. Ý em là có hàm nào để nhận biết nó hay không, ví dụ như hàm isnumeric() ấy.

    Còn vụ ko load được tin nhắn thì anh có cao kiến gì không (chỉ trả về OK)?