コード例 #1
0
ファイル: Program.cs プロジェクト: xhowar/SmsToolset
        static void Main(string[] args)
        {
            //int length = 0;
            //string packet = string.Empty;
            //var p = new PduProfileManager();
            //if (p.HasDefaultProfile)
            //{
            //    length = 0;
            //    packet = p.DefaultProfile.GetPacket(48000000000, "华为", out length);
            //}

            //using (var ps = Assembly.GetExecutingAssembly().GetManifestResourceStream(typeof(Program), "profile.json"))
            //{
            //    var settings = p.CreateProfileSettings<PduDefaultProfileSettings>(ps);

            //    var profile = p.CreateDefaultProfile(settings, "simple");

            //    length = 0;
            //    packet = profile.GetPacket(000000000, "łóżko", out length);
            //}


            var ports  = SerialPortPlug.AvailablePorts();
            var config = SerialPortConfig.CreateDefault();

            if (ports.Any())
            {
                config.Name = ports.First();
            }

            if (ports.Any())
            {
                using (var modem = new SerialPortPlug(config))
                {
                    if (!modem.IsOpen)
                    {
                        return;
                    }

                    bool authenticated = false;

                    Task.WaitAny(
                        Task.Run(async() =>
                    {
                        Console.Write("enter pin: ");
                        var pin = Console.ReadLine();

                        var auth      = new Authentication();
                        authenticated = await auth.AuthenticateIfNotReady(modem, int.Parse(pin));
                    })
                        );

                    if (!authenticated)
                    {
                        return;
                    }

                    Task.WaitAny(
                        Task.Run(async() =>
                    {
                        Console.Write("enter address: ");
                        var address = Console.ReadLine();

                        Console.Write("enter message: ");
                        var msg = Console.ReadLine();

                        var sms  = new PduSms();
                        var send = await sms.Send(modem, long.Parse(address), msg);
                    })
                        );

                    //Task.WaitAny(
                    //    Task.Run(async () =>
                    //    {
                    //        bool suc = false;
                    //        var atip = CommandParameter.CreateEmpty(Constants.BasicSuccessfulResponse, true);

                    //        var ati = new SimpleATCommand(ATCommand.DefaultInfo.Command(), atip);
                    //        await ati.ExecuteAsync(modem);
                    //        suc = ati.Succeeded();
                    //    })
                    //);

                    //Task.WaitAny(
                    //    Task.Run(async () =>
                    //    {
                    //        var sca = new ServiceCenter();
                    //        var defined = await sca.IsDefined(modem);
                    //        var intl = await sca.HasInternationalFormat(modem);
                    //        var addr = await sca.GetAddress(modem);
                    //        //var s1 = await sca.SetAddress(modem, 600100200, true);
                    //        //var s2 = await sca.SetAddress(modem, 48601000310, true);
                    //    })
                    //);

                    //Task.WaitAny(
                    //    Task.Run(async () =>
                    //    {
                    //        bool suc = false;
                    //        var mfp = new CommandParameter(Constants.MessageFormat.Pdu.ToValueString(), Constants.BasicSuccessfulResponse, true, false);

                    //        var mf = new ParamATCommand(ATCommand.MessageFormat.Command(), mfp);
                    //        await mf.ExecuteAsync(modem);
                    //        suc = mf.Succeeded();
                    //    })
                    //);

                    //Task.WaitAny(
                    //    Task.Run(async () =>
                    //    {
                    //        bool suc = false;
                    //        var s1 = new CommandParameter($"{length}{Constants.CR}", Constants.ContinueResponse, false, true);
                    //        var s2 = new CommandParameter($"{packet}{Constants.SUB}", Constants.BasicSuccessfulResponse, true, false);

                    //        var ms = new StepwiseATCommand(ATCommand.MessageSend.Command(), new ICommandParameter[] { s1, s2 });
                    //        await ms.ExecuteAsync(modem);
                    //        suc = ms.Succeeded();
                    //    })
                    //);
                }
            }
        }