1. A navigation device, comprising:
a location determining component configured to generate geographic location data indicative of a geographic location of the navigation device and a boundary line formed over a body of water;
a processor configured to:
calculate a present speed and direction of the navigation device based upon changes in the geographic location data over time;
start a countdown timer having an expiration time indicating when a boat in which the navigation device is mounted needs to cross the boundary line; and
a display configured to:
display a graphical representation of the geographic location of the navigation device, the boundary line, and a predictor line extending from the geographic location of the navigation device in the direction in which the boat is traveling,
wherein the predictor line has a length representing a predicted distance to be traversed by the boat when traveling at the calculated present speed for a time period equal to the expiration time of the countdown timer.
2. The navigation device of claim 1, wherein the display is further configured to display the predictor line having a first color when the predicted distance is less than or equal to the distance between the navigation device and the boundary line, and to display the predictor line having a second color when the predicted distance is greater than the distance between the navigation device and the boundary line.
3. The navigation device of claim 1, wherein the display is further configured to update the graphical representation of the predictor line as the calculated present speed of the navigation device changes over time.
4. The navigation device of claim 1, further comprising:
a sensor configured to measure wind direction and to generate wind data,
wherein the processor is further configured to calculate a port layline angle and a starboard layline angle based upon the wind data, and
wherein the display is further configured to display a port layline at the calculated port layline angle extending from each end of the boundary line and a starboard layline at the calculated starboard layline angle extending from each end of the boundary line.
5. The navigation device of claim 4, wherein the processor is further configured to:
calculate a length of the port layline from each respective end of the boundary line based upon a distance traversed by the boat tacking at the port layline angle for a selected target time period at a target boat speed, and
calculate a length of the starboard layline from each respective end of the boundary line based upon a distance traversed by the boat tacking at the starboard layline angle for the selected target time period at a target boat speed.
6. The navigation device of claim 5, wherein the display is further configured to display a port guideline connecting the end of each port layline extending from each end of the boundary line, and to display a starboard guideline connecting the end of each starboard layline extending from each end of the boundary line.
7. The navigation device of claim 6, wherein the display is further configured to update the length of each port layline, the angle of each port layline, the length of each starboard layline, the angle of each starboard layline, the port guideline, and the starboard guideline as the wind data indicates changes in the wind direction.
8. The navigation device of claim 1, wherein the processor is further configured to calculate a predicted boundary arrival time in which the boat will cross the boundary line based upon the boundary distance and the calculated present speed of the navigation device, and
wherein the display is further configured to display a difference between the predicted boundary arrival time and the time period equal to the expiration time of the countdown timer.
9. A navigation device located within a sailboat, comprising:
a location determining component configured to generate geographic location data indicative of a geographic location of the sailboat and a starting line of a sailboat race;
a processor configured to:
calculate a present speed and direction of the sailboat based upon changes in the geographic location data over time;
start a countdown timer having an expiration time indicating when the sailboat needs to cross the starting line for purposes of the sailboat race, and
a display configured to:
display a graphical representation of the geographic location of the sailboat, the starting line, and a predictor line extending from the geographic location of the sailboat in the direction in which the sailboat is traveling,
wherein the predictor line has a length representing a predicted distance traversed by the sailboat when traveling at the calculated present speed for a time period equal to the expiration time of the countdown timer, and
wherein the display is further configured to update the displayed predictor line based upon changes in the calculated present speed of the sailboat such that the displayed predictor line has a first color when the predicted distance is less than or equal to the distance between the sailboat and the starting line, and has a second color when the predicted distance is greater than the distance between the sailboat and the starting line.
10. The navigation device of claim 9, further comprising:
a user interface configured to receive a user selection indicating an offset distance between a mounted location of the navigation device within the sailboat and the sailboat bow, and
wherein the location determining component is further configured to utilize the offset distance to generate the geographic location data such that the geographic location of the sailboat is referenced to the sailboat bow.
11. The navigation device of claim 9, wherein the display is further configured to update the graphical representation of the predictor line as the calculated present speed of the sailboat changes over time.
12. The navigation device of claim 9, further comprising:
a sensor configured to measure wind direction and to generate wind data,
wherein the processor is further configured to calculate a port layline angle and a starboard layline angle based upon the wind data, and
wherein the display is further configured to display a port layline at the calculated port layline angle extending from each end of the starting line and a starboard layline at the calculated starboard layline angle extending from each end of the starting line.
13. The navigation device of claim 12, wherein the processor is further configured to:
calculate a length of the port layline from each respective end of the starting line based upon a predicted distance to be traversed by the sailboat tacking at the port layline angle for a selected target time period at a target sailboat speed, and
calculate a length of the starboard layline from each respective end of the starting line based upon a predicted distance to be traversed by the sailboat tacking at the starboard layline angle for the selected target time period at a target sailboat speed.
14. The navigation device of claim 13, wherein the display is further configured to display a port guideline connecting the end of each port layline extending from each end of the starting line, and to display a starboard guideline connecting the end of each starboard layline extending from each end of the starting line.
15. The navigation device of claim 14, wherein the display is further configured to
update the length of each port layline, the angle of each port layline, the length of each starboard layline, the angle of each starboard layline, the port guideline, and the starboard guideline as the wind data indicates changes in the wind direction.
16. The navigation device of claim 9, wherein the processor is further configured to calculate a predicted starting line arrival time in which the boat will cross the starting line based upon the present speed of the sailboat, and
wherein the display is further configured to display a difference between the starting line arrival time and the time period equal to the expiration time of the countdown timer.
17. A computer-implemented method in a mobile computing device, comprising:
receiving, by one or more processors, geographic location data indicative of a geographic location of the sailboat and a starting line of a sailboat race;
calculating, by one or more processors, a present speed and direction of the sailboat based upon changes in the geographic location data over time;
starting, by one or more processors, a countdown timer having an expiration time indicating when the sailboat needs to cross the starting line for purposes of the sailboat race; and
displaying, by one or more processors, a graphical representation of the geographic location of the sailboat, the starting line, and a predictor line extending from the geographic location of the sailboat in the direction in which the sailboat is traveling,
wherein the predictor line has a length representing a predicted distance traversed by the sailboat when traveling at the calculated present speed for a time period equal to the expiration time of the countdown timer, and
updating, by one or more processors, the displayed predictor line based upon changes in the calculated present speed of the sailboat such that the displayed predictor line has a first color when the predicted distance is less than or equal to the distance between the sailboat and the starting line, and has a second color when the predicted distance is greater than the distance between the sailboat and the starting line.
18. The computer-implemented method of claim 17, further comprising:
measuring, by one or more processors, a wind direction,
calculating, by one or more processors, a port layline angle and a starboard layline angle based upon the wind data, and
displaying, by one or more processors, a port layline at the calculated port layline angle extending from each end of the boundary line, and
displaying, by one or more processors, a starboard layline at the calculated starboard layline angle extending from each end of the boundary line.
19. The computer-implemented method of claim 18, further comprising:
calculating, by one or more processors, a length of the port layline from each respective end of the boundary line based upon a distance traversed by the sailboat tacking at the port layline angle for a selected target time period at a target sailboat speed, and
calculating, by one or more processors, a length of the starboard layline from each respective end of the boundary line based upon a distance traversed by the sailboat tacking at the starboard layline angle for the selected target time period at a target sailboat speed.
20. The computer-implemented method of claim 19, further comprising:
displaying, by one or more processors, a port guideline connecting the end of each port layline extending from each end of the boundary line;
displaying, by one or more processors, a starboard guideline connecting the end of each starboard layline extending from each end of the boundary line; and
updating, by one or more processors, the length of each port layline, the angle of each port layline, the length of each starboard layline, the angle of each starboard layline, the port guideline, and the starboard guideline as the wind data indicates changes in the wind direction.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method of wireless communication, comprising:
performing a first set of functions in a first thread, the first set of functions comprising obtaining a second data from a second thread and providing first data to the second thread to facilitate construction of an uplink packet in the second thread; and
performing a second set of functions in the second thread, the second set of functions comprising obtaining the first data, constructing the uplink packet based on the first data, and providing the second data to the first thread to facilitate the performing of the first set of functions.
2. The method of claim 1, wherein the first set of functions is performed in a relaxed timing deadline.
3. The method of claim 1, wherein the first set of functions comprises:
updating token buckets for logical channel identifications;
querying a radio link control layer to obtain a buffer status for each of the logical channel identifications;
computing a serving order of active logical channel identifications of the logical channel identifications;
determining whether to send a buffer status report to a base station;
triggering, when needed, a status report to be sent to the base station; and
computing logical channel group buffer status report data,
wherein the first data comprise the serving order, information related to whether to send the buffer status report, and the logical channel group buffer status report data.
4. The method of claim 1, wherein the first set of functions comprises computing a minimum allotment and a maximum allotment for active logical channel identifications, and the first data comprise the minimum allotment and the maximum allotment for each of the active logical channel identifications.
5. The method of claim 4, wherein the computing the minimum allotment and the maximum allotment for an active logical channel identification of the active logical channel identifications comprises:
setting the minimum allotment to a minimum of a token bucket size for the active logical channel identification and a buffer size in a radio link control layer for the active logical channel identification when the token bucket size and the buffer size are greater than zero;
setting the minimum allotment to zero when the token bucket size or the buffer size is less than zero; and
setting the maximum allotment equal to the minimum allotment.
6. The method of claim 1, wherein the second set of functions is performed in a strict timing deadline.
7. The method of claim 1, wherein the second set of functions comprises processing a medium access control element trigger.
8. The method of claim 1, wherein the second set of functions comprises obtaining an uplink grant size and performing a first pass of a packet build in a radio link control layer and a second pass of the packet build in the radio link control layer for active logical channel identifications.
9. The method of claim 8, wherein the first pass and the second pass for an active logical channel identification of the active logical channel identifications comprise:
adjusting a minimum allotment and a maximum allotment for the active logical channel identification;
providing the minimum allotment and the maximum allotment to the radio link control layer;
requesting the radio link control layer to build a packet for the active logical channel identification with a packet size based on the minimum allotment and the maximum allotment; and
adjusting a remaining uplink grant size of the uplink grant size based on the packet size of the packet built in the radio link control layer for the active logical channel identification.
10. The method of claim 9, wherein the adjusting the minimum allotment and the maximum allotment for the active logical channel identification in the first pass comprises:
setting the maximum allotment to the remaining uplink grant size; and
setting the minimum allotment to the remaining uplink grant size when the remaining uplink grant size is less than the minimum allotment.
11. The method of claim 9, wherein the adjusting the minimum allotment and the maximum allotment for the active logical channel identification in the second pass comprises setting the maximum allotment and the minimum allotment to the remaining uplink grant size.
12. The method of claim 9, further comprising selecting, by the radio link control layer, the packet size between the minimum allotment and the maximum allotment in order to reduce packet segmentation.
13. The method of claim 9, wherein the minimum allotment and the maximum allotment provided to the radio link control layer for the active logical channel identification ensure that a priority bit rate is satisfied for the active logical channel identification.
14. The method of claim 1, wherein the second set of functions comprises forming a medium access control packet data unit and submitting the medium access control packet data unit to a physical layer, wherein the second data comprise information on an amount of data sent in uplink for each active logical channel identification.
15. An apparatus for wireless communication, comprising:
a processing system configured to:
perform a first set of functions in a first thread, the first set of functions comprising obtaining a second data from a second thread and providing first data to the second thread to facilitate construction of an uplink packet in the second thread; and
perform a second set of functions in the second thread, the second set of functions comprising obtaining the first data, constructing the uplink packet based on the first data, and providing the second data to the first thread to facilitate the performing of the first set of functions.
16. The apparatus of claim 15, wherein the first set of functions is performed in a relaxed timing deadline.
17. The apparatus of claim 15, wherein the first set of functions comprises:
updating token buckets for logical channel identifications;
querying a radio link control layer to obtain a buffer status for each of the logical channel identifications;
computing a serving order of active logical channel identifications of the logical channel identifications;
determining whether to send a buffer status report to a base station;
triggering, when needed, a status report to be sent to the base station; and
computing logical channel group buffer status report data,
wherein the first data comprise the serving order, information related to whether to send the buffer status report, and the logical channel group buffer status report data.
18. The apparatus of claim 15, wherein the first set of functions comprises computing a minimum allotment and a maximum allotment for active logical channel identifications, and the first data comprise the minimum allotment and the maximum allotment for each of the active logical channel identifications.
19. The apparatus of claim 18, wherein to compute the minimum allotment and the maximum allotment for an active logical channel identification of the active logical channel identifications, the processing system is configured to:
set the minimum allotment to a minimum of a token bucket size for the active logical channel identification and a buffer size in a radio link control layer for the active logical channel identification when the token bucket size and the buffer size are greater than zero;
set the minimum allotment to zero when the token bucket size or the buffer size is less than zero; and
set the maximum allotment equal to the minimum allotment.
20. The apparatus of claim 15, wherein the second set of functions is performed in a strict timing deadline.
21. The apparatus of claim 15, wherein the second set of functions comprises processing a medium access control element trigger.
22. The apparatus of claim 15, wherein the second set of functions comprises obtaining an uplink grant size and performing a first pass of a packet build in a radio link control layer and a second pass of the packet build in the radio link control layer for active logical channel identifications.
23. The apparatus of claim 22, wherein to perform the first pass and the second pass for an active logical channel identification of the active logical channel identifications, the processing system is configured to:
adjust a minimum allotment and a maximum allotment for the active logical channel identification;
provide the minimum allotment and the maximum allotment to the radio link control layer;
request the radio link control layer to build a packet for the active logical channel identification with a packet size based on the minimum allotment and the maximum allotment; and
adjust a remaining uplink grant size of the uplink grant size based on the packet size of the packet built in the radio link control layer for the active logical channel identification.
24. The apparatus of claim 23, wherein to adjust the minimum allotment and the maximum allotment for the active logical channel identification in the first pass, the processing system is configured to:
set the maximum allotment to the remaining uplink grant size; and
set the minimum allotment to the remaining uplink grant size when the remaining uplink grant size is less than the minimum allotment.
25. The apparatus of claim 23, wherein to adjust the minimum allotment and the maximum allotment for the active logical channel identification in the second pass, the processing system is configured to set the maximum allotment and the minimum allotment to the remaining uplink grant size.
26. The apparatus of claim 23, wherein the radio link control layer selects the packet size between the minimum allotment and the maximum allotment in order to reduce packet segmentation.
27. The apparatus of claim 23, wherein the minimum allotment and the maximum allotment provided to the radio link control layer for the active logical channel identification ensure that a priority bit rate is satisfied for the active logical channel identification.
28. The apparatus of claim 15, wherein the second set of functions comprises forming a medium access control packet data unit and submitting the medium access control packet data unit to a physical layer, wherein the second data comprise information on an amount of data sent in uplink for each active logical channel identification.
29. An apparatus for wireless communication, comprising:
means for performing a first set of functions in a first thread, the first set of functions comprising obtaining a second data from a second thread and providing first data to the second thread to facilitate construction of an uplink packet in the second thread; and
means for performing a second set of functions in the second thread, the second set of functions comprising obtaining the first data, constructing the uplink packet based on the first data, and providing the second data to the first thread to facilitate the performing of the first set of functions.
30. The apparatus of claim 29, wherein the first set of functions is performed in a relaxed timing deadline.
31. The apparatus of claim 29, wherein the first set of functions comprises:
updating token buckets for logical channel identifications;
querying a radio link control layer to obtain a buffer status for each of the logical channel identifications;
computing a serving order of active logical channel identifications of the logical channel identifications;
determining whether to send a buffer status report to a base station;
triggering, when needed, a status report to be sent to the base station; and
computing logical channel group buffer status report data,
wherein the first data comprise the serving order, information related to whether to send the buffer status report, and the logical channel group buffer status report data.
32. The apparatus of claim 29, wherein the first set of functions comprises computing a minimum allotment and a maximum allotment for active logical channel identifications, and the first data comprise the minimum allotment and the maximum allotment for each of the active logical channel identifications.
33. The apparatus of claim 32, wherein the computing the minimum allotment and the maximum allotment for an active logical channel identification of the active logical channel identifications comprises:
setting the minimum allotment to a minimum of a token bucket size for the active logical channel identification and a buffer size in a radio link control layer for the active logical channel identification when the token bucket size and the buffer size are greater than zero;
setting the minimum allotment to zero when the token bucket size or the buffer size is less than zero; and
setting the maximum allotment equal to the minimum allotment.
34. The apparatus of claim 29, wherein the second set of functions is performed in a strict timing deadline.
35. The apparatus of claim 29, wherein the second set of functions comprises processing a medium access control element trigger.
36. The apparatus of claim 29, wherein the second set of functions comprises obtaining an uplink grant size and performing a first pass of a packet build in a radio link control layer and a second pass of the packet build in the radio link control layer for active logical channel identifications.
37. The apparatus of claim 36, wherein the first pass and the second pass for an active logical channel identification of the active logical channel identifications comprise:
adjusting a minimum allotment and a maximum allotment for the active logical channel identification;
providing the minimum allotment and the maximum allotment to the radio link control layer;
requesting the radio link control layer to build a packet for the active logical channel identification with a packet size based on the minimum allotment and the maximum allotment; and
adjusting a remaining uplink grant size of the uplink grant size based on the packet size of the packet built in the radio link control layer for the active logical channel identification.
38. The apparatus of claim 37, wherein the adjusting the minimum allotment and the maximum allotment for the active logical channel identification in the first pass comprises:
setting the maximum allotment to the remaining uplink grant size; and
setting the minimum allotment to the remaining uplink grant size when the remaining uplink grant size is less than the minimum allotment.
39. The apparatus of claim 37, wherein the adjusting the minimum allotment and the maximum allotment for the active logical channel identification in the second pass comprises setting the maximum allotment and the minimum allotment to the remaining uplink grant size.
40. The apparatus of claim 37, further comprising means for selecting, by the radio link control layer, the packet size between the minimum allotment and the maximum allotment in order to reduce packet segmentation.
41. The apparatus of claim 37, wherein the minimum allotment and the maximum allotment provided to the radio link control layer for the active logical channel identification ensure that a priority bit rate is satisfied for the active logical channel identification.
42. The apparatus of claim 29, wherein the second set of functions comprises forming a medium access control packet data unit and submitting the medium access control packet data unit to a physical layer, wherein the second data comprise information on an amount of data sent in uplink for each active logical channel identification.
43. A computer program product for wireless communication, comprising:
a computer-readable medium comprising code for:
performing a first set of functions in a first thread, the first set of functions comprising obtaining a second data from a second thread and providing first data to the second thread to facilitate construction of an uplink packet in the second thread; and
performing a second set of functions in the second thread, the second set of functions comprising obtaining the first data, constructing the uplink packet based on the first data, and providing the second data to the first thread to facilitate the performing of the first set of functions.
44. The computer program product of claim 43, wherein the first set of functions is performed in a relaxed timing deadline.
45. The computer program product of claim 43, wherein the first set of functions comprises:
updating token buckets for logical channel identifications;
querying a radio link control layer to obtain a buffer status for each of the logical channel identifications;
computing a serving order of active logical channel identifications of the logical channel identifications;
determining whether to send a buffer status report to a base station;
triggering, when needed, a status report to be sent to the base station; and
computing logical channel group buffer status report data,
wherein the first data comprise the serving order, information related to whether to send the buffer status report, and the logical channel group buffer status report data.
46. The computer program product of claim 43, wherein the first set of functions comprises computing a minimum allotment and a maximum allotment for active logical channel identifications, and the first data comprise the minimum allotment and the maximum allotment for each of the active logical channel identifications.
47. The computer program product of claim 46, wherein the computing the minimum allotment and the maximum allotment for an active logical channel identification of the active logical channel identifications comprises:
setting the minimum allotment to a minimum of a token bucket size for the active logical channel identification and a buffer size in a radio link control layer for the active logical channel identification when the token bucket size and the buffer size are greater than zero;
setting the minimum allotment to zero when the token bucket size or the buffer size is less than zero; and
setting the maximum allotment equal to the minimum allotment.
48. The computer program product of claim 43, wherein the second set of functions is performed in a strict timing deadline.
49. The computer program product of claim 43, wherein the second set of functions comprises processing a medium access control element trigger.
50. The computer program product of claim 43, wherein the second set of functions comprises obtaining an uplink grant size and performing a first pass of a packet build in a radio link control layer and a second pass of the packet build in the radio link control layer for active logical channel identifications.
51. The computer program product of claim 50, wherein the first pass and the second pass for an active logical channel identification of the active logical channel identifications comprise:
adjusting a minimum allotment and a maximum allotment for the active logical channel identification;
providing the minimum allotment and the maximum allotment to the radio link control layer;
requesting the radio link control layer to build a packet for the active logical channel identification with a packet size based on the minimum allotment and the maximum allotment; and
adjusting a remaining uplink grant size of the uplink grant size based on the packet size of the packet built in the radio link control layer for the active logical channel identification.
52. The computer program product of claim 51, wherein the adjusting the minimum allotment and the maximum allotment for the active logical channel identification in the first pass comprises:
setting the maximum allotment to the remaining uplink grant size; and
setting the minimum allotment to the remaining uplink grant size when the remaining uplink grant size is less than the minimum allotment.
53. The computer program product of claim 51, wherein the adjusting the minimum allotment and the maximum allotment for the active logical channel identification in the second pass comprises setting the maximum allotment and the minimum allotment to the remaining uplink grant size.
54. The computer program product of claim 51, wherein the computer-readable medium comprises code for selecting, by the radio link control layer, the packet size between the minimum allotment and the maximum allotment in order to reduce packet segmentation.
55. The computer program product of claim 51, wherein the minimum allotment and the maximum allotment provided to the radio link control layer for the active logical channel identification ensure that a priority bit rate is satisfied for the active logical channel identification.
56. The computer program product of claim 43, wherein the second set of functions comprises forming a medium access control packet data unit and submitting the medium access control packet data unit to a physical layer, wherein the second data comprise information on an amount of data sent in uplink for each active logical channel identification.