Jump to content
The simFlight Network Forums

Pete Dowson

Moderators
  • Posts

    38,265
  • Joined

  • Days Won

    170

Everything posted by Pete Dowson

  1. Yes, I think I'm going to have to. Two answers to that: 1) I can provide free keys for true freeware. The rest of FSUIPC doesn't have to work to allow applications to interface to it. The user doesn't get any options if he doesn't pay, and other programs won't work unless they are keyed in or subscribed. 2) If someone else did a replacement for FSUIPC then that would also be good. I could get on with something else, something that did earn money. It's just that for several years it has been a FULL TIME job, which doesn't look like lessening, and I cannot afford it now I've only got a pension to look forward to. You should not worry. I am thinking through all the angles and devising ways of doing everything needed. I am going to be as fair as I can be. Regards Pete
  2. I don't use C# but in C/C++ these are what they say -- type "float". You just read them into a variable defined as "float". This is why I defined them like this, to save you any conversion problems! It was different in the FS98 offsets areas, those units were feined by MS long before I started this stuff. Pete
  3. I tested this today and it works fine here. I cannot think what is wrong there. Make sure you have a line AFTER the ControlName line, just in case. Maybe Windows doesn't read parameters which don't end in a new line control. Pete
  4. Yes. FSUIPC consists only of a DLL. One module. When you place it into the FS Modules folder it replaces any previous one. It has to -- you can only have one file with that name. The file system does not allow multiple files with the same name in the same place. Just never RENAME FSUIPC to anything else. Flight Sim loads any modules it finds in the Modules folder, it doesn't care about the name, so you can easily get duplicates then -- but only by renaming. Don't do that and you won't get into trouble. Pete
  5. If you mean via the FSUIPC interface, there is none. The interface provides access to FS's internal settings for each engine. However, there is a facility for "throttle sync" -- if you set bit 2^4 (i.e. value 16) in the byte at offset 310A (=12554 decimal) then your throttle 1 values will be applied to the other three. You can access this facility also through a Hot Key, programmed in the FSUIPC Hot Keys page. That's a question for Andrew at http://www.747mcp.com I think. Pete
  6. The error numbers don't go up that high. Maybe 10040 or 10044? The numbers and their messages are just those returned by Winsock (or, in your case, presumably an emulation of WinSock?). Here's a full list for you (in name order, not number. sorry). Looks like yours was 10044? If so then the Linux implementation of WinSock does not support the facilities needed by WideFS. In case it helps, these are the calls used by WideFS to obtain a socket: For IPX/SPX (uses SPX, sequential packets) socket(AF_NS, SOCK_SEQPACKET, NSPROTO_SPX) : For TCP/IP (uses IP streaming, not UDP) socket(AF_INET, SOCK_STREAM, 0); ======================================= The following is a list of possible error codes returned by the WSAGetLastError call, along with their extended explanations. Errors are listed in alphabetical order by error macro. Some error codes defined in Winsock2.h are not returned from any function—these are not included in this topic. WSAEACCES (10013) Permission denied. An attempt was made to access a socket in a way forbidden by its access permissions. An example is using a broadcast address for sendto without broadcast permission being set using setsockopt(SO_BROADCAST). Another possible reason for the WSAEACCES error is that when the bind function is called (on Windows NT 4 SP4 or later), another application, service, or kernel mode driver is bound to the same address with exclusive access. Such exclusive access is a new feature of Windows NT 4 SP4 and later, and is implemented by using the SO_EXCLUSIVEADDRUSE option. WSAEADDRINUSE (10048) Address already in use. Typically, only one usage of each socket address (protocol/IP address/port) is permitted. This error occurs if an application attempts to bind a socket to an IP address/port that has already been used for an existing socket, or a socket that wasn't closed properly, or one that is still in the process of closing. For server applications that need to bind multiple sockets to the same port number, consider using setsockopt(SO_REUSEADDR). Client applications usually need not call bind at all—connect chooses an unused port automatically. When bind is called with a wildcard address (involving ADDR_ANY), a WSAEADDRINUSE error could be delayed until the specific address is committed. This could happen with a call to another function later, including connect, listen, WSAConnect, or WSAJoinLeaf. WSAEADDRNOTAVAIL (10049) Cannot assign requested address. The requested address is not valid in its context. This normally results from an attempt to bind to an address that is not valid for the local machine. This can also result from connect, sendto, WSAConnect, WSAJoinLeaf, or WSASendTo when the remote address or port is not valid for a remote machine (for example, address or port 0). WSAEAFNOSUPPORT (10047) Address family not supported by protocol family. An address incompatible with the requested protocol was used. All sockets are created with an associated address family (that is, AF_INET for Internet Protocols) and a generic protocol type (that is, SOCK_STREAM). This error is returned if an incorrect protocol is explicitly requested in the socket call, or if an address of the wrong family is used for a socket, for example, in sendto. WSAEALREADY (10037) Operation already in progress. An operation was attempted on a nonblocking socket with an operation already in progress—that is, calling connect a second time on a nonblocking socket that is already connecting, or canceling an asynchronous request (WSAAsyncGetXbyY) that has already been canceled or completed. WSAECONNABORTED (10053) Software caused connection abort. An established connection was aborted by the software in your host machine, possibly due to a data transmission time-out or protocol error. WSAECONNREFUSED (10061) Connection refused. No connection could be made because the target machine actively refused it. This usually results from trying to connect to a service that is inactive on the foreign host—that is, one with no server application running. WSAECONNRESET (10054) Connection reset by peer. An existing connection was forcibly closed by the remote host. This normally results if the peer application on the remote host is suddenly stopped, the host is rebooted, or the remote host uses a hard close (see setsockopt for more information on the SO_LINGER option on the remote socket.) This error may also result if a connection was broken due to keep-alive activity detecting a failure while one or more operations are in progress. Operations that were in progress fail with WSAENETRESET. Subsequent operations fail with WSAECONNRESET. WSAEDESTADDRREQ (10039) Destination address required. A required address was omitted from an operation on a socket. For example, this error is returned if sendto is called with the remote address of ADDR_ANY. WSAEFAULT (10014) Bad address. The system detected an invalid pointer address in attempting to use a pointer argument of a call. This error occurs if an application passes an invalid pointer value, or if the length of the buffer is too small. For instance, if the length of an argument, which is a SOCKADDR structure, is smaller than the sizeof(SOCKADDR). WSAEHOSTDOWN (10064) Host is down. A socket operation failed because the destination host is down. A socket operation encountered a dead host. Networking activity on the local host has not been initiated. These conditions are more likely to be indicated by the error WSAETIMEDOUT. WSAEHOSTUNREACH (10065) No route to host. A socket operation was attempted to an unreachable host. See WSAENETUNREACH. WSAEINPROGRESS (10036) Operation now in progress. A blocking operation is currently executing. Windows Sockets only allows a single blocking operation—per- task or thread—to be outstanding, and if any other function call is made (whether or not it references that or any other socket) the function fails with the WSAEINPROGRESS error. WSAEINTR (10004) Interrupted function call. A blocking operation was interrupted by a call to WSACancelBlockingCall. WSAEINVAL (10022) Invalid argument. Some invalid argument was supplied (for example, specifying an invalid level to the setsockopt function). In some instances, it also refers to the current state of the socket—for instance, calling accept on a socket that is not listening. WSAEISCONN (10056) Socket is already connected. A connect request was made on an already-connected socket. Some implementations also return this error if sendto is called on a connected SOCK_DGRAM socket (for SOCK_STREAM sockets, the to parameter in sendto is ignored) although other implementations treat this as a legal occurrence. WSAEMFILE (10024) Too many open files. Too many open sockets. Each implementation may have a maximum number of socket handles available, either globally, per process, or per thread. WSAEMSGSIZE (10040) Message too long. A message sent on a datagram socket was larger than the internal message buffer or some other network limit, or the buffer used to receive a datagram was smaller than the datagram itself. WSAENETDOWN (10050) Network is down. A socket operation encountered a dead network. This could indicate a serious failure of the network system (that is, the protocol stack that the Windows Sockets DLL runs over), the network interface, or the local network itself. WSAENETRESET (10052) Network dropped connection on reset. The connection has been broken due to keep-alive activity detecting a failure while the operation was in progress. It can also be returned by setsockopt if an attempt is made to set SO_KEEPALIVE on a connection that has already failed. WSAENETUNREACH (10051) Network is unreachable. A socket operation was attempted to an unreachable network. This usually means the local software knows no route to reach the remote host. WSAENOBUFS (10055) No buffer space available. An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full. WSAENOPROTOOPT (10042) Bad protocol option. An unknown, invalid or unsupported option or level was specified in a getsockopt or setsockopt call. WSAENOTCONN (10057) Socket is not connected. A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using sendto) no address was supplied. Any other type of operation might also return this error—for example, setsockopt setting SO_KEEPALIVE if the connection has been reset. WSAENOTSOCK (10038) Socket operation on nonsocket. An operation was attempted on something that is not a socket. Either the socket handle parameter did not reference a valid socket, or for select, a member of an fd_set was not valid. WSAEOPNOTSUPP (10045) Operation not supported. The attempted operation is not supported for the type of object referenced. Usually this occurs when a socket descriptor to a socket that cannot support this operation is trying to accept a connection on a datagram socket. WSAEPFNOSUPPORT (10046) Protocol family not supported. The protocol family has not been configured into the system or no implementation for it exists. This message has a slightly different meaning from WSAEAFNOSUPPORT. However, it is interchangeable in most cases, and all Windows Sockets functions that return one of these messages also specify WSAEAFNOSUPPORT. WSAEPROCLIM (10067) Too many processes. A Windows Sockets implementation may have a limit on the number of applications that can use it simultaneously. WSAStartup may fail with this error if the limit has been reached. WSAEPROTONOSUPPORT (10043) Protocol not supported. The requested protocol has not been configured into the system, or no implementation for it exists. For example, a socket call requests a SOCK_DGRAM socket, but specifies a stream protocol. WSAEPROTOTYPE (10041) Protocol wrong type for socket. A protocol was specified in the socket function call that does not support the semantics of the socket type requested. For example, the ARPA Internet UDP protocol cannot be specified with a socket type of SOCK_STREAM. WSAESHUTDOWN (10058) Cannot send after socket shutdown. A request to send or receive data was disallowed because the socket had already been shut down in that direction with a previous shutdown call. By calling shutdown a partial close of a socket is requested, which is a signal that sending or receiving, or both have been discontinued. WSAESOCKTNOSUPPORT (10044) Socket type not supported. The support for the specified socket type does not exist in this address family. For example, the optional type SOCK_RAW might be selected in a socket call, and the implementation does not support SOCK_RAW sockets at all. WSAETIMEDOUT (10060) Connection timed out. A connection attempt failed because the connected party did not properly respond after a period of time, or the established connection failed because the connected host has failed to respond. WSATYPE_NOT_FOUND (10109) Class type not found. The specified class was not found. WSAEWOULDBLOCK (10035) Resource temporarily unavailable. This error is returned from operations on nonblocking sockets that cannot be completed immediately, for example recv when no data is queued to be read from the socket. It is a nonfatal error, and the operation should be retried later. It is normal for WSAEWOULDBLOCK to be reported as the result from calling connect on a nonblocking SOCK_STREAM socket, since some time must elapse for the connection to be established. WSAHOST_NOT_FOUND (11001) Host not found. No such host is known. The name is not an official host name or alias, or it cannot be found in the database(s) being queried. This error may also be returned for protocol and service queries, and means that the specified name could not be found in the relevant database. WSA_INVALID_HANDLE (OS dependent) Specified event object handle is invalid. An application attempts to use an event object, but the specified handle is not valid. WSA_INVALID_PARAMETER (OS dependent) One or more parameters are invalid. An application used a Windows Sockets function which directly maps to a Win32 function. The Win32 function is indicating a problem with one or more parameters. WSAINVALIDPROCTABLE (OS dependent) Invalid procedure table from service provider. A service provider returned a bogus procedure table to Ws2_32.dll. (Usually caused by one or more of the function pointers being null.) WSAINVALIDPROVIDER (OS dependent) Invalid service provider version number. A service provider returned a version number other than 2.0. WSA_IO_INCOMPLETE (OS dependent) Overlapped I/O event object not in signaled state. The application has tried to determine the status of an overlapped operation which is not yet completed. Applications that use WSAGetOverlappedResult (with the fWait flag set to FALSE) in a polling mode to determine when an overlapped operation has completed, get this error code until the operation is complete. WSA_IO_PENDING (OS dependent) Overlapped operations will complete later. The application has initiated an overlapped operation that cannot be completed immediately. A completion indication will be given later when the operation has been completed. WSA_NOT_ENOUGH_MEMORY (OS dependent) Insufficient memory available. An application used a Windows Sockets function that directly maps to a Win32 function. The Win32 function is indicating a lack of required memory resources. WSANOTINITIALISED (10093) Successful WSAStartup not yet performed. Either the application hasn't called WSAStartup or WSAStartup failed. The application may be accessing a socket that the current active task does not own (that is, trying to share a socket between tasks), or WSACleanup has been called too many times. WSANO_DATA (11004) Valid name, no data record of requested type. The requested name is valid and was found in the database, but it does not have the correct associated data being resolved for. The usual example for this is a host name-to-address translation attempt (using gethostbyname or WSAAsyncGetHostByName) which uses the DNS (Domain Name Server). An MX record is returned but no A record—indicating the host itself exists, but is not directly reachable. WSANO_RECOVERY (11003) This is a nonrecoverable error. This indicates some sort of nonrecoverable error occurred during a database lookup. This may be because the database files (for example, BSD-compatible HOSTS, SERVICES, or PROTOCOLS files) could not be found, or a DNS request was returned by the server with a severe error. WSAPROVIDERFAILEDINIT (OS dependent) Unable to initialize a service provider. Either a service provider's DLL could not be loaded (LoadLibrary failed) or the provider's WSPStartup/NSPStartup function failed. WSASYSCALLFAILURE (OS dependent) System call failure. Returned when a system call that should never fail does. For example, if a call to WaitForMultipleObjects fails or one of the registry functions fails trying to manipulate the protocol/name space catalogs. WSASYSNOTREADY (10091) Network subsystem is unavailable. This error is returned by WSAStartup if the Windows Sockets implementation cannot function at this time because the underlying system it uses to provide network services is currently unavailable. Users should check: That the appropriate Windows Sockets DLL file is in the current path. That they are not trying to use more than one Windows Sockets implementation simultaneously. If there is more than one Winsock DLL on your system, be sure the first one in the path is appropriate for the network subsystem currently loaded. The Windows Sockets implementation documentation to be sure all necessary components are currently installed and configured correctly. WSATRY_AGAIN (11002) Nonauthoritative host not found. This is usually a temporary error during host name resolution and means that the local server did not receive a response from an authoritative server. A retry at some time later may be successful. WSAVERNOTSUPPORTED (10092) Winsock.dll version out of range. The current Windows Sockets implementation does not support the Windows Sockets specification version requested by the application. Check that no old Windows Sockets DLL files are being accessed. WSAEDISCON (10101) Graceful shutdown in progress. Returned by WSARecv and WSARecvFrom to indicate that the remote party has initiated a graceful shutdown sequence. WSA_OPERATION_ABORTED (OS dependent) Overlapped operation aborted. An overlapped operation was canceled due to the closure of the socket, or the execution of the SIO_FLUSH command in WSAIoctl. ================================== Hope this helps, Pete
  7. I'd prefer you call me "Pete", please. Version 2.85 is very old and not supported. If your program is only checking for that one version then it is wrong. You need to write to the author please and get him to fix it. Pete
  8. Steering is by rudder input, differential thrust, differential braking, or combinations of all three. If you simply want a tiller control to steer like the rudder does then connect it as a rudder axis. I'm pretty sure that's what most cockpit builders will be doing. You'd calibrate it differently of course. Pete
  9. Not that I know of. IS there a nosewheel control in FS? I have never heard of one being implemented. Where have you seen one? Pete
  10. This cannot be a conflict specifically with AdvDisp. AdvDisp has absolutely nothing whatsoever to do with anything weatherwise or graphics. It is simply using standard Windows procedures to show or hide a window. What may be happening is that the extra load on the graphics drivers of having another window being displayed or hidden just at the same time as it is supposed to be making other changes is having adverse effects. Alternatively, there's a timing problem in FS itself in making these changes whilst FS is trying to change other things. Both possibilities were offset considerably in version 2 of AdvDisplay by locking it to FS's frame rate rather than allowing it to be asynchronous. Why so complicated? Why not just have it positioned in a place you like and Lock it, not Dock it? Then use the FSUIPC hotkey facility to show it and hide it. That's what all those new facilities were provided for, exactly to do what you are trying to do in a more complex fashion. Pete
  11. Sorry, no. They are definitely updated. You can check that through FSInterrogate. Project Magnta EICAS displays show the values read from those locations and that works fine. I'm afraid you will need to use a debugger to find the error. Pete
  12. No. If you want actual quantities you simply calculate quantities from capacities and levels. The levels are easier for gauges, representing the distance over for the needles. Regards, Pete
  13. Ah, sorry, that's nothing to do with WideFS. I don't know anything about Multiplayer I'm afraid. I think you need to sort all that out in the FS multiplayer dialogues. Perhaps there are other Squawkbox users here who can help, otherwise maybe their Forum? Regards, Pete
  14. Ah, you've got me there. I've not used that facility for several years. I'm pretty sure it did work, but maybe I've broken it. No one else uses it as far as I know. I'll see if I can find time to check it out within the next day or two. Pete
  15. What's a "Session" in this context? I don't understand. There are no "sessions" in WideFS. Are you getting it mixed up with FS's multiplayer facilities, by any chance? BTW in WideFS you only need the ServerName in the Client ini. It is easier than trying IP addresses. Pete
  16. You didn't need to include the whole logs! Since they are so repetitive an extract would have done. The server isn't receiving the messages from the clients so it times them out and they re-connect each time. The fact that the client sends are piling up may mean they are being blocked at the client end rather than simply getting lost or discarded at the server. I don't know what would do that except a bad Ethernet card (which I've certainly had on occasion). Or maybe the emulation software for WinSock2 on the Linux system isn't implementing all the options? The "no coalescing" one comes to mind -- you could try turning that off (add "TCPcoalesce=Yes" to the [Config] section of the WideClient.ini file -- it's an undocumented option. It introduces stutters in TCP/IP because of the Winsock action of waiting and coalescing small blocks into bigger ones). You could try IPX/SPX as well. It is a lot faster really, just more troublesome on WinNT/XP systems, but better on Win98. Good luck! Pete
  17. Gauges can use FSUIPC. There's a special "module user" package provided in the SDK for this. I know of no way at present to "select a plane" from a program. FSUIPC does find the name of the currently selected plane (and even the AIR file, in FS2002 at least, though that looks doubtful in FS9). The other things can be done through FSUIPC, at least in FS2000 and FS2002. I cannot guarantee their support in future versions, that remains to be seen. The way FSUIPC does these things is by calling or intercepting or interfering with the innards of FS. Getting it to do these things has taken me many many hours of hacking into FS insides using Disassemblers like IDA and Debuggers like Soft-Ice. If there were easy methods provided in a nice easy interface by MS for these things I would not needed to have done this. If you want to do these things in a gauge without using FSUIPC I think you too will be faced with the same sort of work -- and like me, you will have to do it all again on each new version of FS. Microsoft do not build in all possible things into their ready-made interfaces for things like Gauges. The Gauges interface is meant for making aircraft gauges. There really aren't many real-life gauges that can do the things you want in a real aircraft, so they have not provided them. I don't think you can blame them for this, can you? . Regards, Pete
  18. I think that's because the "" you are using are wrongly placed. These are only needed to stop the spaces in "Program Files" and "Microsoft Games" looking to the Command Line executor like the gap before the parameters. However, the space before the /CFG part IS supposed to be seen as the space before the parameters, as /CFGis a parameter, NOT part of the name of the program. The way you have it, Windows is looking for a program called "fs2002.exe /CFG:R172E.CFG". Try it with the second " after the .exe part, which is where the program name ends. Pete
  19. Check the Log files -- both WideServer and WideClient produce logs. It sounds as if one end is disconnecting. If you don't run any applications at all the Server will reset every so often (adjustable) but it shouldn't be that often. It sounds like there's so other error -- but the log should tell you. Not a good choice to test with I think. I'm not sure about FSGarmin, but most certainly to get FlightMax working on WideFS you need to install it on the FS machine AND a remote version on the client. The remote version is a separate download and install. THEN the latter needs to access all the data in the FS installation in order to build its databases and so forth. It is pretty complicated -- there was a lot of instructions for this on the website. I'm sorry, but I don't have the details myself. I suspect FSGarmin is in a similar boat. All this is entirely indepedent of their dealings with WideFS by the way. Ahright. So you have found all that stuff. I think they still need to access FS folders directly and may even need their FS counterparts at least partly if not wholy installed. I hope someone who's got all this working can help you. Regards, Pete
  20. I've no idea, I'm afraid. I hope someone else will be able to help, else I think you may need to try a more relevant forum. Sorry. Pete
  21. That email address you used for me is now defunct. I'd rather deal with all questions, whether support or not, here, as then the answers benefit more folks and it saves me repeating things so much. Also, there is a better chance of someone else chipping in who may know more, or who can help when I'm away. So, yes, please do ask questions if you think I/we might know the answers. Well, up till recently I didn't need the money and preferred to keep things nice and easy, a pure "hobby", for fun. Things have changed rather dramatically. Don't worry, at least FSUIPC and WideFS will become shareware, or payware, with special arrangements for packaged and shareware applications. Regards, Pete
  22. I explain it in words in the SDK programmers guide -- the recently elaborated explanation should surely be clear enough? I don't give expressions as how to do it would be different in each language. Pete
  23. Sorry, there's nothing like that available at present. I'll try to get some stuff done on ATC, but it will have to wait till well after FS9 release. I did look way back, soon after FS2002 release, but I couldn't find anything. Pete
  24. I just spent a little time looking through the stuff I've got on Autopilot values. Although the autopilot obviously keeps track of whether IAS or Mach is selected for Speed mode when the Auto Throttle is engaged, I don't think it knows or cares what the A/P gauge itself is displaying. It looks very much like the selection of IAS or Mach for display is purely a local thing to the Gauge code. FSUIPC cannot get local gauge data. Regards, Pete
  25. FSUIPC itself does nothing unless you have selected options or are running a program, and certainly it doesn't have anything to do with graphics at all. Possibly you have the random cirrus additional cloud layer enabled and something has replaced your nice wispy cirrus clouds with some horrible dark graphic? The other possibility is that you have enabled the "Virtual Sky" option by mistake? That only works properly in conjunction with the correct installation of the application program which provides the graphics. Did you check the weather dialogue in FS to see what conditions were set when this occurred? I might help to know. Just select "minimum weather defaults" on the first page of FSUIPC's options. If that stops it then you have either got a video card driver problem which is rendering clouds badly, or have virtual sky enabled, or have somehow replaced your nice cirrus clouds with something horrible. You can check the cirrus clouds by adding some yourself, of course -- go to FS's weather dialogues and have a play. Always check the options you have set in FSUIPC whenever you suspect anything. It saves a lot of hassle. I hate having all those options, but they've all been put there at the requests of users, all of them. :-( Pete
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.