Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 16
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    lập trình gửi tin nhắn từ máy tính sang dtdd như thế nào ?


  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mua 1 USB 3G hoặc GSM Modem kết nối vào máy tính.
    Sử dụng SerialPort (C#) và AT Command để giao tiếp với thiết bị thông qua COM port.
    Đây là mã nguồn SMSHeper, bạn có thể tham khảo

    Mã:
    using System;using System.IO.Ports;using System.Threading; namespace SMS_Service{    internal class SmsHelper    {        private static SerialPort _serialPort;        private string _response;         public SmsHelper(SerialPort smsPort)        {            _response = string.Empty;            _serialPort = smsPort;            _serialPort.RtsEnable = true;            _serialPort.DataReceived += SerialPortDataReceived;        }         void SerialPortDataReceived(object sender, SerialDataReceivedEventArgs e)        {            if (e.EventType == SerialData.Chars)            {                _response += _serialPort.ReadLine();            }        }        public bool IsReady()        {            try            {                if (!_serialPort.IsOpen)                    _serialPort.Open();                 _serialPort.Write("AT
    ");                Thread.Sleep(3000);            }            catch            {                return false;            }             return _response.Contains("OK");        }         public SmsHelper(string portName, int baudRate) :            this(new SerialPort(portName, baudRate))        {        }         public static bool SendSms(string phoneNumber, string message)        {            try            {                if (!_serialPort.IsOpen)                    _serialPort.Open();                 // Send                _serialPort.Write("AT+CMGF=1" + (Char) 13);                _serialPort.Write(String.Format("AT+CMGS=\"{0}\"" + (Char) 13, phoneNumber));                _serialPort.Write(String.Format("{0}" + (Char) 26 + (Char) 13, message));                return true;            }            catch            {                return false;            }        }    }}

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    bạn dùng OZEKI MESSAGE SERVER: ozeki.hu

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    hi cần tìm hiểu các lệnh AT của điện thoại. mở, gửi và nhận data qua cổng COM của máy tính. ok các thứ chỉ có thế..

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Hi !
    Mình đang viết app gửi tin nhắn, nhận tin nhắn qua 1 cổng cố định. Nhưng lại ko có máy đt thật để test. Vậy có cách nào để test gửi, nhận sms qua emulator được không nhỉ. mình viết winphone 7.
    Cảm ơn anh em.

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Tại sao mình dùng using System.IO.Ports lại báo lỗi nhỉ, thậm chí trong reference của .Net cũng không có Bạn nào giúp mình với

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Tab
    Mua 1 USB 3G hoặc GSM Modem kết nối vào máy tính.
    Sử dụng SerialPort (C#) và AT Command để giao tiếp với thiết bị thông qua COM port.
    Đây là mã nguồn SMSHeper, bạn có thể tham khảo

    Mã:
    using System;using System.IO.Ports;using System.Threading; namespace SMS_Service{    internal class SmsHelper    {        private static SerialPort _serialPort;        private string _response;         public SmsHelper(SerialPort smsPort)        {            _response = string.Empty;            _serialPort = smsPort;            _serialPort.RtsEnable = true;            _serialPort.DataReceived += SerialPortDataReceived;        }         void SerialPortDataReceived(object sender, SerialDataReceivedEventArgs e)        {            if (e.EventType == SerialData.Chars)            {                _response += _serialPort.ReadLine();            }        }        public bool IsReady()        {            try            {                if (!_serialPort.IsOpen)                    _serialPort.Open();                 _serialPort.Write("AT
    ");                Thread.Sleep(3000);            }            catch            {                return false;            }             return _response.Contains("OK");        }         public SmsHelper(string portName, int baudRate) :            this(new SerialPort(portName, baudRate))        {        }         public static bool SendSms(string phoneNumber, string message)        {            try            {                if (!_serialPort.IsOpen)                    _serialPort.Open();                 // Send                _serialPort.Write("AT+CMGF=1" + (Char) 13);                _serialPort.Write(String.Format("AT+CMGS=\"{0}\"" + (Char) 13, phoneNumber));                _serialPort.Write(String.Format("{0}" + (Char) 26 + (Char) 13, message));                return true;            }            catch            {                return false;            }        }    }}
    Mình có thử code của bạn và chạy ko đc

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    hi mở cổng com và gửi lệnh at qua là được thôi mà

  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mình đã mở và gửi lệnh AT nhưng ko thấy phản hồi lại gì cả, ngay cả khi mình có down thử project mẫu (Link) về nhưng cũng ko thể chạy được.

  10. #10
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mã:
    public bool DetectSMSModem(string portName)        {            bool available = false;            string str;            SerialPort port = new SerialPort();            port.PortName = portName;            port.BaudRate = 9600;            port.DataBits = 8;            port.StopBits = StopBits.One;            port.Parity = Parity.None;            port.Handshake = Handshake.RequestToSend;            port.NewLine = System.Environment.NewLine;            port.ReadTimeout = 5000;            port.WriteTimeout = 5000;            port.Open();            try            {                if (port.IsOpen)                {                    port.WriteLine("AT
    ");                    str = port.ReadExisting(); //Response text from GSM modem                    //MessageBox.Show(str);                    if (!string.IsNullOrEmpty(str))                    {                        available = true;                        //this.cboPortName.Items.Add(port.PortName);                          port.Close();                        //port.Dispose();                    }                }            }            catch (Exception ex)            {                //MessageBox.Show("Try another Port. Phone not detected", "CONNECTION ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);                port.Close();                port.Dispose();            }            return available;         }
    Code trên dùng để kiểm tra có kết nối từ máy tính và GSM modem hay không? Kết quả là không có phản hồi gì cả, bạn nào xem giúp mình code có sai chỗ nào ko nhé?

 

 
Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •