Пример #1
0
 void IGXDLMSBase.SetValue(GXDLMSSettings settings, int index, object value)
 {
     if (index == 1)
     {
         if (value is string)
         {
             LogicalName = value.ToString();
         }
         else
         {
             LogicalName = GXDLMSClient.ChangeType((byte[])value, DataType.OctetString).ToString();
         }
     }
     else if (index == 2)
     {
         Mode = (AutoConnectMode)Convert.ToInt32(value);
     }
     else if (index == 3)
     {
         ListeningWindow.Clear();
         if (value != null)
         {
             foreach (Object[] item in (Object[])value)
             {
                 GXDateTime start = (GXDateTime)GXDLMSClient.ChangeType((byte[])item[0], DataType.DateTime);
                 GXDateTime end   = (GXDateTime)GXDLMSClient.ChangeType((byte[])item[1], DataType.DateTime);
                 ListeningWindow.Add(new KeyValuePair <GXDateTime, GXDateTime>(start, end));
             }
         }
     }
     else if (index == 4)
     {
         Status = (AutoAnswerStatus)Convert.ToInt32(value);
     }
     else if (index == 5)
     {
         NumberOfCalls = Convert.ToInt32(value);
     }
     else if (index == 6)
     {
         NumberOfRingsInListeningWindow = NumberOfRingsOutListeningWindow = 0;
         if (value != null)
         {
             NumberOfRingsInListeningWindow  = Convert.ToInt32(((Object[])value)[0]);
             NumberOfRingsOutListeningWindow = Convert.ToInt32(((Object[])value)[1]);
         }
     }
     else
     {
         throw new ArgumentException("SetValue failed. Invalid attribute index.");
     }
 }
Пример #2
0
 void IGXDLMSBase.SetValue(GXDLMSSettings settings, ValueEventArgs e)
 {
     if (e.Index == 1)
     {
         if (e.Value is string)
         {
             LogicalName = e.Value.ToString();
         }
         else
         {
             LogicalName = GXDLMSClient.ChangeType((byte[])e.Value, DataType.OctetString, false).ToString();
         }
     }
     else if (e.Index == 2)
     {
         Mode = (AutoAnswerMode)Convert.ToInt32(e.Value);
     }
     else if (e.Index == 3)
     {
         ListeningWindow.Clear();
         if (e.Value != null)
         {
             foreach (Object[] item in (Object[])e.Value)
             {
                 GXDateTime start = (GXDateTime)GXDLMSClient.ChangeType((byte[])item[0], DataType.DateTime, settings.UseUtc2NormalTime);
                 GXDateTime end   = (GXDateTime)GXDLMSClient.ChangeType((byte[])item[1], DataType.DateTime, settings.UseUtc2NormalTime);
                 ListeningWindow.Add(new KeyValuePair <GXDateTime, GXDateTime>(start, end));
             }
         }
     }
     else if (e.Index == 4)
     {
         Status = (AutoAnswerStatus)Convert.ToInt32(e.Value);
     }
     else if (e.Index == 5)
     {
         NumberOfCalls = Convert.ToInt32(e.Value);
     }
     else if (e.Index == 6)
     {
         NumberOfRingsInListeningWindow = NumberOfRingsOutListeningWindow = 0;
         if (e.Value != null)
         {
             NumberOfRingsInListeningWindow  = Convert.ToInt32(((Object[])e.Value)[0]);
             NumberOfRingsOutListeningWindow = Convert.ToInt32(((Object[])e.Value)[1]);
         }
     }
     else
     {
         e.Error = ErrorCode.ReadWriteDenied;
     }
 }
Пример #3
0
    public IntPtr Create(IntPtr passedParentHandle)
    {
        // Create form, return handle, and set handle
        // to WMP so WMP will display it. If you
        // return the parent window handle, no form
        // will pop up.

        //			UponCreationForm = new Form();
        //			SetParent(UponCreationForm.Handle, ParentWindowHandle);
        //			return UponCreationForm.Handle;

        listeningWindow = new ListeningWindow();
        listeningWindow.Initialize();

        NativeMethods.RegisterHotKey(listeningWindow.Handle, 50,
                                     NativeMethods.MOD_ALT | NativeMethods.MOD_SHIFT, 0x50);
        NativeMethods.SetParent(listeningWindow.Handle, passedParentHandle);
        return(passedParentHandle);
    }
Пример #4
0
 void IGXDLMSBase.Load(GXXmlReader reader)
 {
     Mode = (AutoAnswerMode)reader.ReadElementContentAsInt("Mode");
     ListeningWindow.Clear();
     if (reader.IsStartElement("ListeningWindow", true))
     {
         while (reader.IsStartElement("Item", true))
         {
             GXDateTime start = new GXDateTime(reader.ReadElementContentAsString("Start"));
             GXDateTime end   = new GXDateTime(reader.ReadElementContentAsString("End"));
             ListeningWindow.Add(new KeyValuePair <DLMS.GXDateTime, DLMS.GXDateTime>(start, end));
         }
         reader.ReadEndElement("ListeningWindow");
     }
     Status        = (AutoAnswerStatus)reader.ReadElementContentAsInt("Status");
     NumberOfCalls = reader.ReadElementContentAsInt("NumberOfCalls");
     NumberOfRingsInListeningWindow  = reader.ReadElementContentAsInt("NumberOfRingsInListeningWindow");
     NumberOfRingsOutListeningWindow = reader.ReadElementContentAsInt("NumberOfRingsOutListeningWindow");
 }
Пример #5
0
 static KeyboardListener()
 {
     ListeningWindow.KeyDelegate keyDelegate = new ListeningWindow.KeyDelegate(KeyHandler);
     listeningWindow = new ListeningWindow(keyDelegate);
 }
Пример #6
0
 static KeyboardListener()
 {
     s_Listener = new ListeningWindow(KeyHandler);
 }
Пример #7
0
        void IGXDLMSBase.SetValue(int index, object value)
        {
            if (index == 1)
            {
                if (value is string)
                {
                    LogicalName = value.ToString();
                }
                else
                {
                    LogicalName = GXDLMSClient.ChangeType((byte[])value, DataType.OctetString).ToString();
                }
            }
            else if (index == 2)
            {
                ListeningWindow.Clear();
                if (value is Object[])
                {
                    foreach (object it in value as Object[])
                    {
                        Object[]   tmp   = it as Object[];
                        GXDateTime start = GXDLMSClient.ChangeType((byte[])tmp[0], DataType.DateTime) as GXDateTime;
                        GXDateTime end   = GXDLMSClient.ChangeType((byte[])tmp[1], DataType.DateTime) as GXDateTime;
                        ListeningWindow.Add(new KeyValuePair <GXDateTime, GXDateTime>(start, end));
                    }
                }
            }
            else if (index == 3)
            {
                if (value is Object[])
                {
                    List <string> tmp = new List <string>();
                    foreach (object it in value as Object[])
                    {
                        tmp.Add(ASCIIEncoding.ASCII.GetString((byte[])it));
                    }
                    AllowedSenders = tmp.ToArray();
                }
                else
                {
                    AllowedSenders = new string[0];
                }
            }
            else if (index == 4)
            {
                SendersAndActions.Clear();
                if (value is Object[])
                {
                    foreach (object it in value as Object[])
                    {
                        Object[] tmp  = it as Object[];
                        string   id   = ASCIIEncoding.ASCII.GetString((byte[])tmp[0]);
                        Object[] tmp2 = tmp[1] as Object[];

                        /*TODO:
                         * KeyValuePair<int, GXDLMSScriptAction> executed_script = new KeyValuePair<int, GXDLMSScriptAction>(Convert.ToInt32(tmp2[1], tmp2[2]));
                         * SendersAndActions.Add(new KeyValuePair<string, KeyValuePair<int, GXDLMSScriptAction>>(id, tmp[1] as GXDateTime));
                         * */
                    }
                }
            }
            else
            {
                throw new ArgumentException("SetValue failed. Invalid attribute index.");
            }
        }
Пример #8
0
 static KeyboardListener()
 {
     ListeningWindow.KeyDelegate aKeyDelegate = new ListeningWindow.KeyDelegate(KeyHandler);
     s_Listener = new ListeningWindow(aKeyDelegate);
 }
 static KeyboardListener()
 {
     s_Listener = new ListeningWindow(KeyHandler);
 }
        void IGXDLMSBase.SetValue(GXDLMSSettings settings, ValueEventArgs e)
        {
            if (e.Index == 1)
            {
                if (e.Value is string)
                {
                    LogicalName = e.Value.ToString();
                }
                else
                {
                    LogicalName = GXDLMSClient.ChangeType((byte[])e.Value, DataType.OctetString).ToString();
                }
            }
            else if (e.Index == 2)
            {
                ListeningWindow.Clear();
                if (e.Value is Object[])
                {
                    foreach (object it in e.Value as Object[])
                    {
                        Object[]   tmp   = it as Object[];
                        GXDateTime start = GXDLMSClient.ChangeType((byte[])tmp[0], DataType.DateTime) as GXDateTime;
                        GXDateTime end   = GXDLMSClient.ChangeType((byte[])tmp[1], DataType.DateTime) as GXDateTime;
                        ListeningWindow.Add(new KeyValuePair <GXDateTime, GXDateTime>(start, end));
                    }
                }
            }
            else if (e.Index == 3)
            {
                if (e.Value is Object[])
                {
                    List <string> tmp = new List <string>();
                    foreach (object it in e.Value as Object[])
                    {
                        tmp.Add(ASCIIEncoding.ASCII.GetString((byte[])it));
                    }
                    AllowedSenders = tmp.ToArray();
                }
                else
                {
                    AllowedSenders = new string[0];
                }
            }
            else if (e.Index == 4)
            {
                SendersAndActions.Clear();
                if (e.Value is Object[])
                {
                    foreach (object it in e.Value as Object[])
                    {
                        Object[] tmp  = it as Object[];
                        string   id   = ASCIIEncoding.ASCII.GetString((byte[])tmp[0]);
                        Object[] tmp2 = tmp[1] as Object[];

                        /*TODO:
                         * KeyValuePair<int, GXDLMSScriptAction> executed_script = new KeyValuePair<int, GXDLMSScriptAction>(Convert.ToInt32(tmp2[1], tmp2[2]));
                         * SendersAndActions.Add(new KeyValuePair<string, KeyValuePair<int, GXDLMSScriptAction>>(id, tmp[1] as GXDateTime));
                         * */
                    }
                }
            }
            else
            {
                e.Error = ErrorCode.ReadWriteDenied;
            }
        }
Пример #11
0
 /// <inheritdoc cref="GXDLMSObject.GetValues"/>
 public override object[] GetValues()
 {
     return(new object[] { LogicalName, Mode, ListeningWindow.ToArray(), Status,
                           NumberOfCalls, NumberOfRingsInListeningWindow + "/" + NumberOfRingsOutListeningWindow });
 }
Пример #12
0
 void IGXDLMSBase.SetValue(GXDLMSSettings settings, ValueEventArgs e)
 {
     if (e.Index == 1)
     {
         LogicalName = GXCommon.ToLogicalName(e.Value);
     }
     else if (e.Index == 2)
     {
         Mode = (AutoAnswerMode)Convert.ToInt32(e.Value);
     }
     else if (e.Index == 3)
     {
         ListeningWindow.Clear();
         if (e.Value != null)
         {
             foreach (object tmp in (IEnumerable <object>)e.Value)
             {
                 List <object> item;
                 if (tmp is List <object> )
                 {
                     item = (List <object>)tmp;
                 }
                 else
                 {
                     item = new List <object>((object[])tmp);
                 }
                 GXDateTime start = (GXDateTime)GXDLMSClient.ChangeType((byte[])item[0], DataType.DateTime, settings.UseUtc2NormalTime);
                 GXDateTime end   = (GXDateTime)GXDLMSClient.ChangeType((byte[])item[1], DataType.DateTime, settings.UseUtc2NormalTime);
                 ListeningWindow.Add(new KeyValuePair <GXDateTime, GXDateTime>(start, end));
             }
         }
     }
     else if (e.Index == 4)
     {
         Status = (AutoAnswerStatus)Convert.ToInt32(e.Value);
     }
     else if (e.Index == 5)
     {
         NumberOfCalls = Convert.ToInt32(e.Value);
     }
     else if (e.Index == 6)
     {
         NumberOfRingsInListeningWindow = NumberOfRingsOutListeningWindow = 0;
         if (e.Value != null)
         {
             List <object> arr;
             if (e.Value is List <object> )
             {
                 arr = (List <object>)e.Value;
             }
             else
             {
                 arr = new List <object>((object[])e.Value);
             }
             NumberOfRingsInListeningWindow  = Convert.ToInt32(arr[0]);
             NumberOfRingsOutListeningWindow = Convert.ToInt32(arr[1]);
         }
     }
     else
     {
         e.Error = ErrorCode.ReadWriteDenied;
     }
 }
 static KeyboardListener()
 {
     ListeningWindow.KeyDelegate aKeyDelegate = new ListeningWindow.KeyDelegate(KeyHandler);
     s_Listener = new ListeningWindow(aKeyDelegate);
 }
Пример #14
0
 static KeyboardListener()
 {
     ListeningWindow.KeyDelegate keyDelegate = new ListeningWindow.KeyDelegate(KeyHandler);
     listeningWindow = new ListeningWindow(keyDelegate);
 }