/// <summary>
 /// M-BUS API: Adds data of a M-BUS Meter to the smart-me Cloud.
 /// Just send us the M-BUS Telegram (RSP_UD) and we will do the Rest.
 /// </summary>
 /// <param name="accessToken">The OAuth2 access token</param>
 /// <param name="mbusData">The M-BUS Telegram</param>
 /// <returns></returns>
 public static async Task <bool> SendTelegramAsync(string accessToken, MBusData mbusData)
 {
     using (var restApi = new SmartMeApiClient(accessToken))
     {
         return(await restApi.PostAsync <MBusData>("MBus", mbusData));
     }
 }
Пример #2
0
        public IActionResult Parse([FromForm] MBusData data, string command)
        {
            data.OutputText = string.Empty;
            data.Error      = string.Empty;

            if (ModelState.IsValid)
            {
                try
                {
                    var buffer = Util.HexStringToByteArray(data.InputText);
                    var frame  = WMBusFrame.Parse(buffer, new Keys(data.SecretKey));
                    data.OutputText = frame.Print(data.IsExpert);

                    if (command.Equals("pdf"))
                    {
                        var stream = new MemoryStream();
                        ReportMeterExpert.Create(frame, stream, false);
                        stream.Position = 0;

                        var productName = string.IsNullOrEmpty(frame.ProductName) ? string.Empty : "_" + MakeValidFileName(frame.ProductName);
                        productName = productName.Replace(" ", "_");
                        var fileName = $"WMBUS_{frame.Header.ID_BCD.ToString("X8")}{productName}.pdf";

                        HttpContext.Response.Headers.Add("Content-Disposition", $"attachment;filename={fileName}");
                        return(new FileStreamResult(stream, "application/pdf"));
                    }
                }
                catch (Exception exc)
                {
                    data.Error = exc.Message;
                }
            }

            return(View("Index", data));
        }
        public IActionResult Index()
        {
            var example = new MBusData
            {
                InputText = "684D4D680801720100000096150100180000000C785600000001FD1B0002FC0348522574440D22FC0348522574F10C12FC034852257463110265B409226586091265B70901720072650000B2016500001FB316"
            };

            return(View(example));
        }
Пример #4
0
        public IActionResult Index()
        {
            var example = new MBusData
            {
                InputText = "6644496A3100015514377203926314496A00075000500598A78E0D71AA6358EEBD0B20BFDF99EDA2D22FA25314F3F1B84470898E495303923770BA8DDA97C964F0EA6CE24F5650C0A6CDF3DE37DE33FBFBEBACE4009BB0D8EBA2CBE80433FF131328206020B1BF",
                SecretKey = "F8B24F12F9D113F680BEE765FDE67EC0"
            };

            return(View(example));
        }
 /// <summary>
 /// M-BUS API: Adds data of a M-BUS Meter to the smart-me Cloud.
 /// Just send us the M-BUS Telegram (RSP_UD) and we will do the Rest.
 /// </summary>
 /// <param name="accessToken">The OAuth2 access token</param>
 /// <param name="mbusData">The M-BUS Telegram</param>
 /// <param name="resultHandler">The result handler</param>
 /// <returns></returns>
 public static async Task <IActionResult> SendTelegramAsync(
     string accessToken,
     MBusData mbusData,
     ResultHandler <MBusData> resultHandler)
 {
     using (var restApi = new SmartMeApiClient(accessToken))
     {
         return(await restApi.PostAsync <MBusData>("MBus", mbusData, resultHandler));
     }
 }
        public IActionResult Parse([FromForm] MBusData data)
        {
            data.OutputText = string.Empty;
            data.Error      = string.Empty;

            if (ModelState.IsValid)
            {
                try
                {
                    var buffer = Util.HexStringToByteArray(data.InputText);
                    var frame  = RSP_UD.Parse(buffer);
                    data.OutputText = frame.Print(data.IsExpert);
                }
                catch (Exception exc)
                {
                    data.Error = exc.Message;
                }
            }

            return(View("Index", data));
        }
 /// <summary>
 /// M-BUS API: Adds data of a M-BUS Meter to the smart-me Cloud.
 /// Just send us the M-BUS Telegram (RSP_UD) and we will do the Rest.
 /// </summary>
 /// <param name="usernamePassword">The Username and Password for Basic Authentication</param>
 /// <param name="mbusData">The M-BUS Telegram</param>
 /// <returns></returns>
 public static async Task <bool> SendTelegramAsync(UserPassword usernamePassword, MBusData mbusData)
 {
     using (var restApi = new SmartMeApiClient(usernamePassword))
     {
         return(await restApi.PostAsync <MBusData>("MBus", mbusData));
     }
 }