I am using ESP8266 with SMING ver2.1
To enable Access Point, I have the following code in init()
WifiAccessPoint.enable(true);
WifiAccessPoint.config("TestAP", "", AUTH_OPEN);
The above code works fine. However, when I run the code outside of init(), ESP8266 does not become an AP.
Not sure if it is a SMING bug or just my fault. Did someone else encounter the same problem?
Related
I'm out of my wits. I'm trying to set up remote debugging of lua code in dockerized openresty. I use PHPStorm with EmmyLua extension, and the mobdebug library on the Lua end. I have been reading and hearing reports of this working for people, but for me stopping on a breakpoint (or immediately after mobdebug.start()) works about 15% of the time (evidence that I am not completely misconfiguring the thing), including exactly 0% of those places in my code that I actually want to debug.
I will not be debugging this issue. I intend to work around it by using an exact setup that is known to work, so I need someone for whom it does work to tell me what their setup is:
OS version
openresty version
mobdebug version
any custom patches or hacks you might have applied to get the debugging working
luasocket version (probably relevant)
PHPStorm version
EmmyLua version
docker and docker-compose version, if applicable
whatever you may suspect to be relevant
I am willing to completely raze my development environment and rebuild it exactly to the working spec, just to have working Lua debugging.
EDIT: for those interested, here are my detailed symptoms:
I can't stop at actual breakpoints, ever (i.e. after I initially stop after mobdebug.start() and then "Resume program" and a line with a breakpoint is hit, but it doesn't stop there)
I can stop after mobdebug.start() in code executed from init_by_lua_block, i.e. once per server start / config reload
I can't stop after mobdebug.start() in any code executed during handling a request, i.e. ssl_certificate_by_lua_block, rewrite_by_lua_block etc. This is probably understandable because coroutines are involved
All my attempts at enabling coroutine debugging in request handling code either error out or have no effect:
mobdebug.coro() in init_worker_by_lua_block() errors out with "API disabled in current context" somewhere in mobdebug.lua
mobdebug.on() in the function I want to debug either has no effect, or errors out with "attempt to yield across C-call boundary"; I haven't discerned the pattern yet.
stopping on a breakpoint (or immediately after mobdebug.start()) works about 15% of the time
Stopping after mobdebug.start() should work under all circumstances, except when there is a connection already established to the same debugger controller, so the fact that it doesn't usually points to the system that tries to establish multiple debugging sessions to the same controller/IDE (or no connection can be established at all).
Similarly, there are several reasons why breakpoints may not be working, but if they work in a file as part of a specific setup, then I'd expect them to always work in that case. Some of the reasons why breakpoints may not be working are listed in the documentation: https://studio.zerobrane.com/doc-faq#why-breakpoints-are-not-triggered.
mobdebug provides a command line-based controller, so for troubleshooting purposes it may be easier to use that instead of a more complex setup.
We have used Google Cloud Print Service for a few years now, very successfully. Periodically we have issues with print jobs failing, where restarting the Cloud Print Service and the Print Spooler will fix it. That is not the case today.
Today, I am able to print directly to the printer, both from my computer and from the server where we host Google Cloud Print Service. When I attempt to print from Google Cloud Print, I see the print job appear in the queue on the server, and then disappear, and in the Cloud Print queue it simply says "error" with no details on what is happening.
I restarted the print service with logging enabled, attempted to print again, and checked the debug log, with no details present. I'm stumped.
EDIT: After finding the correct debug log, I see this:
CP_CONNECTOR: Job failed (spool failed)
Has anyone dealt with this before, or know of a solution?
Things I have already tried:
Re-connecting Cloud Print Service to our Google account
Re sharing all printers
Reinstalling Cloud Print Service
Restarting the server
Reinstalling printers
After doing many many things, and finally getting Google support on the line, we determined it was a glitch in the Cloud Print Service. The work around, which I was unaware of, and the reason I'm posting this answer, was to use the Chrome Connector.
You can get to that by visiting chrome://devices and then sharing the printers through that form, which looks identical to the one that you get with the Cloud Print Service. I recommend clearing your printer list from Cloud Print first, so you don't get confused.
Once you've shared them, you can then share the printer through Cloud Print just as you would have before.
The only caveat, and the reason this is a work around and not a fix, is that you have to maintain an open Chrome session, meaning you have to keep chrome open for the printers to work. That's fine for us, as there is always a chrome tab open on the server anyway, but it may not work for you long-term.
I have installed the Beta version of chrome, and it seems to resolve the issue. I had this issue on 3 of my 11 servers. All where running stable versions. It was odd that only 3 where not allowing google to print. Once I installed the 64bit beta version, I was able to print. As long as the server was running the Version 53, people could print. It did not matter if someone had a version 52 on there computer. Hope this helps.
I'm new to all this programming stuff, but trying to learn. I've had moderate success, but feel like it's more accidental than intentional. I'd appreciate help learning and understanding AppleScript in particular and networking, automation and programing in general.
Here's the environment: Almost all Apple with two Minis, a couple of laptops and various iOS devices including an AppleTV. The network consists of an Apple Airport Extreme, and an older D-Link switch I rescued (with permission) from the recycle bin at work. There are three Foscam wi-fi cameras as well. One of the Mini's (named Dora) is acting as a file server running Yosemite and the OS X Server application with a growing RAID 1 array for media storage.
What I’d like to be able to do is to run a single AppleScript from my laptop (Adam’s Macbook) that does the following:
Launch the application iCamSource on Adam’s Macbook
Change “Require Password to Wake” to true on Adam’s Macbook
Quit iTunes on Adam’s Macbook if it’s running
Start the current ScreenSaver locking Adam’s Macbook
Quit iTunes on Dora if it’s running
Start the current ScreenSaver on Dora if it’s not already running thereby locking Dora
I’d also like to have a single script on Adam’s Macbook that reverses these actions.
I have been able to launch iCamSource, set “Require Password to Wake” to true and start the ScreenSaver on Adam’s Macbook with a lot of Google-Fu, much trial and error, and quite a bit of frustration. I’ve not yet tried to quit iTunes if it’s running. That’s a new idea/requirement, but I think it should be pretty simple to add to the functioning script.
Where I’m running into trouble is controlling Dora from a script on Adam’s Macbook. I run into access errors (905 and 927 generally) about half to two thirds of the time I run the script. I’ve tried every syntax option and many combinations of syntax that I found via Google searches, but this is the one that has the most (but still inconsistent) success.
set remoteMachine to "eppc://remoteMachineadam:slajdlll#10.0.1.2"
tell application "iTunes" of machine remoteMachine
quit
end tell
When reading various articles explaining how to do this, sometimes the scripts use eppc, others use epps and I’ve not seen a consistent result with either one. Some of the articles use the actual IP address of the remote machine, others use password#name.local, so that syntax would be slajdlll#dora.local. That change also seems inconsistent in its results.
This seems to be a pretty basic task, and I’ve found lots of articles that do this very thing, but their methods don’t work in my environment. Many of the articles I’ve read are quite old, so the syntax may be out of date. I’m kind of at my wits end, but feel I should be able to make this work. Any help y’all could provide would be VERY appreciated.
Update - I had the scripts working last night in all regards except controlling the remote machine. This morning, I tried to open the "Away" script to again tackle the remote control issue and I get a Syntax Error Unable To Authenticate User message and the script won't compile. Here's the code:
tell application "System Events"
try
tell application "iTunes" to quit
end try
try
tell application "iTunes" of machine "eppc://Dora.local" to quit
end try
tell security preferences
set require password to wake to true
tell application "iCamSource" to activate
tell application "System Events" to start current screen saver
end tell
end tell
Both "Away" and "Home" scripts run from the AppleScript menu. When I unlock the ScreenSaver after running the "Away" script I get a dialog box stating "There was a problem connecting to the server "Dora's Airport Extreme. The share does not exist on the server. Please check the share name, and then try again." I'm beginning to think I may have a Permissions error on one or more of the machines, or if there's another problem that's making the scripts act inconsistently.
Thanks for all the help so far!
UPDATE Ok, it seems that there was a problem with iPhoto and Screen Saver interacting with the files on the networked hard drive. Opening iPhoto and slowly opening each image and re-linking those that had lost their location seems to have solved that problem. I am still encountering the access error code 905. In order to troubleshoot this process, I'm stripping the script down to one task, to quit iTunes on the remote machine named "Dora" Here's the code:
set Dora to "epps://adam:slajdlll#10.0.1.2"
try
tell application "iTunes" of machine Dora to quit
end try
Here's the event log that running that script generates:
tell application "iTunes" of machine "eppc://epps/adam%253kslajdlll%4010.0.1.2.local"
quit
--> error number -905
end tell
Is it possible/probable that the OS X Server application is mis-configured and is preventing the script from controlling the remote machine? Any other thoughts or things to try?
Thanks!
UPDATE 2
In the Groups section of the OS X Server application running on the remote machine, I found that there is a group called Apple Remote Events ACL. When I click the Edit button to view it's settings I see the actual account name is "com.apple.access_remote_ae-disabled". I wonder if this is telling us something. I searched several libraries for "com.apple.access" thinking it may be something that could be edited, but found nothing. I'm a member of that group. I tried removing myself from the group and tried the script with no change in the results so I added myself back into it.
UPDATE 3
As suggested I'm trying to eliminate OSX Server from the equation. To do this I'm going to try to launch TextEdit (since it's faster to launch than iTunes) on a third machine, known as Office Mini that does not have the Server application on it. Here's the script:
set OfficeMini to "eppc://10.0.1.196"
try
tell application "System Events" of machine OfficeMini
open "/Applications/TextEdit.app"
end tell
end try
When I ran the script initially I got two dialog boxes asking for username and password. I supplied them and checked the "Save in Keychain" checkbox. The script didn't open TextEdit, but I'm not getting the access errors. I am getting different errors though, -600 or -10010 depending on if I use System Events or the Finder. Using the list on this page: Nicholas Reilingh AppleScript Error Codes I find that with System Events I get an error -600 which means the application isn't running. That's no surprise, I'm trying to open it. When I use the Finder instead of System Events, I get an error -10010 which the list indicates is "Handler can’t handle objects of this class." So, there's progress, but I'm still stumped.
UPDATE 4 To further clarify/simplify, I tried running a simple script to open iTunes on the Office Mini locally on that machine and it worked fine.
tell application "iTunes" to activate
Substituting the "quit" for "activate", and trying this syntax with several different applications all worked quite well and very fast. I tried the same script and variations on the Dora machine with the same, successful results.
I then tried to make that syntax work remotely with this code:
set OfficeMini to "eppc://10.0.1.196"
tell application "iTunes" of machine OfficeMini to quit
I got this error message in the event log:
tell application "iTunes" of machine "eppc://10.0.1.196"
quit
--> error number -927
Result:
error "iTunes got an error: Unable to authenticate user." number -927
So, since OSX Server isn't running on the Office Mini, this seems to eliminate that as a culprit for the error. I tried altering the code with another variant I saw online that uses "epps" in place of "eppc" which results in a similar error message: "iTunes got an error: Remote access isn’t allowed." number -905. I did not get dialog boxes requesting credentials. When I've seen the "epps" string used online, it was formatted as "epps://username:password#location" so I used "epps://adam:slajdlll#10.0.1.196" and received the same error message. I even tried "Adam" in place of "adam" with no change in the results.
Yes, step 1 is to try to make your script as simple as possible to narrow down the point of failure.
I have copied your minimal script onto my machine & gotten it to work:
set Dora to "minipuppy.local"
try
tell application "iTunes" of machine Dora to quit
end try
A few notes:
I used "minipuppy.local" (the Bonjour linklocal name) rather than your eppc stuff, because I know what the former is, but not the latter. (You can get the link local name from the Sharing prefs panel* where it says "Computers on your local network can access your computer at:XXXXX"
An authentication dialog popped up saying that I needed to enter the username and password for the target machine - but it did have
an eppc address in the dialog (I didn't take a screenshot :-( )
After entering the username/password my script did nothing. Interestingly, I could not get it to print out a log as yours has?
I fixed this by going to the target Mac's System Preferences & enabling "Remote Apple Events" in the Sharing panel*. After turning that on, my script worked.
I'm hoping enabling "Remote Apple Events" is the ultimate solution to your simplified problem.
*Apple Menu -> System Preferences -> Sharing
The program starts correctly if I double-click it or if I debug it from VS2010, but it doesn't respond when I try running it from Services.msc. It used to work just fine, but I tried to un-register and then re-register the service to fix a different bug and now I get the following error:
Could not start the PFAdapterMng service on Local Computer.
Error 1053: The service did not respond to the start or control request in a timely fashion.
I tried putting logs at the beginning of main(), and I found out that the service stops responding before it even gets there.
I've tried using Procmon to figure out if there's some registry key missing, but I couldn't find any problems through Procmon.
I've also tried re-registering the service to try to fix it, since re-registering the service was what caused the error in the first place. It doesn't seem to fix anything either.
I've stepped through the program with the parameters -UnregServer and -Service to ensure that the program was being unregistered and registered successfully, and it looks like it's being registered as a service correctly.
Is this because of some error in the registry? I don't see how or why my program stops responding before it even gets to main().
What else could I try to do to debug this problem?
UPDATE:
So, I tried un-registering the service after trying to run it, and it seemed to work fine. I look in services.msc, and I still see that the application is a service. In the past, before I got error 1053, it would just disappear after the first time. I tried un-registering it again, and I got a message box:
Service could not be deleted
So I decided to run the application with the parameter -UnregServer inside of Visual Studio 2010 to figure out what the error is. The function DeleteService() is failing with the error:
ERROR_SERVICE_MARKED_FOR_DELETE
The service is not removed until all open handles to the service have been closed. I stepped through the calls to the CloseServiceHandle() function and it seems like the handles were closed successfully. The service is also not removed if the service is running. I checked Process Manager, and the service was not running. Is the service not being removed because the service stopped responding earlier?
I tried restarting my computer and it was gone. Still, I don't understand why I have to restart my computer when the service used to un-register without the need of a restart before I was getting error 1053. Unless of course I can't un-register the service because the service was not stopped because it stopped responding.
I'll keep trying some more things, but I'm running out of ideas.
UPDATE2:
I tried rebuilding the original application, which I know worked as a service. This means the problem is not related to any of my code. Something is messed up with the Services Control Manager. I don't understand why I only get this error with this application. I have another application which communicates with this application which also needs to be registered as a service. I have no problems with that application. It works perfectly.
But for some reason, this application just stopped responding all of a sudden. I don't know what I changed or broke to cause the service to hang before it even gets to my main() function. The only thing I can think of now to fix the problem is to reformat the server, which is not an option.
Thanks,
Krzys
I feel stupid.
I've been using Remote Desktop Connection to connect to this server. Well, the service is starting and erroring out. The reason I didn't see any errors or message boxes was because they were appearing on the console session. I was not connected to the console session. I connected to the server using:
mstsc.exe /admin
And now I can see where the program stops responding.
Feels great to waste 10 hours though.
I have a windows service that is failing to start, giving an error "Error 1053: The service did not respond to the start or control request in a timely fashion".
Running the service in my debugger works fine, and if I double click on the the service .exe on the remote machine a console window pops up and continues to run without problem - I can even see log messages showing me that the program is processing everything the way it should be.
The service had been running fine previously, though this is my first time, personally, trying to deploy it with the most recent changes made to the program. I've evaluated those changes and cant figure out how they might cause this problem, particuarly since everything runs fine when not started as a service.
The StartRoutine() method of the service impelmentation is empty, so should be returning in a "timely fashion".
I've checked the event logs on the computer, and it doesn't give any additional information other than it didn't hear back from the service in the 30 second requisite time frame.
Since it works on my machine, and as a double-clicked executable, how would I go about figuring out why it fails as a service?
Oh, and it's .NET 2.0, so it shouldn't be affected by the 1.1 framework bug that exhibited this symptom (http://support.microsoft.com/kb/839174)
The box is a windows server 2003 R2 machine running SP2.
This is a misleading error. It's probably an unhandled exception.
Empty your OnStart() handler then try this in your constructor...
public MainService()
{
InitializeComponent();
try
{
// All your initialization code goes here.
// For instance, my exception was caused by the lack of registry permissions
;
}
catch (Exception ex)
{
EventLog.WriteEntry("Application", ex.ToString(), EventLogEntryType.Error);
}
}
Now check the EventLog on your system for your Application Error.
Could be a number of things and it might help to get a stack trace on the machine exhibiting the problem. There are a number of ways to do this but the point is that you have to see where this is failing in the code.
You can do this with remote debugging, but a simple thing might be to just log to the event logger, or file log if you have that. Literally, putting "WriteLine("At class::function()") throughout portions of the code to see if you've made it there.
This will at least get you looking in the right direction (which ultimately is the code).
Update:
See Microsoft's How to Debug Windows Services article for details in troubleshooting startup problems using WinDbg.
This related question details nice ways to debug services that are written in .NET.
I agree with Scott, the easiest way to find out what's happening is to put some traces in the start-up code (maybe it doesn't even come to your start-up code).
If this doesn't help, you can post your code here so others can take a look.
perhaps lacking some dependence, try this :
- deregister your service
- register again
If fail at register means that lack an module.
If the StartRoutine is empty, you are probably starting it somewhere else.
IIRC you need to fire off a worker thread, and then return from StartRoutine.
One of the problems which may lead to this error is if windows service which needs to be deployed consists of some error i.e it may be simple authorization error or anything as in my case I have referenced some folders and files for logging which were not existing, but when provided the right path of those file and folders it solved my problem.
I ran through every post on this particular subject and none of the responses solved the problem, so I'm adding this response in case this helps someone else. Admittedly this only applies to a new service, not this specific case.
I was writing a File listening service. As a console app, it worked perfectly. When I ran it as a service, I got the same error as above. What I didn't know (and many of the MSDN articles about services conveniently leave out) is that you need to have your class executed from within ServiceBase.Run( YourClassName());. Otherwise, your app executes and immediately terminates and because it terminated, you get the error above even if no error or exception occurred. Here is a link to an article about this. It actually discusses setting up your app for dual use - Console app and service: Create a combo command line / Windows service app
I had that issue and the source of my problem was config file. I edited it in notepad and notepad added one special character which cause service not to run properly because config file was ruined. I saw that special character in notepadd++ and after delete it, service started to run successfully as previous did.
In my case, the correct .NET framework was not installed on the server that I was installing the Windows service on.
One other reason is If you copy the DLL in 'debug' mode to installation folder this issue will come.What you need to do is Run the project in 'Release' mode copy the DLL or directly form Release folder rather than Debug folder,,and copy that DLL in to installation folder,it will work.You can see the reduction in size of DLL ,it will not contain any debug symbols and like that