Page 1 of 7

Client Suite 2.2

Posted: Wed Jul 20, 2011 8:33 pm
by dmolton
Time for a new version of the Client Suite software.

Notable changes in this version are:
  • Split pH Graph
  • Re-sizable Main Window
  • Read/Write controller memory settings
  • Control PWM Dim% from main screen
Required Dev Libraries = 0.8.5.15 or greater

Like normal, all the new controller memory reading/writing features can be done over wifi or usb. I will say that memory reading and writing performance is significantly better over usb, but that just comes with the territory. Also the new Memory tab will look very similar to Curt's RAGen to keep things consistent and intuitive.

I need to apologize in advance to you guys for the PITA upgrade process that will required for this version. (If you choose to upgrade from 2.1)

Because of all the awesome memory read/write features Curt added to his new dev libraries, I had to change the base interface for the Listener service to make use of them. As such, the Setup Project that I use to build the installer doesn't like these kind of changes and won't reflect them during an upgrade. It's necessary to backup->Uninstall 2.1 -> Install 2.2 -> Restore -> Upgrade. I outlined the process at the beginning of the last release and made a video of how to do it. The steps are exactly the same, just make sure to use the latest installer/utilities.

If you don't care about retaining old values or want to start from fresh, just stop all the services, do a full uninstall of 2.1 and then run the 2.2 installer and you're good to go. I would recommend this route just because its easier.

I'm copying/pasting the instructions from the last version b/c they are just the same

HOW TO INSTALL:

A Fresh Copy:
  1. If you're running 2.1 and want to start from fresh, make sure you STOP the Listener and Logger service and fully exit the Client. Uninstall 2.1 from the Control Panel fully once everything is stopped.
  2. Run ReefAngelClientSuite.msi and follow the prompts. Congratulations, you're at the latest version of the Client Suite.
Upgrade From 2.1:
  • From the Client, browse to Settings -> General Tab. Press "Launch Service Dash". Stop both services. Close Service Dash
  • FULLY Exit the Client by going to File-> Exit or right clicking and pressing Exit on the blue fish in the system tray. The upper right "X" will only minimize it!
  • Run the RAClientMigrate.exe and press "Backup". Exit utility. This step backs up your existing configuration files and database history.
  • Uninstall Client Suite 2.1 from the Control Panel. You shouldn't get any errors if all the services are stopped and the client is fully closed.
  • Install the latest 2.2 Client Suite software from the MSI. (ReefAngelClientSuite.msi)
  • Immediately restore your data by running the RAClientMigrate application again and pressing "Restore". Exit.
  • Upgrade your restored files by running the UpgradeAssistant.exe application. This will go through and get your legacy database files and configuration files 2.2 ready.
  • Finished! Run the Client and go back into Settings -> General tab and run the Service Dash. Make sure both your services are in the running state.
Youtube video on how to upgrade:
http://www.youtube.com/watch?v=RWRejvlNBhA


Only entries that need to be in Features.h to take advantage of everything is:

Code: Select all

#define wifi 
If you have an expansion box, also include:

Code: Select all

#define RelayExp

I also included the French and Italian translations in this version provided by our friends Xender and Domenico. They should automatically pickup and start working after installation.

2.2 Changelog:

- GridView column headers are now updated to correct temp sensor names
- Send expansion box info to reefangel.com
- Temp/pH aggregate values displayed on tooltip when hovered over are now formatted correctly.
- Support main window resizing
- Now possible to split the main graph and have a dedicated pH graph.
- New splitter panel allows resizing individual graphs when the "Split pH Graph" option is chosen.
- Added database, dev lib version and service statuses on bottom status bar.
- Read/write controller memory values.
- Added support for uploading custom ini file to remap memory locations in the Client.
- Celcius support
- French and Italian translation
- Fixed decimal formatting issue on grid view where even value temps weren't showing the padded 0 after the decimal separator
- Fixed date/time formatting on the grid view which would truncate midnight to just display the date.
- Implemented exporting to Excel (*.xls) and CSV(*.csv) from the grid view
- Fixed flickering trackbar when 3D mode was enabled.
- Fixed bug that would highlight the ON/OFF text of RelayBox1-Relay1 when cycling through relays on main form
- Relay On/Off status is now a label and responds to right or left clicks to pop open the auto/on/off context menu
- Cursor now changes on ATO status, LED PWM% and Relay On/Off status to a pointer finger, indicating a
user interaction is allowed.
- Added menu item to quickly launch default text editor to view the error log.
- Reworked ReefAngel Serial Reader utility to allow passing commands over usb.

Screenshots
Image
Image

Downloads
Client Suite 2.2 Installer
Upgrade Assistant and Migration Utility
Curt's latest dev libraries


If anyone runs into any issues, or has any ideas for enhancements or feature request just let me know.

-Dave

Re: Client Suite 2.2

Posted: Wed Jul 20, 2011 9:04 pm
by rimai
Wow.
Great work!!!

Re: Client Suite 2.2

Posted: Wed Jul 20, 2011 11:15 pm
by Bryan
Outstanding, no problems with installation and works great. I really like the memory tab and the ability to change other parameters.

A user really doesn't even require the screen anymore as anything on the screen could soon be done from the PC.

Neptunes latest offering the jr does not come with a visual interface as the programming and parameters are all done on the pc. Screen is a added option. Stripping out the screen code would save a fair amount of memory I assume.

Cheers

-=Bryan=-

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 12:02 am
by aranax
Sorry, I'm having issues.

I tried twice to get this to work both from an upgrade and a fresh reinstall. I uninstalled EVERYTHING including Arduino and started from scratch. After reinstalling "Arduino - Reef Angel Installer (Windows)" and updating to the latest dev libraries (0.8.5.16) I verified that I can communicate with the controller by uploading my sketch file. This worked fine.

I then did a fresh install of the RAClient 2.2. It installed fine and launches. From the bottom: The listener is Running / Connected, Logger is Running, DB version is 2.2, BUT the Dev Lib Version is x.x.x.xx. I read through the Getting Started portion under the Help menu but I can't get this to read/write to my controller. I'm sure I missed a step as I can't verify this " To ensure the data is getting sent correctly, after uploading the sketch, run the Reader application and press Open Serial Port. The Reader application should get updated every 15 seconds with text that looks similar to the following"...

...probably because I can't find the RALogger sketch to verify this (http://www.github.com/curtbinder )...:p

...Can you please help me out? Thanks.

Jeremiah

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 12:33 am
by Bryan
Have a look at this thread. Near the end Dave posts a download for the Serialreader app that should help you diagnose the problem. Are you sure you have the right com port open?

http://forum.reefangel.com/viewtopic.ph ... 2&start=10

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 4:25 am
by binder
aranax wrote: ...probably because I can't find the RALogger sketch to verify this (http://www.github.com/curtbinder )...:p
Jeremiah
The RALogger sketch has been renamed to RALoggerPC. It's only advisable to test if the controller is sending out the proper data. The Client Suite will not operate properly with this sketch because the Client Suite pulls data on demand and the RALogger sketch pushes it at specified intervals. Anyways, here's a link to the sketch file:

https://github.com/curtbinder/SketchBoo ... gingPC.pde
Bryan wrote: A user really doesn't even require the screen anymore as anything on the screen could soon be done from the PC.

Neptunes latest offering the jr does not come with a visual interface as the programming and parameters are all done on the pc. Screen is a added option. Stripping out the screen code would save a fair amount of memory I assume.

-=Bryan=-
That was the whole point of the memory reading/writing. We wanted to make it so you can easily update the memory values without having to use the controller. You are correct, removing the setup menus does save on space. That's why I suggest that you have SIMPLE_MENU enabled and DateTimeSetup removed to strip out all the extra code required for the setup screens.

If a user has wifi enabled, then they are most likely going to be running the Client suite or use some other way of updating their controller values. So having the extra setup screens on the controller isn't really necessary. However, if a user doesn't use wifi then they will most likely still need a way to update the memory from the controller. Now we can accommodate both.

curt

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 8:15 am
by rimai
In light of the other thread of time sync with external server, do you think we could push time sync through Client?
Very easy with very minimum overhead.
I think this would be the best option for time setup and it would also free up the 1.5K necessary for time/date setup.

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 8:33 am
by rimai
Duh... I should've played with it before I posted... I just saw you already have the feature :)
You are good, Dave!!! :)
Just a minor note I noticed.
The installation was flawless for fresh installation, but I picked the wrong COM port in the installation process.
So, I went to change the port and happened to stumble upon the get/set time feature. With no hesitation, I clicked on it, just to find out the window froze for several seconds. I know.... The COM port was wrong and it would never be able to find the controller, but I clicked it on my haste and excitement. I knew that it would eventually get unstuck when the timeout ran out, so I just waited to regain control over the window again.
The same thing happens if the controller does not have v0.8.5.15 or above.
Maybe you could place a check, just so that the application doesn't look like it is frozen if someone like me clicks on it :)
The other minor thing is when I went to change the COM port by going "Settings->Modify-General tab" and clicking button "Launch Service Dash", I changed it in the dashboard, saved and hit close. Although it had changed, it did not show up on the General tab immediately. Only when I came back to the tab again. I think it only refresh when it is loaded or something. I does the same thing when I switched from COM to wifi and vice-versa.
Very cool stuff :)

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 8:38 am
by rimai
Hum.. Sorry to bug again....
I can't seem to be able to update the temperature names.
I hit save and nothing happens :(

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 8:45 am
by dmolton
aranax wrote:Sorry, I'm having issues.

I tried twice to get this to work both from an upgrade and a fresh reinstall. I uninstalled EVERYTHING including Arduino and started from scratch. After reinstalling "Arduino - Reef Angel Installer (Windows)" and updating to the latest dev libraries (0.8.5.16) I verified that I can communicate with the controller by uploading my sketch file. This worked fine.

I then did a fresh install of the RAClient 2.2. It installed fine and launches. From the bottom: The listener is Running / Connected, Logger is Running, DB version is 2.2, BUT the Dev Lib Version is x.x.x.xx. I read through the Getting Started portion under the Help menu but I can't get this to read/write to my controller. I'm sure I missed a step as I can't verify this " To ensure the data is getting sent correctly, after uploading the sketch, run the Reader application and press Open Serial Port. The Reader application should get updated every 15 seconds with text that looks similar to the following"...

...probably because I can't find the RALogger sketch to verify this (http://www.github.com/curtbinder )...:p

...Can you please help me out? Thanks.

Jeremiah
So yeah, the help dialog is pretty dated. It has totally slipped my mind and needs updating for sure. Communication doesn't happen anymore like the help file says it does.

First thing I would check is to make sure #define wifi is present in the libraries you just downloaded and uploaded to the controller. By default, I believe that line is commented out to save space. Have a look inside the /libraries/ReefAngel_Features/ReefAngel_Features.h file to make sure it is not commented out with a double slash (//).

If that's good and assuming your communicating over usb and not the wifi module, then make sure no other applications are connected to the controller over the USB port. This includes stopping the Listener Service from the Service Dash application plus closing Putty, TeraTerm, Arduino IDE etc... The Serial Reader utility can be useful to test and make sure your communicating correctly. The newest version actually comes with the Suite installation. Start -> Programs -> ReefANgel -> ReefAngel Serial Reader. Put in your COM Port and Baud and press "Open Connection Button". It should say success. Inside the "To Send" field should be "GET /r99 " Press the "Send" button and see if your response looks correct. You won't see an automatic update every 15 seconds anymore. That was the old way of communicating. Now you will need to press that "Send" button. Response should look like this:

Image

If you've made it that far you should be good to go. Just stop the Reader utility - and restart the Listener Service. It could take a minute to actually start seeing updates on the Client screen - but once going you should see it updating every 15 seconds.

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 8:46 am
by rimai
never mind.... something was wrong and it's now lettting me change... don't know what it was though.

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 10:05 am
by Bryan
Not sure if this is a bug or by design, but if the controller is set to read temperature in Celcius, and the Client is set to Fahrenehit, all it does is change the labels on the graph, so for example if the controller returns 25 celcius , client displays 25 F. Should it not be displaying a recalculation, as well the temp drop down boxes do not reflect celcius or fahrenheit values dependent on whether celcius or fahrenheit is selected.

Not complaining just noticed. :) :)

Cheers

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 10:40 am
by dmolton
Bryan wrote:Not sure if this is a bug or by design, but if the controller is set to read temperature in Celcius, and the Client is set to Fahrenehit, all it does is change the labels on the graph, so for example if the controller returns 25 celcius , client displays 25 F. Should it not be displaying a recalculation, as well the temp drop down boxes do not reflect celcius or fahrenheit values dependent on whether celcius or fahrenheit is selected.

Not complaining just noticed. :) :)

Cheers
Right, it doesn't actually do the conversion. It will rely on the controller to send over the correct C or F temperatures. Otherwise I could be converting and already Celsius temperature. All that setting does it change the F or C labels displayed.

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 10:59 am
by dmolton
Roberto, thanks for the feedback :). I never tested what would happen if you were running the incorrect libraries. Nothing good I would guess. I can add in some additional checks to disable the memory functionality if the controller doesn't return 0.8.5.15 minimum. Good suggestion!
rimai wrote:The COM port was wrong and it would never be able to find the controller, but I clicked it on my haste and excitement. I knew that it would eventually get unstuck when the timeout ran out, so I just waited to regain control over the window again.
The same thing happens if the controller does not have v0.8.5.15 or above.
Maybe you could place a check, just so that the application doesn't look like it is frozen if someone like me clicks on it :)
Yeah, what you experienced was a failure of the Listener to respond to the Client within the timout period b/c of the incorrect com port setting. Maybe I can add a property on the Listener - something like "ConnectionOK" that gets set when the Serial Port is successfully opened. I can expose it to the
connected Clients and check to make sure its set to true before making any calls.
rimai wrote: The other minor thing is when I went to change the COM port by going "Settings->Modify-General tab" and clicking button "Launch Service Dash", I changed it in the dashboard, saved and hit close. Although it had changed, it did not show up on the General tab immediately. Only when I came back to the tab again. I think it only refresh when it is loaded or something. I does the same thing when I switched from COM to wifi and vice-versa.
Very cool stuff :)
Yup, when the tab loads it reads and displays the configuration settings from the config file. When you launch the Service Dash, because it needs elevated admin privileges to run, it's not part of the Client and actually starts a separate process with the separate ServiceDash executable. The problem being, when you're finished with the dash util - it doesn't notify the Client executable that it's finished and should update. I think some lower level Win32 calls/handlers will need to be put in place for that to happen. I do some similar stuff when first launching the application to make sure the process isn't already running and if it is, I maximize and display it. Shouldn't be too bad to get it working and would definitely be useful.

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 11:52 am
by aranax
I got further but still no go for me.

What I did:
- uncommented #define wifi as it was commented out.
- I got an error compiling saying my sketch was too big so I commented out #define wavemaker to make space.
- Code compiled and was uploaded to the controller successfully.
- I launched RA client
- Accessed the menu to stop the logger and listener
- Exited the RA Client (not just minimized)
- double checked to make sure nothing else was running that would interfere with Com4 (my set com port)
- Launched the serial reader
- Connected to com4 successfully (got the message saying "listening")
- Hit send BUT NOTHING HAPPENED.

- Get/ r99 was present in the send box but hitting the send button did not output anything.

The RA Client still does not connect and the Dev Lib version is still a bunch of X's. I'm sure I'm missing something or doing something wrong as everyone else can connect, I just don't know what it is :).

Jeremiah

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 12:11 pm
by dmolton
Did you change the "To Send" field at all?

The text in there has to read exactly "GET /r99 ". Notice space between GET and "/". Also there is a trailing space at the end of the 99.

A stupid question, I'm sure, but the USB TTL cable is still connected between the computer and the controller, correct?

The Client is showing stopped/not connected because the Listener service is probably not running. You need to manually start it up again after you stop it. Otherwise it will start automatically the next time you restart your computer.

Since you were able to connect and upload with the Arduino IDE - Maybe just open that up again and verify the COM port and Baud rate once more just to make sure and then close it out and try again.

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 12:21 pm
by aranax
I did not touch the To Send field at all. The GET /r99 was already there. When I relaunched the RAClient I restarted the services but still no go.

The controller is still connected.

I verified the COM Port (COM4) and baudrate in Arduino and made sure the settings were exactly the same for the RAClient and RA Serial Reader.

Still no go.

I relaunched Arduino to see see if I can connect and I was able to upload my sketch without issue. All settings were the same as before (COM4 BR 57600). I'm not running at 115200 even though the Optiboot supports that BR.

Is there something else I should check?

Jeremiah

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 12:30 pm
by dmolton
In the Client go to View -> Error Log

Maybe there will be something in there that can explain what's going on. The Listener, Logger and Client all write to the same log file so if one of them is acting up - should be in there.

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 1:04 pm
by bmhair03
Im having the same problem but Im using wifi. have check Features wifi is un commented.
Heres the error log

*****7/21/2011 9:37:19 AM*****
Message:
Inside WifiSend:
The server committed a protocol violation. Section=ResponseStatusLine
StackTrace:
at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
at System.Net.WebClient.DownloadString(Uri address)
at System.Net.WebClient.DownloadString(String address)
at ReefAngelWCFListener.ReefAngelListener.WifiSend()

*****7/21/2011 11:18:07 AM*****
Message:
StartIndex cannot be less than zero.
Parameter name: startIndex
StackTrace:
at System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy)
at ReefAngelWCFListener.ReefAngelListener.GetAllMemoryValues()

*****7/21/2011 11:18:07 AM*****
Message:
Value cannot be null.
Parameter name: String
StackTrace:
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at ReefAngelClient.Form1.DisplayMemoryValues()

*****7/21/2011 11:18:14 AM*****
Message:
Inside WifiSend:
The server committed a protocol violation. Section=ResponseStatusLine
StackTrace:
at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
at System.Net.WebClient.DownloadString(Uri address)
at System.Net.WebClient.DownloadString(String address)
at ReefAngelWCFListener.ReefAngelListener.WifiSend()

*****7/21/2011 11:18:14 AM*****
Message:
StartIndex cannot be less than zero.
Parameter name: startIndex
StackTrace:
at System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy)
at ReefAngelWCFListener.ReefAngelListener.GetAllMemoryValues()

*****7/21/2011 11:18:14 AM*****
Message:
Value cannot be null.
Parameter name: String
StackTrace:
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at ReefAngelClient.Form1.DisplayMemoryValues()

*****7/21/2011 11:18:20 AM*****
Message:
Inside WifiSend:
The server committed a protocol violation. Section=ResponseStatusLine
StackTrace:
at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
at System.Net.WebClient.DownloadString(Uri address)
at System.Net.WebClient.DownloadString(String address)
at ReefAngelWCFListener.ReefAngelListener.WifiSend()

*****7/21/2011 11:18:20 AM*****
Message:
StartIndex cannot be less than zero.
Parameter name: startIndex
StackTrace:
at System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy)
at ReefAngelWCFListener.ReefAngelListener.GetAllMemoryValues()

*****7/21/2011 11:18:20 AM*****
Message:
Value cannot be null.
Parameter name: String
StackTrace:
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at ReefAngelClient.Form1.DisplayMemoryValues()

*****7/21/2011 11:18:36 AM*****
Message:
Inside WifiSend:
The server committed a protocol violation. Section=ResponseStatusLine
StackTrace:
at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
at System.Net.WebClient.DownloadString(Uri address)
at System.Net.WebClient.DownloadString(String address)
at ReefAngelWCFListener.ReefAngelListener.WifiSend()

*****7/21/2011 11:26:49 AM*****
Message:
Inside WifiSend:
Unable to connect to the remote server
StackTrace:
at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
at System.Net.WebClient.DownloadString(Uri address)
at System.Net.WebClient.DownloadString(String address)
at ReefAngelWCFListener.ReefAngelListener.WifiSend()

*****7/21/2011 12:24:18 PM*****
Message:
Inside WifiSend:
The underlying connection was closed: The connection was closed unexpectedly.
StackTrace:
at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
at System.Net.WebClient.DownloadString(Uri address)
at System.Net.WebClient.DownloadString(String address)
at ReefAngelWCFListener.ReefAngelListener.WifiSend()

*****7/21/2011 12:26:18 PM*****
Message:
This request operation sent to net.tcp://localhost:8733/Design_Time_Addresses/ReefAngelWCFListener/ReefAngelListener/ did not receive a reply within the configured timeout (00:00:59.9990000). The time allotted to this operation may have been a portion of a longer timeout. This may be because the service is still processing the operation or because the service was unable to send a reply message. Please consider increasing the operation timeout (by casting the channel/proxy to IContextChannel and setting the OperationTimeout property) and ensure that the service is able to connect to the client.
StackTrace:

Server stack trace:
at System.ServiceModel.Dispatcher.DuplexChannelBinder.SyncDuplexRequest.WaitForReply(TimeSpan timeout)
at System.ServiceModel.Dispatcher.DuplexChannelBinder.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at ReefAngelClient.ReefAngelService.IReefAngelListener.GetAllMemoryValues()
at ReefAngelClient.Classes.MemoryController.GetMemoryValues(ReefAngelListenerClient raService)
at ReefAngelClient.Form1.RefreshMemoryValues()

*****7/21/2011 1:00:27 PM*****
Message:
Could not connect to net.tcp://localhost:8733/Design_Time_Addresses/ReefAngelWCFListener/ReefAngelListener/. The connection attempt lasted for a time span of 00:00:01.9910000. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:8733.
StackTrace:

Server stack trace:
at System.ServiceModel.Channels.SocketConnectionInitiator.Connect(Uri uri, TimeSpan timeout)
at System.ServiceModel.Channels.BufferedConnectionInitiator.Connect(Uri uri, TimeSpan timeout)
at System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan timeout)
at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICallOnce.Call(ServiceChannel channel, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeSpan timeout, CallOnceManager cascade)
at System.ServiceModel.Channels.ServiceChannel.EnsureOpened(TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at ReefAngelClient.ReefAngelService.IReefAngelListener.Subscribe()
at ReefAngelClient.Form1.bwConnect_DoWork(Object sender, DoWorkEventArgs e)

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 1:34 pm
by dmolton
bmhair,

so you're not seeing any kind of response on the Client screen?? Does the temperature and pH at least display?

It kind of looks like you're seeing the errors when you're attempting to read/write memory functions.. And then the last one was the Client unable to connect to the Listener. What version of the Dev Libs do you have running on the controller?

Take a look inside Settings -> General.

Launch the service dash and stop the Listener Service.

use the IP address and the port number you have in the settings screen and replace the bold parts below with your settings

http://192.168.1.110:2000/r99
http://192.168.1.110:2000/ma
http://192.168.1.110:2000/d

The bold parts should look similar to what you're pulling from the settings screen, an ip address and a port.
Report back with what is being displayed in the browser when you type in those modified urls above.


Also Close teh RA Windows Gadget if you're running it. It actually negatively interferes with the Listener

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 1:59 pm
by bmhair03
Hey dave , I see no temp or ph. I havent tried to change any memory yet, but did open the window looking around. I updated to curts latest from your link. Going to do what you askd and will get back

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 2:11 pm
by bmhair03
Show I still get a yellow flash every 15 on the wifi? Im not.

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 7:51 pm
by aranax
Here is my error log after restarting services and refreshing mem data (partial):

*****7/21/2011 7:46:24 PM***** (before realizing service was stopped)
Message:
Could not connect to net.tcp://localhost:8733/Design_Time_Addresses/ReefAngelWCFListener/ReefAngelListener/. The connection attempt lasted for a time span of 00:00:02.0011144. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:8733.
StackTrace:

Server stack trace:
at System.ServiceModel.Channels.SocketConnectionInitiator.Connect(Uri uri, TimeSpan timeout)
at System.ServiceModel.Channels.BufferedConnectionInitiator.Connect(Uri uri, TimeSpan timeout)
at System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan timeout)
at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICallOnce.Call(ServiceChannel channel, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeSpan timeout, CallOnceManager cascade)
at System.ServiceModel.Channels.ServiceChannel.EnsureOpened(TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at ReefAngelClient.ReefAngelService.IReefAngelListener.Subscribe()
at ReefAngelClient.Form1.bwConnect_DoWork(Object sender, DoWorkEventArgs e)

*****7/21/2011 7:50:00 PM***** (service restarted)
Message:
This request operation sent to net.tcp://localhost:8733/Design_Time_Addresses/ReefAngelWCFListener/ReefAngelListener/ did not receive a reply within the configured timeout (00:01:00). The time allotted to this operation may have been a portion of a longer timeout. This may be because the service is still processing the operation or because the service was unable to send a reply message. Please consider increasing the operation timeout (by casting the channel/proxy to IContextChannel and setting the OperationTimeout property) and ensure that the service is able to connect to the client.
StackTrace:

Server stack trace:
at System.ServiceModel.Dispatcher.DuplexChannelBinder.SyncDuplexRequest.WaitForReply(TimeSpan timeout)
at System.ServiceModel.Dispatcher.DuplexChannelBinder.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at ReefAngelClient.ReefAngelService.IReefAngelListener.GetAllMemoryValues()
at ReefAngelClient.Classes.MemoryController.GetMemoryValues(ReefAngelListenerClient raService)
at ReefAngelClient.Form1.RefreshMemoryValues()

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 8:14 pm
by dmolton
nope, definitely didn't help :lol:

Did you ever read any values yet from the Serial Reader utility or see any temps/pH values on the main client screen?

If not, somethings not configured correctly.. Those errors just look to me like the listener isn't handing anything to the Client when the Client asks for it... That's to be expected if the Listener cannot talk to the controller...

it's seriously weird that with the same COM/Baud settings in the serial reader utility that you're not seeing anything come back.. makes me think that the issue might be with the controller not responding to the request:

Code: Select all

"GET /r99 "

I know for sure that if we can't get it responding correctly with the Serial Reader utility, than it's hopeless for the Listener/Client to work properly either.

Stop both services again and exit the client fully.
Try download a fresh copy of Curt's dev libraries I linked above. (0.8.5.16).
Comment out everything in the Features.h file except for #define wifi.

Reupload with just #define wifi enabled and see what happens when you run and connect with the serial reader util. Once connected push the send button and see if you get something back.

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 8:19 pm
by aranax
I have no idea what's going on. I have a PWMExpansion so for shits and giggles I uncommented the #define PWMExpansion in the features.h file. I got a compile error so I commented the exact line back out. No I still have the compile error...

I'm gonna restart, do a rain dance then pray.

Jeremiah

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 8:29 pm
by aranax
PROGRESS.

I commented EVERYTHING out except wifi. I sent GET /r99 through the Arduino serial monitor and got this:

€˜`f˜f€f††€xðð€˜˜ž˜æ€˜€f††ø†~fž†~À˜fxfžxž˜øž~žfžàžæ€˜€˜žž€žfžæ†˜þžøž`†øæžàž˜€žþžæ†~þžfxà†

I then closed Arduino and launched the RA Serial Reader and ran GET /r99 and got this:
??`
f?f?f???xp??????????f????~f??~??fxf?x????~?f???????
?????f????????`?????????????~??fx??

yay for gibberish!

Jeremiah

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 8:30 pm
by dmolton
Incorrect baud rate?

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 8:33 pm
by rimai
Make sure you are using 57600 baud on the Client. That seems like mismatched baud rate.

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 8:34 pm
by aranax
dunno...they match in arduino and the RA Client. I can refresh the memory tab now but there is no PH or anything else. Might be because I commented everything out. I'm going to uncomment one by one and give an update.

J

Re: Client Suite 2.2

Posted: Thu Jul 21, 2011 8:37 pm
by dmolton
The Client doesn't update immediately.. It can take up to 15 seconds or so before you see values on the main screen (Temp/pH).

If you are seeing correct memory values... and all the fields on the Memory tab are filled in with the right information I think you're there... If there's blank fields and a lot of 0's then not so much.