with the increased capability of electronic devices and electronic communications and an increased market value for sophisticated and personalized fitness services , health and fitness centers and clubs are increasingly automating previously manual aspects of their business . fig1 illustrates an example fitness environment that includes a plurality of exercise machines ( e . g ., a treadmill 110 a , an elliptical trainer 110 b , and a stationary bicycle 110 c ) communicatively coupled to a server 115 via an exercise machine communications network 120 ( i . e ., a network 120 ). in the example fitness environment of fig1 , the network 120 may be a wireless communications network based , for example , on the institute of electrical and electronics engineers ( ieee ) wireless local area network ( wlan ) standard 802 . 11g . however , the network 120 could be based on other or additional communication standards and technologies . for instance , wlan standards ieee 802 . 11a , ieee 802 . 11b , etc . ; wired local area network ( lan ) standards ieee 802 . 3 , ieee 802 . 3u , etc . ; or other wireless communication technologies , e . g ., ieee 802 . 15 . 1 ( a . k . a . bluetooth ). in the illustrated example of fig1 , an example user 125 ( e . g ., a client of the example fitness environment ) of one of the plurality of exercise machines 110 a - c interacts or communicates with an exercise machine ( e . g ., the treadmill 110 a ) to identify themselves and to initiate an exercise routine . the treadmill 110 a , in turn , interacts or communicates with the server 115 via the network 120 to obtain an exercise routine for the treadmill 110 a . for example , the server 115 may be configured with height and weight information for the example user 125 and with an exercise program for the treadmill 110 a customized for the user 125 . for instance , a fitness instructor may select for the user 125 a treadmill program comprising a 5 minute warm - up period at 10 miles per hour , a 15 minute period with varying speed and incline , and concluding with a 5 minute cool - down period at 8 miles per hour . the treadmill 110 a , having received the customized program information from the server 115 via the network 120 for the user 125 , automatically programs and / or configures the treadmill 110 a and enables ( e . g ., starts the treadmill 110 a running , prompts the user 125 to provide a start indication , etc .) the customized exercise routine for the example user 125 . fig2 is an example manner of implementing the example treadmill 110 a of fig1 . in addition to containing well - known treadmill functionality ( e . g ., a motor that causes a belt or other walking surface to move beneath a user in a manner that enables the user to walk , run , jog , etc . ), the example treadmill 110 a or fig2 contains an example exercise machine console 210 . as illustrated in fig2 , the console 210 is operatively coupled with the well - known treadmill functionality . for instance , the console 210 can control the speed of the motor that moves the walking surface and adjust an incline angle of the walking surface . to enable the user 125 to interact with the example treadmill 110 a of fig2 , the example console 210 includes an example user interface 215 that , among other things , provides indications to the user 125 and receives status information from the treadmill 110 a . the example user interface 215 includes buttons to enable the user 125 to enter a code identifying the user 125 ( e . g ., 537 ) and a button to request a start of a customized exercise program . in another example , the user interface 215 may utilizes an electronic card reader configured to read an identification card carried by the user 125 . for instance , the user 125 may pass an edge of the card through the electronic card reader to transfer identification information to the treadmill 110 a . the example user interface 215 could include a liquid crystal display ( lcd ) and / or light emitting diodes ( leds ) to display a pictorial or graphical representation of the exercise program and to indicate where the user 125 currently is within the exercise program . the user interface 215 may also employ any of a variety of other interface technologies , such as , for example , a touch screen , membrane switches , etc . the example console 210 of fig2 also includes a network interface 220 and an antenna 225 to enable the console 210 to communicate with the server 115 via the network 120 . the network interface 220 and the antenna 225 may be implemented using one of a variety of standard or customized devices . for example , a tnetw1130 ™ chip from texas instruments , a bcm4317 ™ chip from broadcom , etc . the example console 210 of fig2 further includes a processor 230 configured to communicate with the server 115 via the network interface 220 and the antenna 225 , to interact with the user 125 via the user interface 215 , and to control the treadmill 110 a . in an example implementation , the processor 230 receives from the user interface 215 information identifying a user and a request to initiate an exercise program , provides the identifying information to the server 115 via the network 120 , receives an exercise program customized for the user 125 from the server 115 , configures and / or programs the treadmill 110 a , enables ( e . g ., starts the treadmill 110 a running , prompts the user 125 to provide a start indication , etc .) the customized exercise program , monitors the treadmill 110 a , and displays via the user interface 215 progress of the user 125 through the customized exercise program . the example console 210 can also be implemented with other types of exercise machines ( e . g ., the elliptical trainer 110 b , the stationary bicycle 110 c , etc .) to provide similar functionality and capabilities to those discussed above for the example treadmill 110 a of fig2 . the use of the ieee 802 . 11g wlan standard provides tremendous flexibility in the configuration , operation and maintenance of the example fitness environment of fig1 . for example , if an exercise machine ( e . g ., the stationary bicycle 110 c ) is relocated within the fitness environment ( e . g ., a health club ) it is not necessary to ensure that a wired connection ( e . g ., ethernet cable ) is available in the new location . instead , the stationary bicycle 110 c automatically reestablishes connectivity with the network 120 and the server 115 using techniques specified in the ieee 802 . 11g wlan standard . however , current wlan standards ( e . g ., ieee 802 . 11g , ieee 802 . 15 . 1 , etc .) can be vulnerable to signal interference . for example , a nearby radio frequency signal transmitter may cause a reduced signal - to - noise ratio ( snr ) for the signal path between an exercise machine and the network 120 , thereby reducing the achievable communication speed . further , because the network 120 is a shared communication resource , an increase in traffic ( e . g ., data being communicated ) between the plurality of exercise machines 110 a - c and the server 115 may result in communication delays . for example , if the network 120 is overloaded with a large amount of traffic , an exercise machine may not be able to communicate with the server 115 to obtain a customized exercise program or the exercise machine may experience a relatively long delay time before receiving the complete customized exercise program from the server 115 . fig3 is an example chart illustrating an example relationship between times of day and network delays ( e . g ., times between initiated requests to exercise and receipt of corresponding customized exercise programs by an exercise machine ). as is well known , the number of clients using a fitness center typically increases during certain periods of a day . for example , before work , lunch hour , after work , etc . as illustrated in fig4 , more clients using exercise machines during specific periods of the day resulted in an increase in network traffic , thereby causing an increase in network delays . if network delays increase sufficiently , clients may begin experiencing a decrease in customer or client satisfaction . that is , clients may become impatient waiting for a customized exercise program to be automatically ( as discussed above ) received , configured , and enabled . in response , a client may repeatedly press an exercise initiation button assuming the machine is defective , may opt to manually configure the exercise machine , may select another type of machine thus altering their customized and / or preferred exercise routine , or may elect to join another health club where client satisfaction may be higher . to maintain client satisfaction and to ensure correct and efficient operation of the network 120 and the example fitness environment of fig1 , the performance characteristics for the network 120 are monitored . in the illustrated example of fig1 , network delay is used as an example performance characteristic . more specifically , elapsed time durations between each request to initiate an exercise program and each receipt of a corresponding customized exercise program are determined and logged . further , the number of unsuccessful initiation requests , the number of times a user manually configures an exercise machine , and the number of times a user walks away from a machine are also recorded as additional performance characteristics . other performance characteristics such as , for example , the number of packet retransmissions due to low snr , etc . could be used instead of or in addition to those mentioned above . still further , a time of day may be recorded for each exercise request to enable network performance to be tracked as a function of time of day and / or day of the week . in the illustrated example of fig1 , the server 115 notifies an operator of the network 120 ( e . g ., via pager , cellular telephone , email , etc .) if the performance of the network 120 degrades below a certain pre - determined level . for example , if any or an average network delay exceeds a certain pre - determined threshold , the server 115 alerts the operator . further , the server 115 may analyze network delay values associated with each exercise machine to identify portions of the fitness environment and / or specific exercise machines experiencing large network delays . in response to an alert , the operator may take an appropriate corrective action . for example , the operator may relocate one or more exercise machines , locate an offending radio frequency transmitting device , etc . fig4 illustrates an example operation of the example fitness environment of fig1 . in the example of fig4 , the user 125 provides identifying information to the console 210 ( line 402 ) and initiates a request to start a customized exercise program ( line 404 ). in response to the initiation request ( line 404 ), the console 210 sends a request for a customized exercise program to the server 115 via the network 120 ( line 406 ) and records a time stamp corresponding to receipt of the exercise initiation request ( box 408 ). the request for the customized exercise program ( line 406 ) is received by the server 115 some time later , where the amount of elapsed time represents the network delay . the server 115 responds to the request for the customized program ( line 406 ) by sending the customized program to the console 210 via the network 120 ( line 410 ). conveyance of the customized program to the requesting console 210 of the treadmill 110 a ( line 410 ) may also be delayed by the network 120 . when the console 210 receives the customized program ( line 410 ), the console 210 records a second timestamp ( box 412 ) and programs the treadmill 110 a with the customized program ( box 414 ). the console 210 then indicates via the user interface 215 that exercising is enabled ( e . g ., starts the treadmill 110 a running , prompts the user 125 to provide a start indication , etc .) ( line 416 ) and sends a difference between the first and second timestamps to the server 115 ( line 418 ). in response to indication of exercise enablement ( line 416 ), the user 125 exercises or provides a start indication and then exercises ( box 420 ). the server 115 uses the received time difference ( line 418 ) to monitor the performance of the network 120 ( box 422 ). fig5 and 7 illustrate flowcharts representative of example process that may be performed to implement the example operation of fig4 , the console 210 , the example server 115 and / or the example fitness environment of fig1 . the example processes of fig5 - 7 may be executed by a processor , a controller and / or any other suitable processing device . for example , the example processes of fig5 - 7 may be embodied in coded instructions stored on a tangible medium such as a flash memory , or random access memory ( ram ) associated with the processor 810 shown in the example processor platform 800 and discussed below in conjunction with fig8 . alternatively , some or all of the example processes of fig5 - 7 may be implemented using an application specific integrated circuit ( asic ), a programmable logic device ( pld ), a field programmable logic device ( fpld ), discrete logic , hardware , etc . also , some or all of the processes of fig5 - 7 may be implemented manually or as combinations of any of the foregoing techniques . further , although the example processes of fig5 - 7 are described with reference to the flowcharts of fig5 - 7 , persons of ordinary skill in the art will readily appreciate that many other methods of implementing the console 210 , the server 115 and / or the example fitness environment of fig1 may be employed . for example , the order of execution of the blocks may be changed , and / or some of the blocks described may be changed , eliminated , or combined . turning to fig5 , an example process that may be performed to implement the example console 210 of fig2 . the example process of fig5 begins when the user 125 starts a new interaction with the console 210 . the console 210 via the user interface 215 receives information identifying the user 125 ( block 502 ). if a request to initiate exercise is not received ( block 504 ), the console 210 remains at block 504 to await an exercise initiation request . if a request to initiate exercise is received ( block 504 ), the console 210 records a timestamp corresponding to receipt of the initiation request ( block 506 ) and sends a request for a customized exercise program to the server 115 via the network 120 ( block 508 ). the request may include , for example , the information identifying the user 125 and the console 210 or the exercise machine associated with the console 210 . at block 510 , the console 210 determines if the customized exercise program has been received . if the customized program is received ( block 510 ), the console 210 records another timestamp corresponding to receipt of the initiation request ( block 512 ), configures and enables the exercise machine ( e . g ., starts the elliptical trainer 110 b running ) ( block 514 ), sends information indicative of network performance to the server 115 ( block 516 ) and ends execution of the example process of fig5 . in the process of fig5 , the console 210 sends a difference between the two recorded timestamps and the number of initiation requests to the server 115 . alternatively , the console 210 could send the two timestamps to the server 115 . further , each exchanged message could include information sufficient to allow the server 115 to determine and record timestamps . for example , the initiation request sent in block 508 could include a time indicative of when the request was made by the user 125 and the console 210 could send a message to the server 115 indicating the time at which the customized program was received by the console 210 ( block 516 ). thus , each of the two exchanges conveys enough information to determine a network delay . for instance , the server 115 records the time when a message is sent to the console 210 , the console 210 records when the messages is received and sends the arrival time of the message to the server 115 , and the server 115 computes a difference to determine the network delay . returning to block 510 , if the customized exercise program has not been received , the console 210 determines if an additional exercise request has been made by the user 125 ( e . g ., by the user re - swiping an identification card ) ( block 530 ). if an additional request has been made ( block 530 ), the console 210 determines if the same user is making the request ( block 532 ) by , for example , prompting the user to re - enter identifying information or using the information obtained from a swipe of an identification card . if the request was made by the same user ( block 532 ), the console 210 increments a count of initiation requests ( block 534 ) and returns to block 508 to send another request for the customized program to the server 115 . if the request was made by a different user ( block 532 ), the console 210 sends error information to the server 115 indicating that the previous user abandoned using the exercise machine ( block 536 ) and returns to block 508 to send a request for a customized exercise program to the server 115 . returning to block 530 , if another initiation request has not been received , the console 210 determines if either a timeout has occurred or if the user 125 has manually configured an exercise program ( e . g ., gave up waiting for the console 210 to automatically configure and enable the exercise machine ) ( block 550 ). if neither has occurred ( block 550 ), the console 210 returns to block 510 to determine if the customized exercise program has been received . if either a timeout or manual configuration has occurred ( block 550 ) the console 210 sends error information to the server 115 and ends executing the example process of fig5 . example error information includes information associated with the cause of the failure ( e . g ., a timeout or manual configuration ), number or initiation request retries , etc . turning to fig6 , an example process that may be performed to implement the example server 115 of fig1 . the example process of fig6 begins when the server 115 initiates processing and proceeds indefinitely until terminated by , for example , a processor restart , an operator , etc . if a request for a customized exercise program is not received from an exercise machine ( block 602 ), the server 115 remains at block 602 awaiting a request . if a request is received ( block 602 ), the server 115 collects the customized exercise program corresponding to the user 125 and the exercise machine being used by the user 125 from a database ( block 604 ) and sends the customized exercise program to the exercise machine ( block 606 ). the server 115 then determines if network delay information ( e . g ., a difference between timestamps recorded by the console 210 ) has been received ( block 608 ). if the delay information has been received ( block 608 ), the server 115 determines if the exercise machine is enabled and / or running ( e . g ., executing either the automatically configured customized program or a manual program ) ( block 610 ). if the exercise machine is enabled and / or running ( block 610 ), the server 115 determines if the machine was automatically configured by the console 210 using the customized program received from the server 115 and enabled by the console 210 ( block 612 ). if the machine was automatically configured ( block 612 ), the server 115 logs the machine as running in normal mode ( i . e ., successful automatic configuration ) ( block 614 ), otherwise the server 115 logs the machine as running is manual mode ( e . g ., the user 125 got tired of waiting and manually configured the exercise machine ) ( block 616 ). the server 115 then records the number of initiation requests or retries made by the user 125 and reported by the console 210 before the customized program was received and started by the console 210 ( block 618 ) and logs the network delay information received from the console 210 ( block 620 ). in the example process of fig6 , if the network delay information received from the console 210 exceeds a threshold ( block 622 ), the server 115 sends an alert to an operator ( block 624 ). if the delay does not exceed the threshold ( block 622 ), the server 115 returns to block 602 to await another request from an exercise machine for a customized exercise program . when an operator is alerted that a network delay for an automatic configuration exceeds the threshold , the operator can take any of a variety of corrective actions . for example , the operator may determine if the exercise machine is malfunctioning , relocate the exercise machine , etc . if the operator is alerted that the network delays for multiple exercise machines exceed the threshold , then the operator could , for example , determine if a radio frequency transmitter is causing interference , upgrade the network 120 , etc . returning to block 610 , if the exercise machine is not enabled and / or running , the server 115 logs the machine as abandoned ( e . g ., the user 125 gave up on waiting for the customized exercise program to start ) ( block 632 ), and the server 115 returns to block 602 to await another request from an exercise machine for a customized exercise program . returning to block 608 , if the network delay information has not been received , the server 115 determines if a timeout has occurred ( block 630 ). if a timeout has occurred ( block 630 ), the server 115 logs the exercise machine as abandoned ( i . e ., the user 125 gave up on waiting for the customized exercise program to start ) ( block 632 ), and the server 115 returns to block 602 to await another request from an exercise machine for a customized exercise program . if a timeout has not occurred ( block 630 ), the server 115 returns to block 608 to continue waiting for the network delay information . turning to fig7 , an example process that may be performed to determine a maximum acceptable network delay for the example fitness environment of fig1 . the example process of fig7 begins with the server 115 identifying all entries in the log corresponding to , for example , all exercise initiation requests that resulted in a user ceasing to wait for the machine to start ( i . e ., logged as abandoned ) ( block 705 ). for all of the identified log entries , the server 115 collects the network delay times ( block 710 ) and then determines , for example , an average or minimum of the collected network delay times ( block 715 ). finally , the server 115 sets the threshold equal to the determined value ( block 720 ) and ends executing the example process of fig7 . it will be understood that the example network 120 of fig1 could be constructed using a network topology different from the client - server topology discussed above . for example , the treadmill 110 a , the elliptical trainer 110 b and the stationary bicycle 110 c could create a web or mesh network with one of them ( e . g ., the treadmill 110 a ) serving as a bridge to the server 115 for the others ( e . g ., the elliptical trainer 110 b , the stationary bicycle 110 c ). in particular , the elliptical trainer 110 b and the stationary bicycle 110 c could establish communications with the treadmill 110 a which relays communications on their behalf to and from the server 115 . further , the performance characteristics of the network 120 may be enhanced to include each of the plurality of links comprising the network 120 . for instance , a link between the elliptical trainer 110 b and the treadmill 110 a , a link between the stationary bicycle 110 c and the treadmill 110 a , and a link between the treadmill 110 a and the server 115 , etc . fig8 is a schematic diagram of an example processor platform 800 capable of executing the example operation illustrated in fig4 and / or the example processes of fig5 - 7 to implement the console 210 , the server 115 and / or the example fitness environment of fig1 . for example , the processor platform 800 can be implemented by one or more general purpose microprocessors , microcontrollers , etc . the processor platform 800 of the example of fig8 includes a general purpose programmable processor 810 . the processor 810 executes coded instructions 827 present in main memory of the processor 810 ( e . g ., within a ram 825 ). the processor 810 may be any type of processing unit , such as a microprocessor from the intel ®, amd ®, or sun ® families of microprocessors . the processor 810 may implement , among other things , the console 210 , the server 115 and / or the example fitness environment of fig1 by , for example , executing the example operation of fig4 and / or the example processes of fig5 - 7 . the processor 810 is in communication with the main memory ( including a read only memory ( rom ) 820 and the ram 825 ) via a bus 805 . the ram 825 may be implemented by synchronous dynamic random access memory ( sdram ), dynamic dram , and / or any other type of ram device . the rom 820 may be implemented by flash memory and / or any other desired type of memory device . access to the memory 820 and 825 is typically controlled by a memory controller ( not shown ) in a conventional manner . the processor platform 800 also includes a conventional interface circuit 830 . the interface circuit 830 may be implemented by any type of well - known interface standard , such as an external memory interface , serial port , general purpose input / output , etc . one or more input devices 835 and one or more output devices 840 are connected to the interface circuit 830 . the input devices 835 and output devices 840 may be used to implement interfaces between the console 210 and an exercise machine ( e . g ., the treadmill 110 a ), the processor 230 and the network interface 220 , and / or the user interface 215 . of course , persons of ordinary skill in the art will recognize that the order , size , and proportions of the memory illustrated in the example systems may vary . additionally , although this patent discloses example systems including , among other components , software or firmware executed on hardware , it should be noted that such systems are merely illustrative and should not be considered as limiting . for example , it is contemplated that any or all of these hardware and software components could be embodied exclusively in hardware , exclusively in software , exclusively in firmware or in some combination of hardware , firmware and / or software . accordingly , persons of ordinary skill in the art will readily appreciate that the above described examples are not the only way to implement such systems . at least some of the above described example methods and / or apparatus are implemented by one or more software and / or firmware programs running on a computer processor . however , dedicated hardware implementations including , but not limited to , an asic , programmable logic arrays and other hardware devices can likewise be constructed to implement some or all of the example methods and / or apparatus described herein , either in whole or in part . furthermore , alternative software implementations including , but not limited to , distributed processing or component / object distributed processing , parallel processing , or virtual machine processing can also be constructed to implement the example methods and / or apparatus described herein . it should also be noted that the example software and / or firmware implementations described herein are optionally stored on a tangible storage medium , such as : a magnetic medium ( e . g ., a disk or tape ); a magneto - optical or optical medium such as a disk ; or a solid state medium such as a memory card or other package that houses one or more read - only ( non - volatile ) memories , random access memories , or other re - writable ( volatile ) memories ; or a signal containing computer instructions . a digital file attachment to e - mail or other self - contained information archive or set of archives is considered a distribution medium equivalent to a tangible storage medium . accordingly , the example software and / or firmware described herein can be stored on a tangible storage medium or distribution medium such as those described above or equivalents and successor media . to the extent the above specification describes example components and functions with reference to particular devices , standards and / or protocols , it is understood that the teachings of the invention are not limited to such devices , standards and / or protocols . for instance , the ieee 802 . 11g and ieee 802 . 3z standards represent examples of the current state of the art . such standards are periodically superseded by faster or more efficient equivalents having the same general functionality . accordingly , replacement devices , standards and / or protocols having the same functions are equivalents which are contemplated by the teachings of the invention are intended to be included within the scope of the accompanying claims . the teachings of the invention contemplate one or more machine readable mediums containing instructions , or receiving and executing instructions from a propagated signal so that , for example , a device connected to a network environment can send or receive voice , video or data , and communicate over the network using the instructions . such a device can be implemented by any electronic device that provides voice , video or data communication , such as a telephone , a cordless telephone , a mobile phone , a cellular telephone , a personal digital assistant ( pda ), a set - top box , a computer , and / or a server . although certain example methods , apparatus and articles of manufacture have been described herein , the scope of coverage of this patent is not limited thereto . on the contrary , this patent covers all methods , apparatus and articles of manufacture fairly falling within the scope of the appended claims either literally or under the doctrine of equivalents .
methods and apparatus for monitoring quality of service for an exercise machine communications network are disclosed . a disclosed example system for monitoring a quality of service for an exercise machine communication network comprises a server and an exercise machine console communicatively coupled to the server via the exercise machine communication network and operatively coupled to an exercise machine . the exercise machine console is configured to communicate exercise machine usage information to the server , and the server is configured to determine network performance associated with the exercise machine network based on the exercise machine usage information .