Programación Imperativa en web 2020

Todo lo relacionado con el software de Arduino
Responder
Juan Ramon
Mensajes: 301
Registrado: Mar Feb 12, 2019 7:52 pm
Ubicación: Alicante

Programación Imperativa en web 2020

Mensaje por Juan Ramon » Mié Ene 29, 2020 9:53 pm

Muy buenas a todos.
Quería hacer un cambio en mi web por medio de la programación imperativa de la web.
He estado revisando el vídeo de introducción a la programación imperativa ExControl Server.
https://www.youtube.com/watch?v=yDiYlx3igvU

Y me encuentro con mi primer problema.

Mi intención es que según el valor de un circuito me presente una imagen de fondo u otra.
Concretamente el valor de circuito 2 en la central 5

Según me parece entender en el vídeo seria de esta forma

Código: Seleccionar todo

<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server">
    <asp:Panel ID="PanelControls" runat="server" CssClass="background">

      apartado programación imperativa 
      <% 
        If CircuitValue(5, 2) > 0 Then
              <img src = "../ImgPantalla/Fachada.png" Class="stretch" alt="" />
              Else
          <img src = "../ImgPantalla/Fachada1.png" Class="stretch" alt="" />
        End If
      %>
       <div style="position: absolute ; left: 27%; top:32%;"> <uc1:CircuitoLt runat="server" id="CircuitoLt1" Central="0" Index="0" /></div>
       <div style="position: absolute ; left: 37%; top:28%;"> <uc1:CircuitoLt runat="server" id="CircuitoLt2" Central="0" Index="1" /></div>
       <div style="position: absolute ; left: 49%; top:32%;"> <uc1:CircuitoLt runat="server" id="CircuitoLt3" Central="0" Index="2" /></div>   
       <div style="position: absolute ; left: 60%; top:28%;"> <uc1:CircuitoLt runat="server" id="CircuitoLt4" Central="0" Index="3" /></div> 
       <div style="position: absolute ; left: 70%; top:32%;"> <uc1:CircuitoLt runat="server" id="CircuitoLt5" Central="0" Index="4" /></div>
       <div style="position: absolute ; left: 68%; top:78%;"> <uc1:CircuitoLt runat="server" id="CircuitoLt6" Central="5" Index="1" /></div>
       <div style="position: absolute ; left: 33%; top:78%;"> <uc1:CircuitoLt runat="server" id="CircuitoLt7" Central="5" Index="2" /></div>
    
    </asp:Panel>
</asp:Content>
Pero no me sale ninguna de las dos imágenes, pues el condicionado no funciona.

Situando el puntero del ratón sobre el texto CircuitValue(5, 2) me muestra un mensaje diciendo. 'CircuitValue' no esta declarado. Puede que sea inaccesible debido a su nivel de protección
La definición así, seria correcta?
Como saber los niveles de protección?
Muchas gracias.
Juan Ramón.

Peque
Mensajes: 46
Registrado: Sab Nov 02, 2019 5:27 am

Re: Programación Imperativa en web 2020

Mensaje por Peque » Jue Ene 30, 2020 5:55 pm

La programacion "Imperativa" no se recomienda usar ya por microsoft.. cualquier dia dejan de darle soprte en nuevas versiones de iis.

es mejor tocar el archivo dentro de codigo de la web... Algo parecido a ese ejemplo.

Código: Seleccionar todo

    'Configuraar a tu gusto
        'If ExControlLib.Centrales(   TU NUMERO DE CENTRAL ).Circuitos(NUMERO DE CIRCUITO).Valor > 0 Then
        'debes tener un CONTROL IMAGEN DENTRE DE TU PAGINA , EN ESTE CASO SE LLAMA ImgIcono PERO LO PUEDES CAMBIAR  
        If ExControlLib.Centrales(0).Circuitos(0).Valor > 0 Then
            ImgIcono.ImageUrl = "~/Img/bombillaon.png"
        Else
            ImgIcono.ImageUrl = "~/Img/bombillaoff.png"
        End If
Adjunto imagenes asociadas a este codigo
No tienes los permisos requeridos para ver los archivos adjuntos a este mensaje.

Peque
Mensajes: 46
Registrado: Sab Nov 02, 2019 5:27 am

Re: Programación Imperativa en web 2020

Mensaje por Peque » Jue Ene 30, 2020 5:56 pm

Este otro codigo es ya mas avanzado... revisa todas las centrales en busca de un alumbrado encendido.. si hay alguno marca la imagen en verde... si no en rojo.

Código: Seleccionar todo

Dim AdoOn As Boolean = False

        For ce As Integer = 0 To ExControlLib.Centrales.Count - 1
            Dim Central As ExControlLib.ClsCentral = ExControlLib.Centrales(ce)
            For ci As Integer = 0 To Central.Circuitos.Count - 1
                Dim cir As ExControlLib.ClsCircuito = Central.Circuitos(ci)
                If cir.Tipo = ExControlLib.ClsCircuito.TiposCircuitos.Ado_Digital Then
                    If cir.Valor > 0 Then
                        AdoOn = True
                    End If
                End If
            Next
        Next

        If AdoOn Then
            ImgIcono.ImageUrl = "~/Img/bombillaon.png"
        Else
            ImgIcono.ImageUrl = "~/Img/bombillaoff.png"
        End If

Juan Ramon
Mensajes: 301
Registrado: Mar Feb 12, 2019 7:52 pm
Ubicación: Alicante

Re: Programación Imperativa en web 2020

Mensaje por Juan Ramon » Jue Ene 30, 2020 9:50 pm

Peque, muchas gracias por la recomendación.
Intentare hacer algo pero muy despacito.
Juan Ramón.

Peque
Mensajes: 46
Registrado: Sab Nov 02, 2019 5:27 am

Re: Programación Imperativa en web 2020

Mensaje por Peque » Vie Ene 31, 2020 9:54 am

Entiendo que esto aqui se ve un poco raro.... pero te aseguro que es mas sencillo y flexible que el metodo viejo

Si vas a tu proyecto web, tienes ejemplos.
Te recomiendo ver
Example-Circuitos.aspx

Esta en la carpeta Pant

Este puedes ver como personalizar paginas y manipular circuitos fácilmente o modificar el estado de controles desde codigo

También existen otros... para alarmas, escenas, condicionados... saber si estas conectado desde local o remoto para segun la ip poder meter camaras diseccionando con ip externa o interna.

Tambien existen ejemplos para manejar kodi... tanto en version navegador (simple) como avanzado pudiendo crear un mando a distancia total de kodi desde la api.

Pero bueno... eso ya es otra historia, si miras ese ejemplo veras que es muy facil conseguir lo que pretendes.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados