Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - John Hughes

Pages: [1] 2 3 ... 8
1
News and Updates / Community Forums are now Read-Only
« on: June 28, 2018, 05:19:47 pm »
All,

I want to sincerely thank everyone for there support over the years. Having been several years since the last version of Elve was released (version 2.2) I have decided to put the forum in Read-Only mode. Users may continue to browse the forum but the ability to post and reply has been disabled. There are very few genuine user posts this year and it is a challenge to keep up with the amount of spam being posted in the forums. I have significantly cleaned up the forums by removing the vast majority of spam to make for a better user experience for those users who would like to search and browse historical posts.

The Community Forums portion of the website will most likely be retired in 2019.

Thank You

John

2
General Discussion / What's next?
« on: September 11, 2016, 05:49:32 pm »
All,

As you are aware, development on the Elve platform has been in hibernation for some time due to competing priorities. I am flattered by the emails I still receive about moving development forward, open sourcing and other product venture ideas. As honored as I am, my availability just doesn't permit me to be as effective as I would like in even coordinating an effort to take the next steps.

I'm certainly open to discussion on a collaborative effort on moving to next steps but I would need to take a mostly hands off approach.

Thanks so much for your support!

John

3
Elve Version 2.1 Beta / Elve 2.1 Beta Download
« on: June 22, 2014, 01:55:32 pm »
The Version 2.1 beta is a minor update to the Version 2.0 beta, but has the licensing and anti-piracy logic removed.

THIS IS A FREE VERSION OF ELVE. So please note that the license agreement has changed.

While this version does support upgrading from previous versions and I believe this is as stable as the version 2.0 beta, it is recommended that you install this on a non-production machine until it has been more thoroughly tested by the community.

There are also some breaking changes that could potentially affect you. Please see the Change History page for more breaking changes information. Please note that the POP3, Proximity, and Wiimote drivers are no longer included in Elve.

The 2.0 Feature List can still be viewed HERE.

Since Version 2.2 has been released, the 2.1 Beta is no longer available for download.

Google Chrome users: Do not use Chrome to download, it incorrectly blocks the download.

I will be posting the current beta download in this FIRST post only.

4
News and Updates / The Future of Elve - Version 2.1 Teaser
« on: June 17, 2014, 06:09:59 pm »
All,

Thank you all for producing a fantastic user community. I wish I had more time to devote to Elve so in my absence I have decided to...

Phase 1
I will be releasing a version 2.1 of Elve in the near future with all licensing and anti-piracy protection mechanisms removed. This version will be available at no cost even if you have not previously purchased Elve.

Phase 2
I am considering inviting a select group of developers to carry on development of Elve at their own pace.

Phase 3
This is in the works.

Please feel free to comment in the forums.

Thank you again for being a part of the Elve community.

Sincerely,
John Hughes

5
News and Updates / The Future of Elve
« on: January 05, 2014, 03:15:28 pm »
I personally want to thank everyone for your support during Codecore Technology's development of Elve. I have enjoyed building Elve and working with all of you to make Elve an even better product. I feel very fortunate to have had such a dedicated user base and am thankful for the opportunity to work with so many .net developers who have produced many of the great Elve device drivers. I am unfortunately no longer able to contribute enough time towards the ongoing development and support of Elve and therefore have dissolved Codecore Technologies, LLC.

Elve licenses are no longer available for purchase, and have not been for some time now in preparation for the dissolution.

The Elve forum will continue to operate for the foreseeable future.

Elve v2.0 beta can still be downloaded from the beta forum.
Elve v1.5 can still be downloaded from the Get Elve menu.

I am currently looking into options on the future of Elve and am open to any opportunities and suggestions.

Thank you for being a part of the Elve community.

Sincerely,
John Hughes

6
Web Site Comments / Installed forum updates
« on: April 08, 2013, 09:33:27 pm »
I upgraded the forum software and Tapatalk plugin to the latest version this evening. Please let me know if you experience anything out of the ordinary.

Thanks

7
General Discussion / License reset issues
« on: April 07, 2013, 10:34:12 pm »
There have been a few users who recently have been waiting to have their Elve license reset. As far as I know all of these have been taken care of. If you are still having problems please let me know and I will update your license asap.

Unfortunately I did not receive any email, PMs, or responses from the "Contact Us" link requesting license resets. Can any of you who have reached out to me for a license reset please let me know what method you used to contact me?  I would like to determine if there is a problem with one of the message delivery systems.

Thank you for your patience and I will look into any issues in communications issues.


8
Elve Version 2.0 Beta (Closed) / Elve 2.0 Beta is publically available
« on: January 14, 2013, 10:40:48 pm »
The Elve 2.0 beta is now publicly available. The information regarding 2.0 is no longer confidential. I will be posting an announcement soon. Feel free to spread the word. :)

You must be a registered user of the forum to access this beta board.

9
News and Updates / Settling In
« on: December 09, 2012, 05:46:58 pm »
Elve v2.0 is on track and will be in the public's hands soon.

There have been some discussions on the forum about what is to come of Elve and why I have been delaying news.

As some of you may know, throughout the history of Elve I have always had ownership in multiple software ventures. A new venture has recently brought me across the country and I am in the process of settling in to my new environment. Please be patient during this transition. My priorities shift from time to time but Elve is a primary passion of mine and version 2.0 is on it's way.   :)

Thanks

10
Elve Version 2.0 Beta (Closed) / How are things working for you?
« on: June 30, 2012, 07:40:28 pm »
I haven't seen many complaints in the beta board so I thought I would ask how things are going?

I should have a new build this weekend... you may have noticed that the current beta will expire in a few days.

11
The new Metro Sample touchscreen interface demonstrates many of the new features in version 2.0.

This interface has a resolution of 768 x 1280 which is the same as some of the touch screens coming with Windows Phone 8.

This interface requires Elve 2.0.

Feel free to post your changes if you have added a neat idea. 

I will updating this thread with new versions as they become available before the 2.0 release.  I will not be changing the name so remember that if you import over the top of your changes you will lose them. Be sure to save your changes to a different folder or interface name. It's easiest to just rename the folder after importing.

12
To support consistant paged list binding across drivers I updated several of the driver interfaces. The following driver interfaces have new paged list binding members (this is a breaking change):

* IClimateControlDriver
* ILightingAndElectricalDriver
* ISecurityDriver
* IWeatherDriver

For those users who have submitted drivers, I have already updated the source code to include the new members. Please request the updated driver source code and I will send you the changes.

These new members all must be decorated with the [SupportsPropertyBinding] attribute, and don't forget to call DevicePropertyChangeNotification() when anything changes that should update the paged list.

Here are examples of the new members:

IClimateControlDriver
Code: [Select]
        [ScriptObjectPropertyAttribute("Paged List Thermostats", "Provides the list of thermostats to be shown in a Touch Screen Interface's Paged List control. The item value has the following properties: ID. ID is the thermostat id.")]
        [SupportsDriverPropertyBinding]
        public ScriptPagedListCollection PagedListThermostats
        {
            get
            {
                var list = new List<ScriptPagedListItem>();


                foreach (var therm in _thermostatInfo)
                {
                    string title = therm.Name;
                    //TODO: support temperature scale.
                    string subtitle = therm.CurrentTemperature + "\u00B0  (" + therm.CoolSetPoint + "\u00B0/" + therm.HeatSetPoint + "\u00B0) " + therm.ThermostatMode.ToString().ToFriendlyName();
                    ScriptExpandoObject value = new ScriptExpandoObject();
                    value.SetProperty("ID", new ScriptNumber(therm.ThermostatNumber));

                    list.Add(new ScriptPagedListItem(title, subtitle, value));
                }

                return new ScriptPagedListCollection(list);
            }
        }

ILightingAndElectricalDriver
Code: [Select]
        [ScriptObjectPropertyAttribute("Paged List Lights", "Provides the list of lights to be shown in a Touch Screen Interface's Paged List control. The item value has the following properties: ID, IsDimmer. ID is the light id. IsDimmer indicates if the light is is a multilevel dimmer.")]
        [SupportsDriverPropertyBinding]
        public ScriptPagedListCollection PagedListLights
        {
            get
            {
                var list = new List<ScriptPagedListItem>();

                for (int i = 0; i < 256; i++)
                {
                    string title = "Light " + (i + 1);
                    string subtitle;
                    if (_lightLevels[i] == 0)
                        subtitle = "OFF";
                    else
                        subtitle = _lightLevels[i] + "%";
                    ScriptExpandoObject value = new ScriptExpandoObject();
                    value.SetProperty("ID", new ScriptNumber(i + 1));
                    value.SetProperty("IsDimmer", new ScriptBoolean(true)); // NOTE: all lights are dimmers in the simulator.

                    list.Add(new ScriptPagedListItem(title, subtitle, value));
                }

                return new ScriptPagedListCollection(list);
            }
        }

ISecurityDriver
Code: [Select]
        [ScriptObjectPropertyAttribute("Paged List Zone Statuses", "Provides the list of zone statuses to be shown in a Touch Screen Interface's Paged List control. The item value has the following properties: ID. ID is the zone id.")]
        [SupportsDriverPropertyBinding]
        public ScriptPagedListCollection PagedListZoneStatuses
        {
            get
            {
                var list = new List<ScriptPagedListItem>();


                for (int i = 0; i < 208; i++)
                {
                    // Only include areas with a name.
                    string title = "Zone " + (i + 1);
                    string subtitle = _zonePhysicalStatuses[i].ToString();
                    ScriptExpandoObject value = new ScriptExpandoObject();
                    value.SetProperty("ID", new ScriptNumber(i + 1));

                    list.Add(new ScriptPagedListItem(title, subtitle, value));
                }


                return new ScriptPagedListCollection(list);
            }
        }

        [ScriptObjectPropertyAttribute("Paged List Area Statuses", "Provides the list of area statuses to be shown in a Touch Screen Interface's Paged List control. The item value has the following properties: ID. ID is the area id.")]
        [SupportsDriverPropertyBinding]
        public ScriptPagedListCollection PagedListAreaStatuses
        {
            get
            {
                var list = new List<ScriptPagedListItem>();


                for (int i = 0; i < 208; i++)
                {
                    // Only include areas with a name.
                    string title = "Area " + (i + 1);
                    string subtitle = _areaArmStatuses[i].ToString().ToFriendlyName();
                    subtitle += " - " + _areaArmUpStates[i].ToString().ToFriendlyName();
                    //if (_areaAlarmStates[i] != alarmState.NoAlarmActive)
                    //    subtitle += " - " + _areaAlarmStates[i].ToString().ToFriendlyName();
                    ScriptExpandoObject value = new ScriptExpandoObject();
                    value.SetProperty("ID", new ScriptNumber(i + 1));

                    list.Add(new ScriptPagedListItem(title, subtitle, value));
                }

                return new ScriptPagedListCollection(list);
            }
        }

IWeatherDriver
Code: [Select]
        [ScriptObjectPropertyAttribute("Paged List Forecast", "Provides the list of daily forcasts to be shown in a Touch Screen Interface's Paged List control. The item value has the following properties: Index. Index is the index for the weather driver property arrays.")]
        [SupportsDriverPropertyBinding]
        public ScriptPagedListCollection PagedListForecast
        {
            get
            {
                var dates = this.Dates;
                var highs = this.Highs;
                var lows = this.Lows;
                var conditions = this.Conditions;

                var list = new List<ScriptPagedListItem>();

                // Add dates.
                for (int i = dates.PrimitiveLowestIndex; i <= dates.PrimitiveHighestIndex; i++)
                {
                    string title = ((DateTime)(ScriptDateTime)dates[i]).ToString("dddd"); // full day of week name. ex: "Monday"
                    string subtitle = (int)(ScriptNumber)highs[i] + "\u00B0 / " + (int)(ScriptNumber)lows[i] + "\u00B0  " + (string)(ScriptString)conditions[i];
                    ScriptExpandoObject value = new ScriptExpandoObject();
                    value.SetProperty("Index", new ScriptNumber(i));

                    list.Add(new ScriptPagedListItem(title, subtitle, value));
                }

                return new ScriptPagedListCollection(list);
            }
        }

        [ScriptObjectPropertyAttribute("Paged List Forecast With Current Condition", "Provides the current condition and a list of daily forcasts to be shown in a Touch Screen Interface's Paged List control. The item value has the following properties: Index. Index is the index for the weather driver property arrays.")]
        [SupportsDriverPropertyBinding]
        public ScriptPagedListCollection PagedListForecastWithCurrentCondition
        {
            get
            {
                var list = PagedListForecast;

                // Insert current condition
                string title = "Current";
                string subtitle = (int)this.Temperature + "\u00B0" + "  " + (string)this.CurrentCondition;
                ScriptExpandoObject value = new ScriptExpandoObject();
                value.SetProperty("Index", new ScriptNumber(0));
                list.Insert(0, new ScriptPagedListItem(title, subtitle, value));

                return list;
            }
        }

13
Elve Version 2.0 Beta (Closed) / Elve 2.0 Beta Download
« on: June 06, 2012, 06:09:32 am »
I will be posting the current beta download in this FIRST post only.

This is a public beta.

Feature List: can be viewed HERE.

Latest 2.0 Beta Version: 2.0.0.6  CLICK HERE TO DOWNLOAD

14
Elve Version 2.0 Beta (Closed) / New Paged list related features
« on: May 30, 2012, 06:46:53 pm »
If you haven't taken a look already, I highly recommend you review the paged list related enhancements in the features thread here.

This is a new feature that I am quite pleased with and I think you will be too. :)

15
I have a prototype of this working. When you call DevicePropertyChangeNotification for the ScriptDictionary, the entire object will be sent to the touch screen so this is an expensive operation (relatively speaking). The Paged List control then updates itself with the new data in the dictionary object.

Each paged list item currently has display text and an underlying key value which could be used to retrieve more information about the selected item. The ScriptDictionary object works well for this since it also contains a key and a value... the value is displayed as text regardless of it's type (string, number) and the dictionary item key is used as the paged list item key.

In looking at this more the simple single line of text that he page list displays is really too simple in some cases. For example if you are showing a list of rss feeds or an email headers it would be nice to show the title in a larger font and then display some supplementary information (such as a date or the initial part of the item description) in a smaller font underneath it. I believe that the control should support both a simple single line of text or 2 lines for a title/sub-title.

To support this I have considered 2 options:
A. Continue to use the ScriptDictionary object but create a new optional value type called ScriptPagedListItem which has properties for the title and sub-title. When this type is used as a scriptdictionary item value it will be rendered as two lines in the paged list.
B. The other option would be to NOT use the ScriptDictionary and create a new container called something like PagedListItems and require the use of the above ScriptPagedListItem type.

I can see benefits of each and I'm not sure I have a strong opinion either way however it would be more development work to change all the new code to use something other than the PagedListItems type.


Does anyone have a preference?

Pages: [1] 2 3 ... 8