I am a Software Engineer ........(BCB/DMICE) and a member of the OHSU Knight Cancer Institute. My research focus is on the Systems Biology of Complex Diseases. I use integrative modeling approaches across OMICs types to achieve this.
my experience
I am also actively involved in teaching and utilizing interactive visualization.
MA in Geography, 2011
University of Cincinnati
Graduate Certificate in Soil Science, 2010
The Ohio State University
BS in Atmospheric and Environmental Science, 2008
Purdue University
WordPress SquareSpace Bootstrap Studio
Node.js Python SQL HTML CSS Bash PowerShell Markdown .NETC#XML
Angular React Dojo Express.js jQuery Node.jsTypeScriptWebpack Mocha Babel ESLint Bootstrap Chart.js
ArcGIS SAP Business Intelligence Google Analytics
Microsoft Office Suite Outlook Visio Access Sharepoint Visual Studio GitHubSVNSkypeYammerMS Teams
Social Media Photogrpahy Website designTrelloAgileRallyTechnical documentationAdobe XD
Teaching is one of my passions.
Adjunct Instructor, GEOG 117 Geography of Developing NationsIndiana University East, Winter quarter 2014
Adjunct Instructor, GEOG 110 Introduction to Human GeographyIndiana University East, Winter quarter 2014
Adjunct Instructor, RMSN 112 Introduction to Remote SensingClark State Community College, Winter quarter 2012
Graduate Teaching Assistant, GEOG 112 Advanced Watershed ModelingUniversity of Cincinnati, Winter quarter 2011
Graduate Teaching Assistant, LDSC 105 Landscape ArchitectureThe Ohio State University, Fall/Winter/Spring quarter 2009
Examples of webpages I have created or assisted in the creation of. Click any of these links to go to the site.
A website with Wix. A forum containing crowd-sourced reviews of precision agriculture technology.
A website with Squarespace. Nature's Nursery Center for Wildlife Rehabilitation and Conservation Education is a non-profit organization located in Whitehouse, Ohio. They provide medical care to injured, orphaned or ailing wild animals, and conduct conservation educational outreach programs for children and adults.
I have a parallel career as a composer and performing musician. I started taking cello lessons when I turned 30. I’m a lifelong learner and I love to play with and accompany other musicians. For more information, please see my artist webpage.


Class: Aws::STS::Types::AssumeRoleWithSAMLResponse
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Struct
|
|
|
Instance Chain:
self,
Struct
|
|
| Inherits: |
Struct
|
| Defined in: | (unknown) |
Overview
Contains the response to a successful AssumeRoleWithSAML request, including temporary AWS credentials that can be used to make AWS requests.
Returned by:
Instance Attribute Summary
-
#assumed_role_user ⇒ Types::AssumedRoleUser
rw
The identifiers for the temporary security credentials that the operation returns.
. -
#audience ⇒ String
rw
The value of the
Recipient
attribute of theSubjectConfirmationData
element of the SAML assertion. -
#credentials ⇒ Types::Credentials
rw
The temporary security credentials, which include an access key ID, a secret access key, and a security (or session) token.
. -
#issuer ⇒ String
rw
The value of the
.Issuer
element of the SAML assertion. -
#name_qualifier ⇒ String
rw
A hash value based on the concatenation of the
Issuer
response value, the AWS account ID, and the friendly name (the last part of the ARN) of the SAML provider in IAM. -
#packed_policy_size ⇒ Integer
rw
A percentage value that indicates the size of the policy in packed form.
-
#subject ⇒ String
rw
The value of the
.NameID
element in theSubject
element of the SAML assertion. -
#subject_type ⇒ String
rw
The format of the name ID, as defined by the
Format
attribute in theNameID
element of the SAML assertion.
Instance Attribute Details
#assumed_role_user ⇒ Types::AssumedRoleUser (rw)
The identifiers for the temporary security credentials that the operation returns.
#audience ⇒ String
(rw)
The value of the Recipient
attribute of the SubjectConfirmationData
element of the SAML assertion.
#credentials ⇒ Types::Credentials (rw)
The temporary security credentials, which include an access key ID, a secret access key, and a security (or session) token.
Note: The size of the security token that STS APIs return is not fixed. We strongly recommend that you make no assumptions about the maximum size. As of this writing, the typical size is less than 4096 bytes, but that can vary. Also, future updates to AWS might require larger sizes.
#issuer ⇒ String
(rw)
The value of the Issuer
element of the SAML assertion.
#name_qualifier ⇒ String
(rw)
A hash value based on the concatenation of the Issuer
response value, the AWS account ID, and the friendly name (the last part of the ARN) of the SAML provider in IAM. The combination of NameQualifier
and Subject
can be used to uniquely identify a federated user.
The following pseudocode shows how the hash value is calculated:
BASE64 ( SHA1 ( "https://example.com/saml" + "123456789012" + "/MySAMLIdP" ) )
#packed_policy_size ⇒ Integer
(rw)
A percentage value that indicates the size of the policy in packed form. The service rejects any policy with a packed size greater than 100 percent, which means the policy exceeded the allowed space.
#subject ⇒ String
(rw)
The value of the NameID
element in the Subject
element of the SAML assertion.
#subject_type ⇒ String
(rw)
The format of the name ID, as defined by the Format
attribute in the NameID
element of the SAML assertion. Typical examples of the format are transient
or persistent
.
If the format includes the prefix urn:oasis:names:tc:SAML:2.0:nameid-format
, that prefix is removed. For example, urn:oasis:names:tc:SAML:2.0:nameid-format:transient
is returned as transient
. If the format includes any other prefix, the format is returned with no modifications.


|
Xenomai
3.0.4
|
The Xenomai timer facility depends on a clock source (xnclock) for scheduling the next activation times. More...
Functions | |
| void | xntimer_destroy (struct xntimer *timer) |
| Release a timer object. More... | |
| static xnticks_t | xntimer_interval (struct xntimer *timer) |
| Return the timer interval value. More... | |
| int | xntimer_start (struct xntimer *timer, xnticks_t value, xnticks_t interval, xntmode_t mode) |
| Arm a timer. More... | |
| xnticks_t | xntimer_get_date (struct xntimer *timer) |
| Return the absolute expiration date. More... | |
| static void | xntimer_stop (struct xntimer *timer) |
| Disarm a timer. More... | |
| static xnticks_t | xntimer_get_timeout (struct xntimer *timer) |
| Return the relative expiration date. More... | |
| void | xntimer_init (struct xntimer *timer, struct xnclock *clock, void(*handler)(struct xntimer *timer), struct xnsched *sched, int flags) |
| Initialize a timer object. More... | |
| void | __xntimer_migrate (struct xntimer *timer, struct xnsched *sched) |
| Migrate a timer. More... | |
| unsigned long long | xntimer_get_overruns (struct xntimer *timer, xnticks_t now) |
| Get the count of overruns for the last tick. More... | |
| static int | program_htick_shot (unsigned long delay, struct clock_event_device *cdev) |
| Program next host tick as a Xenomai timer event. More... | |
| static void | switch_htick_mode (enum clock_event_mode mode, struct clock_event_device *cdev) |
| Tick mode switch emulation callback. More... | |
| int | xntimer_grab_hardware (void) |
| Grab the hardware timer on all real-time CPUs. More... | |
| void | xntimer_release_hardware (void) |
| Release hardware timers. More... | |
The Xenomai timer facility depends on a clock source (xnclock) for scheduling the next activation times.
The core provides and depends on a monotonic clock source (nkclock) with nanosecond resolution, driving the platform timer hardware exposed by the interrupt pipeline.
| void __xntimer_migrate | ( | struct xntimer * | timer, |
| struct xnsched * | sched | ||
| ) |
Migrate a timer.
This call migrates a timer to another cpu. In order to avoid pathological cases, it must be called from the CPU to which timer is currently attached.
| timer | The address of the timer object to be migrated. |
| sched | The address of the destination per-CPU scheduler slot. |
|
static |
Program next host tick as a Xenomai timer event.
Program the next shot for the host tick on the current CPU. Emulation is done using a nucleus timer attached to the master timebase.
| delay | The time delta from the current date to the next tick, expressed as a count of nanoseconds. |
| cdev | An pointer to the clock device which notifies us. |
|
static |
Tick mode switch emulation callback.
Changes the host tick mode for the tick device of the current CPU.
| mode | The new mode to switch to. The possible values are: |
| cdev | An opaque pointer to the clock device which notifies us. |
| void xntimer_destroy | ( | struct xntimer * | timer | ) |
Release a timer object.
Destroys a timer. After it has been destroyed, all resources associated with the timer have been released. The timer is automatically deactivated before deletion if active on entry.
| timer | The address of a valid timer descriptor. |
| xnticks_t xntimer_get_date | ( | struct xntimer * | timer | ) |
Return the absolute expiration date.
Return the next expiration date of a timer as an absolute count of nanoseconds.
| timer | The address of a valid timer descriptor. |
| unsigned long long xntimer_get_overruns | ( | struct xntimer * | timer, |
| xnticks_t | now | ||
| ) |
Get the count of overruns for the last tick.
This service returns the count of pending overruns for the last tick of a given timer, as measured by the difference between the expected expiry date of the timer and the date now passed as argument.
| timer | The address of a valid timer descriptor. |
| now | current date (as xnclock_read_raw(xntimer_clock(timer))) |
|
inlinestatic |
Return the relative expiration date.
This call returns the count of nanoseconds remaining until the timer expires.
| timer | The address of a valid timer descriptor. |
| int xntimer_grab_hardware | ( | void | ) |
Grab the hardware timer on all real-time CPUs.
xntimer_grab_hardware() grabs and tunes the hardware timer for all real-time CPUs.
Host tick emulation is performed for sharing the clock chip between Linux and Xenomai.
References xnsched::cpu, and xnintr_init().
| void xntimer_init | ( | struct xntimer * | timer, |
| struct xnclock * | clock, | ||
| void(*)(struct xntimer *timer) | handler, | ||
| struct xnsched * | sched, | ||
| int | flags | ||
| ) |
Initialize a timer object.
Creates a timer. When created, a timer is left disarmed; it must be started using xntimer_start() in order to be activated.
| timer | The address of a timer descriptor the nucleus will use to store the object-specific data. This descriptor must always be valid while the object is active therefore it must be allocated in permanent memory. |
| clock | The clock the timer relates to. Xenomai defines a monotonic system clock, with nanosecond resolution, named nkclock. In addition, external clocks driven by other tick sources may be created dynamically if CONFIG_XENO_OPT_EXTCLOCK is defined. |
| handler | The routine to call upon expiration of the timer. |
| sched | An optional pointer to the per-CPU scheduler slot the new timer is affine to. If non-NULL, the timer will fire on the CPU sched is bound to, otherwise it will fire either on the current CPU if real-time, or on the first real-time CPU. |
| flags | A set of flags describing the timer. The valid flags are: |
A set of clock gravity hints can be passed via the flags argument, used for optimizing the built-in heuristics aimed at latency reduction:
There is no limitation on the number of timers which can be created/active concurrently.
|
inlinestatic |
Return the timer interval value.
Return the timer interval value in nanoseconds.
| timer | The address of a valid timer descriptor. |
| void xntimer_release_hardware | ( | void | ) |
Release hardware timers.
Releases hardware timers previously grabbed by a call to xntimer_grab_hardware().
References xnsched::cpu.
| int xntimer_start | ( | struct xntimer * | timer, |
| xnticks_t | value, | ||
| xnticks_t | interval, | ||
| xntmode_t | mode | ||
| ) |
Arm a timer.
Activates a timer so that the associated timeout handler will be fired after each expiration time. A timer can be either periodic or one-shot, depending on the reload value passed to this routine. The given timer must have been previously initialized.
A timer is attached to the clock specified in xntimer_init().
| timer | The address of a valid timer descriptor. |
| value | The date of the initial timer shot, expressed in nanoseconds. |
| interval | The reload value of the timer. It is a periodic interval value to be used for reprogramming the next timer shot, expressed in nanoseconds. If interval is equal to XN_INFINITE, the timer will not be reloaded after it has expired. |
| mode | The timer mode. It can be XN_RELATIVE if value shall be interpreted as a relative date, XN_ABSOLUTE for an absolute date based on the monotonic clock of the related time base (as returned my xnclock_read_monotonic()), or XN_REALTIME if the absolute date is based on the adjustable real-time date for the relevant clock (obtained from xnclock_read_realtime()). |
|
inlinestatic |
Disarm a timer.
This service deactivates a timer previously armed using xntimer_start(). Once disarmed, the timer can be subsequently re-armed using the latter service.
| timer | The address of a valid timer descriptor. |


We exchange solutions!
- grow end-to-end architectures
- seize distributed methodologies
- syndicate next-generation convergence
- disintermediate cross-platform content
- seize wireless relationships
- embrace rich e-tailers
- evolve killer methodologies
- mesh granular web-readiness
- monetize out-of-the-box technologies
- repurpose customized action-items


What is a promise
A promise is simply a JavaScript object:
- An object with properties and methods
- We use some of those methods to take advantage of promises.
- Represents the eventual completion (or Failure) of an Aynchronous Operation.
- Promise will always provide a value - When the completion occurs, when the future event occurs - it provides a value.
Let's start looking at these promises with code. Say, I made a couple of functions that return promises
So.. these functions are aynchronous. They do something without blocking code and then
when they are done - they will return a value.
So, .... Promise is a JavaScript object.
But has somethings, that allow us to work asynchronously.
The code for resolving the promise is setTimeout. After a certain amount of time: the promise resolves.
.. as for the asyncFunction it is 4 seconds.
.. for asyncFunction2 - it is 3 seconds


Basci HTML
Headings
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Paragraphs
A paragraph (from the Greek paragraphos, “to write beside” or “written beside”) is a self-contained unit of a discourse in writing dealing with a particular point or idea. A paragraph consists of one or more sentences. Though not required by the syntax of any language, paragraphs are usually an expected part of formal writing, used to organize longer prose.
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Ab molestias odit dicta, ipsum alias eum velit distinctio vel officiis, earum qui, natus corporis nisi expedita cupiditate similique iure nemo maiores.
- List item one
- List item two
- List item three
- List item four
Lorem ipsum dolor sit amet consectetur adipisicing elit. Autem, placeat?
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aut aspernatur aliquam provident ullam mollitia veniam? Obcaecati dolor totam in minus voluptatem recusandae, ipsa id omnis soluta odit tenetur pariatur earum?
Horizontal rules
Formatting

The WHO was founded in 1948.
<address>
Written by Jon Doe.
Visit us at:
Example.com
Box 564, Disneyland
USA

For 50 years, WWF has been protecting the future of nature. The world's leading conservation organization, WWF works in 100 countries and is supported by 1.2 million members in the United States and close to 5 million globally.

The Scream by Edward Munch. Painted in 1893.

You will learn later on in these tests that
word-wrap: break-word;
will be your best friend.

My favorite color is
<dfn>

tag. People think focus means saying yes to the thing you’ve got to focus on. But that’s not what it means at all. It means saying no to the hundred other good ideas that there are. You have to pick carefully. I’m actually as proud of the things we haven’t done as the things I have done. Innovation is saying no to 1,000 things.

Text in a pre element is displayed in a fixed-width font, and it preserves both spaces and line breaks
Text in a pre element is displayed in a fixed-width font, and it preserves both spaces and line breaks
.post-title {
margin: 0 0 5px;
font-weight: bold;
font-size: 38px;
line-height: 1.2;
border: 0;
}
<q>
WWF's goal is to: Build a future where people live in harmony with nature.
We hope they succeed.Developers, developers, developers …
– Steve Ballmerdevelopers
developers
<s>
<samp>

Copyright 1999-2050 by Refsnes Data.

Subscript text: This text contains subscript text.
Getting our science styling on with H2O, which should push the “2″ down.

Superscript text: This text contains superscript text.
Still sticking with science and Isaac Newton’s E = MC2, which should lift the 2 up.

<var>
Forms and Input
Form elements
Images

 and

Audio / Video
<audio>
<video>
Lists
Definition List
- Startup
- A startup company or startup is a company or temporary organization designed to search for a repeatable and scalable business model.
- #dowork
- Coined by Rob Dyrdek and his personal body guard Christopher “Big Black” Boykins, “Do Work” works as a self motivator, to motivating your friends.
- Do It Live
- I’ll let Bill O’Reilly will explain this one.
Ordered List
- List item one
- List item one
- List item one
- List item two
- List item three
- List item four
- List item two
- List item three
- List item four
- List item one
- List item two
- List item three
- List item four
Unordered List
- List item one
- List item one
- List item one
- List item two
- List item three
- List item four
- List item two
- List item three
- List item four
- List item one
- List item two
- List item three
- List item four
Tables
| Table Heading 1 | Table Heading 2 | Table Heading 3 | Table Heading 4 | Table Heading 5 |
|---|---|---|---|---|
| Table Footer 1 | Table Footer 2 | Table Footer 3 | Table Footer 4 | Table Footer 5 |
| Table Cell 1 | Table Cell 2 | Table Cell 3 | Table Cell 4 | Table Cell 5 |
| Table Cell 1 | Table Cell 2 | Table Cell 3 | Table Cell 4 | Table Cell 5 |
| Table Cell 1 | Table Cell 2 | Table Cell 3 | Table Cell 4 | Table Cell 5 |
| Table Cell 1 | Table Cell 2 | Table Cell 3 | Table Cell 4 | Table Cell 5 |
| # | First Name | Last Name | Username |
|---|---|---|---|
| 1 | Mark | Otto | @mdo |
| 2 | Jacob | Thornton | @fat |
| 3 | Larry | the Bird |


.col-md-*
grid classes, you can create a basic grid system that starts out stacked on mobile devices and tablet devices (the extra small to small range) before becoming horizontal on desktop (medium) devices. Place grid columns in any .row
..col-xs-*
.col-md-*
to your columns..col-sm-*
classes..clearfix
and our responsive utility classes.


A front-end boilerplate using Gulp as build tool. Based on Yeoman's webapp generator, various other blogs/tutorials and my own experience.
Live reloading and synchronization with BrowserSync.
Lints, uglifies and minifies JavaScript
Compiles Sass with libSass. Writes sourcemaps in development.
Autoprefixes, minifies and removes unused CSS.
Media query optimization: merges matching media queries into one definition.
Optimizes images - PNG, JPG, GIF and SVG.
Handles file concatentation with gulp-useref.
Automatically injects assets from bower_components to HTML/SCSS files.
A few basic styles and mixins are included, as well as a JavaScript file with best practices based on a podcast from DevTips. These are completely optional and can be removed or altered according to your liking.
basic style guidelines


About Project
Eye diseases like glaucoma, cataracts and retina diseases, can be causing problems. AI can be used to exam the health of the eye. In our work we will try to present a project that can help people to diagnose the eye. The project is built on a set of powerful and widely used languges components:
- Python : keras, pandas, numpy ... ;
- Flusk : to deploy our application ;
- HTML & CSS: web structure, design .

Results
| Image | Prediction |
|---|---|


Life is beautiful. Feel it. Live it. Don't waste it.
When you think you look good when the wind is blowing in your hair.
Name: Mai Cheng Her
Age: 25
Race: Asian
Ethnicity: Hmong
Horoscope: Pieces
Status: Happily Married
Name: Touly Vang
Age: 25
Race: Asian
Ethnicity: Hmong
Horoscope: Capricorn
Status: Happily Married
Date: February 16-18, 2018
Wedding Day: February 17, 2018
Typically in a tradition Hmong Wedding, we spend three days on the wedding.
Friday is when we spend the day at the Groom's parents house.
Satuday is the actualy wedding at the Bride's parents house.
Sunday is going back to the Groom's house and celebrating the new marriage.
<EMAIL_ADDRESS>| Milwaukee, WI | Software Developer Intern
Have a great day!


Givens matrix operations routines. Routines for calculating and applying Givens rotations for/to vectors and also to matrices by row and by column.Based on the "Meschach Library", available at the anonymous ftp site thrain.anu.edu.au in the directory pub/meschach.
Alphabetic index HTML hierarchy of classes or Java


array id3_get_tag ( string $filename [, int $version = ID3_BEST ] )
id3_get_tag() is used to get all information stored in the id3 tag of the specified file.
Returns an associative array with various keys like: title, artist, .. The key genre will contain an integer between 0 and 147. You may use id3_get_genre_name() to convert it to a human readable string.


|
VectorNav C/C++ Library
|
Go to the source code of this file.
Data Structures | |
| struct | Vn200 |
| Holds connection information for accessing a VN-200 device. More... | |
| struct | Vn200CompositeData |
| Composite structure of the various asynchronous data the VN-200 device is capable of outputting. More... | |
Defines | |
| #define | VNASYNC_OFF 0 |
| #define | VNASYNC_VNIMU 19 |
| #define | VNASYNC_VNGPS 20 |
| #define | VNASYNC_VNINS 22 |
Typedefs | |
| typedef void(* | Vn200NewAsyncDataReceivedListener )(Vn200 *sender, Vn200CompositeData *newData) |
| Fuction type used for receiving notifications of when new asynchronous data is received. | |
Functions | |
| VN_ERROR_CODE | vn200_connect (Vn200 *newVn200, const char *portName, int baudrate) |
| Connects to a VectorNav VN-200 device. | |
| VN_ERROR_CODE | vn200_disconnect (Vn200 *vn200) |
| Disconnects from the VN-200 device and disposes of any internal resources. | |
| unsigned char | vn200_checksum_compute (const char *cmdToCheck) |
| Computes the checksum for the provided command. | |
| void | vn200_checksum_computeAndReturnAsHex (const char *cmdToCheck, char *checksum) |
| Computes the checksum for the provided command and returns it as a two character string representing it in hexidecimal. | |
| VN_ERROR_CODE | vn200_set_timeout (Vn200 *vn200, int timeout) |
| Sets the timeout value for the reading values from the VN-200 sensor. | |
| int | vn200_get_timeout (Vn200 *vn200) |
| Retrieves the associated timeout value for the Vn200 object. | |
| VN_ERROR_CODE | vn200_getCurrentAsyncData (Vn200 *vn200, Vn200CompositeData *curData) |
| Retreives the most recently received asynchronous measurements received from the VN-200 device. | |
| VN_ERROR_CODE | vn200_writeSettings (Vn200 *vn200, VN_BOOL waitForResponse) |
| Commands the VN-200 unit to write its current register setting to non-volatile memory. | |
| VN_ERROR_CODE | vn200_restoreFactorySettings (Vn200 *vn200, VN_BOOL waitForResponse) |
| Commands the VN-200 unit to revert its settings to factory defaults. | |
| VN_ERROR_CODE | vn200_reset (Vn200 *vn200) |
| Commands the VN-200 module to reset itself. | |
| VN_ERROR_CODE | vn200_registerAsyncDataReceivedListener (Vn200 *vn200, Vn200NewAsyncDataReceivedListener listener) |
| Allows registering a function which will be called whenever a new asynchronous data packet is received from the VN-200 module. | |
| VN_ERROR_CODE | vn200_unregisterAsyncDataReceivedListener (Vn200 *vn200, Vn200NewAsyncDataReceivedListener listener) |
| Unregisters an already registered function for recieving notifications of when new asynchronous data is received. | |
| VN_BOOL | vn200_verifyConnectivity (Vn200 *vn200) |
| Checks if we are able to send and receive communication with the VN-200 sensor. | |
| VN_ERROR_CODE | vn200_getUserTag (Vn200 *vn200, char *userTagBuffer, unsigned int userTagBufferLength) |
| Gets the values in the User Tag register. | |
| VN_ERROR_CODE | vn200_setUserTag (Vn200 *vn200, char *userTagData, unsigned int userTagDataLength, VN_BOOL waitForResponse) |
| Sets the values of the User Tag register. | |
| VN_ERROR_CODE | vn200_getModelNumber (Vn200 *vn200, char *modelBuffer, unsigned int modelBufferLength) |
| Gets the values in the Model Number register. | |
| VN_ERROR_CODE | vn200_getHardwareRevision (Vn200 *vn200, int *hardwareRevision) |
| Gets the values in the Hardware Revision register. | |
| VN_ERROR_CODE | vn200_getSerialNumber (Vn200 *vn200, char *serialNumberBuffer, unsigned int serialNumberBufferLength) |
| Gets the values in the Serial Number register. | |
| VN_ERROR_CODE | vn200_getFirmwareVersion (Vn200 *vn200, char *firmwareVersionBuffer, unsigned int firmwareVersionBufferLength) |
| Gets the values in the Firmware Version register. | |
| VN_ERROR_CODE | vn200_getSerialBaudRate (Vn200 *vn200, unsigned int *serialBaudrate) |
| Gets the values in the Serial Baud Rate register. | |
| VN_ERROR_CODE | vn200_setSerialBaudRate (Vn200 *vn200, unsigned int serialBaudrate, VN_BOOL waitForResponse) |
| Sets the values of the Serial Baud Rate register. | |
| VN_ERROR_CODE | vn200_getAsynchronousDataOutputType (Vn200 *vn200, unsigned int *asyncDataOutputType) |
| Gets the values in the Asynchronous Data Output Type register. | |
| VN_ERROR_CODE | vn200_setAsynchronousDataOutputType (Vn200 *vn200, unsigned int asyncDataOutputType, VN_BOOL waitForResponse) |
| Sets the values of the Asynchronous Data Output Type register. | |
| VN_ERROR_CODE | vn200_getAsynchronousDataOutputFrequency (Vn200 *vn200, unsigned int *asyncDataOutputFrequency) |
| Gets the values in the Asynchronous Data Output Frequency register. | |
| VN_ERROR_CODE | vn200_setAsynchronousDataOutputFrequency (Vn200 *vn200, unsigned int asyncDataOutputFrequency, VN_BOOL waitForResponse) |
| Sets the values of the Asynchronous Data Output Frequency register. | |
| VN_ERROR_CODE | vn200_getMagneticGravityReferenceVectors (Vn200 *vn200, VnVector3 *magneticReference, VnVector3 *gravityReference) |
| Gets the values in the Magnetic and Gravity Reference Vectors register. | |
| VN_ERROR_CODE | vn200_setMagneticGravityReferenceVectors (Vn200 *vn200, VnVector3 magneticReference, VnVector3 gravityReference, VN_BOOL waitForResponse) |
| Sets the values of the Magnetic and Gravity Reference Vectors register. | |
| VN_ERROR_CODE | vn200_getReferenceFrameRotation (Vn200 *vn200, VnMatrix3x3 *c) |
| Gets the values in the Reference Frame Rotation register. | |
| VN_ERROR_CODE | vn200_setReferenceFrameRotation (Vn200 *vn200, VnMatrix3x3 c, VN_BOOL waitForResponse) |
| Sets the values of the Reference Frame Rotation register. | |
| VN_ERROR_CODE | vn200_getCommunicationProtocolControl (Vn200 *vn200, unsigned char *serialCount, unsigned char *serialStatus, unsigned char *spiCount, unsigned char *spiStatus, unsigned char *serialChecksum, unsigned char *spiChecksum, unsigned char *errorMode) |
| Gets the values in the Communication Protocol Control register. | |
| VN_ERROR_CODE | vn200_setCommunicationProtocolControl (Vn200 *vn200, unsigned char serialCount, unsigned char serialStatus, unsigned char spiCount, unsigned char spiStatus, unsigned char serialChecksum, unsigned char spiChecksum, unsigned char errorMode, VN_BOOL waitForResponse) |
| Sets the values of the Communication Protocol Control register. | |
| VN_ERROR_CODE | vn200_getSynchronizationControl (Vn200 *vn200, unsigned char *syncInMode, unsigned char *syncInEdge, unsigned short *syncInSkipFactor, unsigned int *reserved0, unsigned char *syncOutMode, unsigned char *syncOutPolarity, unsigned short *syncOutSkipFactor, unsigned int *syncOutPulseWidth, unsigned int *reserved1) |
| Gets the values in the Synchronization Control register. | |
| VN_ERROR_CODE | vn200_setSynchronizationControl (Vn200 *vn200, unsigned char syncInMode, unsigned char syncInEdge, unsigned short syncInSkipFactor, unsigned int reserved0, unsigned char syncOutMode, unsigned char syncOutPolarity, unsigned short syncOutSkipFactor, unsigned int syncOutPulseWidth, unsigned int reserved1, VN_BOOL waitForResponse) |
| Sets the values of the Synchronization Control register. | |
| VN_ERROR_CODE | vn200_getCalibratedSensorMeasurements (Vn200 *vn200, VnVector3 *magnetic, VnVector3 *acceleration, VnVector3 *angularRate, float *temperature, float *pressure) |
| Gets the values in the Calibrated Sensor Measurements register. | |
| VN_ERROR_CODE | vn200_getGpsConfiguration (Vn200 *vn200, unsigned char *mode, unsigned char *nmeaSerial1, unsigned char *nmeaSerial2, unsigned char *nmeaRate) |
| Gets the values in the GPS Configuration register. | |
| VN_ERROR_CODE | vn200_setGpsConfiguration (Vn200 *vn200, unsigned char mode, unsigned char nmeaSerial1, unsigned char nmeaSerial2, unsigned char nmeaRate, VN_BOOL waitForResponse) |
| Sets the values of the GPS Configuration register. | |
| VN_ERROR_CODE | vn200_getGpsAntennaOffset (Vn200 *vn200, VnVector3 *position) |
| Gets the values in the GPS Antenna Offset register. | |
| VN_ERROR_CODE | vn200_setGpsAntennaOffset (Vn200 *vn200, VnVector3 position, VN_BOOL waitForResponse) |
| Sets the values of the GPS Antenna Offset register. | |
| VN_ERROR_CODE | vn200_getGpsSolution (Vn200 *vn200, double *gpsTime, unsigned short *gpsWeek, unsigned char *gpsFix, unsigned char *numberOfSatellites, VnVector3 *lattitudeLongitudeAltitude, VnVector3 *nedVelocity, VnVector3 *positionAccuracy, float *speedAccuracy, float *timeAccuracy) |
| Gets the values in the GPS Solution register. | |
| VN_ERROR_CODE | vn200_getInsSolution (Vn200 *vn200, double *gpsTime, unsigned short *gpsWeek, unsigned short *status, VnVector3 *ypr, VnVector3 *lattitudeLongitudeAltitude, VnVector3 *nedVelocity, float *attitudeUncertainty, float *positionUncertainty, float *velocityUncertainty) |
| Gets the values in the INS Solution register. |
MIT License (MIT)
Copyright (c) 2011 VectorNav Technologies, LLC
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
This header file provides access to devices based on VectorNav's VN-200 family of orientation sensors.
| #define VNASYNC_OFF 0 |
Asynchronous output is turned off.
| #define VNASYNC_VNGPS 20 |
Asynchronous output type is GPS Measurements.
| #define VNASYNC_VNIMU 19 |
Asynchronous output type is Calibrated Interial Measurements.
| #define VNASYNC_VNINS 22 |
Asynchronous output type is INS Solution.
| typedef void(* Vn200NewAsyncDataReceivedListener)(Vn200 *sender, Vn200CompositeData *newData) |
Fuction type used for receiving notifications of when new asynchronous data is received.
| [in] | sender | The device that sent the notification. |
| [in] | newData | Pointer to the new data. |
| unsigned char vn200_checksum_compute | ( | const char * | cmdToCheck | ) |
Computes the checksum for the provided command.
| [in] | cmdToCheck | Null-terminated string of the form "VNRRG,1". |
| void vn200_checksum_computeAndReturnAsHex | ( | const char * | cmdToCheck, |
| char * | checksum | ||
| ) |
Computes the checksum for the provided command and returns it as a two character string representing it in hexidecimal.
| [in] | cmdToCheck | Null-terminated string of the form "VNRRG,1". |
| [out] | checksum | A character array of length 2 which the computed checksum will be placed. |
| VN_ERROR_CODE vn200_connect | ( | Vn200 * | newVn200, |
| const char * | portName, | ||
| int | baudrate | ||
| ) |
Connects to a VectorNav VN-200 device.
| [out] | newVn200 | An uninitialized Vn200 control object should be passed in. |
| [in] | portName | The name of the COM port to connect to. |
| [in] | baudrate | The baudrate to connect at. |
| VN_ERROR_CODE vn200_disconnect | ( | Vn200 * | vn200 | ) |
Disconnects from the VN-200 device and disposes of any internal resources.
| vn200 | Pointer to the Vn200 control object. |
| int vn200_get_timeout | ( | Vn200 * | vn200 | ) |
| VN_ERROR_CODE vn200_getAsynchronousDataOutputFrequency | ( | Vn200 * | vn200, |
| unsigned int * | asyncDataOutputFrequency | ||
| ) |
Gets the values in the Asynchronous Data Output Frequency register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [out] | asyncDataOutputFrequency | The asynchronous data output frequency value of the sensor. |
| VN_ERROR_CODE vn200_getAsynchronousDataOutputType | ( | Vn200 * | vn200, |
| unsigned int * | asyncDataOutputType | ||
| ) |
Gets the values in the Asynchronous Data Output Type register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [out] | asyncDataOutputType | The asynchronous data output type value of the sensor. |
| VN_ERROR_CODE vn200_getCalibratedSensorMeasurements | ( | Vn200 * | vn200, |
| VnVector3 * | magnetic, | ||
| VnVector3 * | acceleration, | ||
| VnVector3 * | angularRate, | ||
| float * | temperature, | ||
| float * | pressure | ||
| ) |
Gets the values in the Calibrated Sensor Measurements register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [out] | magnetic | The current sensor magnetic (X,Y,Z) values. |
| [out] | acceleration | The current sensor acceleration (X,Y,Z) values. |
| [out] | angularRate | The current sensor angular rate (X,Y,Z) values. |
| [out] | temperature | The temperature value of the sensor. |
| [out] | pressure | The pressure value of the sensor. |
| VN_ERROR_CODE vn200_getCommunicationProtocolControl | ( | Vn200 * | vn200, |
| unsigned char * | serialCount, | ||
| unsigned char * | serialStatus, | ||
| unsigned char * | spiCount, | ||
| unsigned char * | spiStatus, | ||
| unsigned char * | serialChecksum, | ||
| unsigned char * | spiChecksum, | ||
| unsigned char * | errorMode | ||
| ) |
Gets the values in the Communication Protocol Control register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [out] | serialCount | The serial count value of the sensor. |
| [out] | serialStatus | The serial status value of the sensor. |
| [out] | spiCount | The SPI count value of the sensor. |
| [out] | spiStatus | The SPI status value of the sensor. |
| [out] | serialChecksum | The serial checksum value of the sensor. |
| [out] | spiChecksum | The SPI checksum value of the sensor. |
| [out] | errorMode | The error mode value of the sensor. |
| VN_ERROR_CODE vn200_getCurrentAsyncData | ( | Vn200 * | vn200, |
| Vn200CompositeData * | curData | ||
| ) |
Retreives the most recently received asynchronous measurements received from the VN-200 device.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [out] | curData | Composite of the last currently received data from the device. If there was no data received for certain fields, they will be zeroed out. |
| VN_ERROR_CODE vn200_getFirmwareVersion | ( | Vn200 * | vn200, |
| char * | firmwareVersionBuffer, | ||
| unsigned int | firmwareVersionBufferLength | ||
| ) |
Gets the values in the Firmware Version register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [out] | firmwareVersionBuffer | Buffer to store the response. Must have a length of at least 16 characters. |
| [in] | firmwareVersionBufferLength | Length of the provided firmwareVersionBuffer buffer. |
| VN_ERROR_CODE vn200_getGpsAntennaOffset | ( | Vn200 * | vn200, |
| VnVector3 * | position | ||
| ) |
Gets the values in the GPS Antenna Offset register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [out] | position | The current sensor relative postion of GPS antenna (X,Y,Z) values. |
| VN_ERROR_CODE vn200_getGpsConfiguration | ( | Vn200 * | vn200, |
| unsigned char * | mode, | ||
| unsigned char * | nmeaSerial1, | ||
| unsigned char * | nmeaSerial2, | ||
| unsigned char * | nmeaRate | ||
| ) |
Gets the values in the GPS Configuration register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [out] | mode | The mode value of the sensor. |
| [out] | nmeaSerial1 | The NMEA_Serial1 value of the sensor. |
| [out] | nmeaSerial2 | The NMEA_Serial2 value of the sensor. |
| [out] | nmeaRate | The NMEA_Rate value of the sensor. |
| VN_ERROR_CODE vn200_getGpsSolution | ( | Vn200 * | vn200, |
| double * | gpsTime, | ||
| unsigned short * | gpsWeek, | ||
| unsigned char * | gpsFix, | ||
| unsigned char * | numberOfSatellites, | ||
| VnVector3 * | lattitudeLongitudeAltitude, | ||
| VnVector3 * | nedVelocity, | ||
| VnVector3 * | positionAccuracy, | ||
| float * | speedAccuracy, | ||
| float * | timeAccuracy | ||
| ) |
Gets the values in the GPS Solution register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [out] | gpsTime | The GPS time of week in seconds value of the sensor. |
| [out] | gpsWeek | The GPS week value of the sensor. |
| [out] | gpsFix | The GPS fix type value of the sensor. |
| [out] | numberOfSatellites | The number of GPS satellites used in solution value of the sensor. |
| [out] | lattitudeLongitudeAltitude | The current sensor latitude, longitude, and altitude values. |
| [out] | nedVelocity | The current sensor velocity measurements (X,Y,Z) in north, east, down directions values. |
| [out] | positionAccuracy | The current sensor position accuracy (X,Y,Z) values. |
| [out] | speedAccuracy | The speed accuracy estimate value of the sensor. |
| [out] | timeAccuracy | The time accuracy estimate value of the sensor. |
| VN_ERROR_CODE vn200_getHardwareRevision | ( | Vn200 * | vn200, |
| int * | hardwareRevision | ||
| ) |
Gets the values in the Hardware Revision register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [out] | hardwareRevision | The hardware revision value of the sensor. |
| VN_ERROR_CODE vn200_getInsSolution | ( | Vn200 * | vn200, |
| double * | gpsTime, | ||
| unsigned short * | gpsWeek, | ||
| unsigned short * | status, | ||
| VnVector3 * | ypr, | ||
| VnVector3 * | lattitudeLongitudeAltitude, | ||
| VnVector3 * | nedVelocity, | ||
| float * | attitudeUncertainty, | ||
| float * | positionUncertainty, | ||
| float * | velocityUncertainty | ||
| ) |
Gets the values in the INS Solution register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [out] | gpsTime | The GPS time of week in seconds value of the sensor. |
| [out] | gpsWeek | The GPS week value of the sensor. |
| [out] | status | The status flags for the INS filter value of the sensor. |
| [out] | ypr | The current sensor heading, pitch, and roll values. |
| [out] | lattitudeLongitudeAltitude | The current sensor latitude, longitude, and altitude values. |
| [out] | nedVelocity | The current sensor velocity measurements (X,Y,Z) in north, east, down directions values. |
| [out] | attitudeUncertainty | The attitude uncertainty value of the sensor. |
| [out] | positionUncertainty | The position uncertainty value of the sensor. |
| [out] | velocityUncertainty | The velocity uncertainty value of the sensor. |
| VN_ERROR_CODE vn200_getMagneticGravityReferenceVectors | ( | Vn200 * | vn200, |
| VnVector3 * | magneticReference, | ||
| VnVector3 * | gravityReference | ||
| ) |
Gets the values in the Magnetic and Gravity Reference Vectors register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [out] | magneticReference | The current sensor magnetic reference vector (X,Y,Z) values. |
| [out] | gravityReference | The current sensor gravity reference vector (X,Y,Z) values. |
| VN_ERROR_CODE vn200_getModelNumber | ( | Vn200 * | vn200, |
| char * | modelBuffer, | ||
| unsigned int | modelBufferLength | ||
| ) |
Gets the values in the Model Number register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [out] | modelBuffer | Buffer to store the response. Must have a length of at least 25 characters. |
| [in] | modelBufferLength | Length of the provided modelBuffer buffer. |
| VN_ERROR_CODE vn200_getReferenceFrameRotation | ( | Vn200 * | vn200, |
| VnMatrix3x3 * | c | ||
| ) |
Gets the values in the Reference Frame Rotation register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [out] | c | The current sensor C matrix values. |
| VN_ERROR_CODE vn200_getSerialBaudRate | ( | Vn200 * | vn200, |
| unsigned int * | serialBaudrate | ||
| ) |
Gets the values in the Serial Baud Rate register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [out] | serialBaudrate | The serial baudrate value of the sensor. |
| VN_ERROR_CODE vn200_getSerialNumber | ( | Vn200 * | vn200, |
| char * | serialNumberBuffer, | ||
| unsigned int | serialNumberBufferLength | ||
| ) |
Gets the values in the Serial Number register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [out] | serialNumberBuffer | Buffer to store the response. Must have a length of at least 13 characters. |
| [in] | serialNumberBufferLength | Length of the provided serialNumberBuffer buffer. |
| VN_ERROR_CODE vn200_getSynchronizationControl | ( | Vn200 * | vn200, |
| unsigned char * | syncInMode, | ||
| unsigned char * | syncInEdge, | ||
| unsigned short * | syncInSkipFactor, | ||
| unsigned int * | reserved0, | ||
| unsigned char * | syncOutMode, | ||
| unsigned char * | syncOutPolarity, | ||
| unsigned short * | syncOutSkipFactor, | ||
| unsigned int * | syncOutPulseWidth, | ||
| unsigned int * | reserved1 | ||
| ) |
Gets the values in the Synchronization Control register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [out] | syncInMode | The input signal synchronization mode value of the sensor. |
| [out] | syncInEdge | The input signal synchronization edge selection value of the sensor. |
| [out] | syncInSkipFactor | The input signal trigger skip factor value of the sensor. |
| [out] | reserved0 | The reserved value of the sensor. |
| [out] | syncOutMode | The output signal synchronization mode value of the sensor. |
| [out] | syncOutPolarity | The output signal synchronization polarity value of the sensor. |
| [out] | syncOutSkipFactor | The output synchronization signal skip factor value of the sensor. |
| [out] | syncOutPulseWidth | The output synchronization signal pulse width value of the sensor. |
| [out] | reserved1 | The reserved value of the sensor. |
| VN_ERROR_CODE vn200_getUserTag | ( | Vn200 * | vn200, |
| char * | userTagBuffer, | ||
| unsigned int | userTagBufferLength | ||
| ) |
Gets the values in the User Tag register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [out] | userTagBuffer | Buffer to store the response. Must have a length of at least 21 characters. |
| [in] | userTagBufferLength | Length of the provided userTagBuffer buffer. |
| VN_ERROR_CODE vn200_registerAsyncDataReceivedListener | ( | Vn200 * | vn200, |
| Vn200NewAsyncDataReceivedListener | listener | ||
| ) |
Allows registering a function which will be called whenever a new asynchronous data packet is received from the VN-200 module.
| [in] | vn200 | Pointer to the Vn200 control object. |
| VN_ERROR_CODE vn200_reset | ( | Vn200 * | vn200 | ) |
Commands the VN-200 module to reset itself.
| [in] | vn200 | Pointer to the Vn200 control object. |
| VN_ERROR_CODE vn200_restoreFactorySettings | ( | Vn200 * | vn200, |
| VN_BOOL | waitForResponse | ||
| ) |
Commands the VN-200 unit to revert its settings to factory defaults.
| [in] | vn200 | Pointer to the Vn200 control object. |
| VN_ERROR_CODE vn200_set_timeout | ( | Vn200 * | vn200, |
| int | timeout | ||
| ) |
Sets the timeout value for the reading values from the VN-200 sensor.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [in] | timeout | The timeout value in milliseconds. Specify -1 to not use any timeouts. |
| VN_ERROR_CODE vn200_setAsynchronousDataOutputFrequency | ( | Vn200 * | vn200, |
| unsigned int | asyncDataOutputFrequency, | ||
| VN_BOOL | waitForResponse | ||
| ) |
Sets the values of the Asynchronous Data Output Frequency register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [in] | asyncDataOutputFrequency | Value for the asynchronous data output frequency field. |
| [in] | waitForResponse | Signals if the function should block until a response is received from the sensor. TRUE to block for a response; FALSE to immediately return after sending out the command. |
| VN_ERROR_CODE vn200_setAsynchronousDataOutputType | ( | Vn200 * | vn200, |
| unsigned int | asyncDataOutputType, | ||
| VN_BOOL | waitForResponse | ||
| ) |
Sets the values of the Asynchronous Data Output Type register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [in] | asyncDataOutputType | Value for the asynchronous data output type field. |
| [in] | waitForResponse | Signals if the function should block until a response is received from the sensor. TRUE to block for a response; FALSE to immediately return after sending out the command. |
| VN_ERROR_CODE vn200_setCommunicationProtocolControl | ( | Vn200 * | vn200, |
| unsigned char | serialCount, | ||
| unsigned char | serialStatus, | ||
| unsigned char | spiCount, | ||
| unsigned char | spiStatus, | ||
| unsigned char | serialChecksum, | ||
| unsigned char | spiChecksum, | ||
| unsigned char | errorMode, | ||
| VN_BOOL | waitForResponse | ||
| ) |
Sets the values of the Communication Protocol Control register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [in] | serialCount | Value for the serial count field. |
| [in] | serialStatus | Value for the serial status field. |
| [in] | spiCount | Value for the SPI count field. |
| [in] | spiStatus | Value for the SPI status field. |
| [in] | serialChecksum | Value for the serial checksum field. |
| [in] | spiChecksum | Value for the SPI checksum field. |
| [in] | errorMode | Value for the error mode field. |
| [in] | waitForResponse | Signals if the function should block until a response is received from the sensor. TRUE to block for a response; FALSE to immediately return after sending out the command. |
| VN_ERROR_CODE vn200_setGpsAntennaOffset | ( | Vn200 * | vn200, |
| VnVector3 | position, | ||
| VN_BOOL | waitForResponse | ||
| ) |
Sets the values of the GPS Antenna Offset register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [in] | position | The relative postion of GPS antenna (X,Y,Z) values to write to the sensor. |
| [in] | waitForResponse | Signals if the function should block until a response is received from the sensor. TRUE to block for a response; FALSE to immediately return after sending out the command. |
| VN_ERROR_CODE vn200_setGpsConfiguration | ( | Vn200 * | vn200, |
| unsigned char | mode, | ||
| unsigned char | nmeaSerial1, | ||
| unsigned char | nmeaSerial2, | ||
| unsigned char | nmeaRate, | ||
| VN_BOOL | waitForResponse | ||
| ) |
Sets the values of the GPS Configuration register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [in] | mode | Value for the mode field. |
| [in] | nmeaSerial1 | Value for the NMEA_Serial1 field. |
| [in] | nmeaSerial2 | Value for the NMEA_Serial2 field. |
| [in] | nmeaRate | Value for the NMEA_Rate field. |
| [in] | waitForResponse | Signals if the function should block until a response is received from the sensor. TRUE to block for a response; FALSE to immediately return after sending out the command. |
| VN_ERROR_CODE vn200_setMagneticGravityReferenceVectors | ( | Vn200 * | vn200, |
| VnVector3 | magneticReference, | ||
| VnVector3 | gravityReference, | ||
| VN_BOOL | waitForResponse | ||
| ) |
Sets the values of the Magnetic and Gravity Reference Vectors register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [in] | magneticReference | The magnetic reference vector (X,Y,Z) values to write to the sensor. |
| [in] | gravityReference | The gravity reference vector (X,Y,Z) values to write to the sensor. |
| [in] | waitForResponse | Signals if the function should block until a response is received from the sensor. TRUE to block for a response; FALSE to immediately return after sending out the command. |
| VN_ERROR_CODE vn200_setReferenceFrameRotation | ( | Vn200 * | vn200, |
| VnMatrix3x3 | c, | ||
| VN_BOOL | waitForResponse | ||
| ) |
Sets the values of the Reference Frame Rotation register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [in] | c | The C matrix values to write to the sensor. |
| [in] | waitForResponse | Signals if the function should block until a response is received from the sensor. TRUE to block for a response; FALSE to immediately return after sending out the command. |
| VN_ERROR_CODE vn200_setSerialBaudRate | ( | Vn200 * | vn200, |
| unsigned int | serialBaudrate, | ||
| VN_BOOL | waitForResponse | ||
| ) |
Sets the values of the Serial Baud Rate register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [in] | serialBaudrate | Value for the serial baudrate field. |
| [in] | waitForResponse | Signals if the function should block until a response is received from the sensor. TRUE to block for a response; FALSE to immediately return after sending out the command. |
| VN_ERROR_CODE vn200_setSynchronizationControl | ( | Vn200 * | vn200, |
| unsigned char | syncInMode, | ||
| unsigned char | syncInEdge, | ||
| unsigned short | syncInSkipFactor, | ||
| unsigned int | reserved0, | ||
| unsigned char | syncOutMode, | ||
| unsigned char | syncOutPolarity, | ||
| unsigned short | syncOutSkipFactor, | ||
| unsigned int | syncOutPulseWidth, | ||
| unsigned int | reserved1, | ||
| VN_BOOL | waitForResponse | ||
| ) |
Sets the values of the Synchronization Control register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [in] | syncInMode | Value for the input signal synchronization mode field. |
| [in] | syncInEdge | Value for the input signal synchronization edge selection field. |
| [in] | syncInSkipFactor | Value for the input signal trigger skip factor field. |
| [in] | reserved0 | Value for the reserved field. |
| [in] | syncOutMode | Value for the output signal synchronization mode field. |
| [in] | syncOutPolarity | Value for the output signal synchronization polarity field. |
| [in] | syncOutSkipFactor | Value for the output synchronization signal skip factor field. |
| [in] | syncOutPulseWidth | Value for the output synchronization signal pulse width field. |
| [in] | reserved1 | Value for the reserved field. |
| [in] | waitForResponse | Signals if the function should block until a response is received from the sensor. TRUE to block for a response; FALSE to immediately return after sending out the command. |
| VN_ERROR_CODE vn200_setUserTag | ( | Vn200 * | vn200, |
| char * | userTagData, | ||
| unsigned int | userTagDataLength, | ||
| VN_BOOL | waitForResponse | ||
| ) |
Sets the values of the User Tag register.
| [in] | vn200 | Pointer to the Vn200 control object. |
| [in] | userTagData | Array containg the data to send. Length must be equal to or less than 20 characters. |
| [in] | userTagDataLength | Length of the data to send in the userTagData array. |
| [in] | waitForResponse | Signals if the function should block until a response is received from the sensor. TRUE to block for a response; FALSE to immediately return after sending out the command. |
| VN_ERROR_CODE vn200_unregisterAsyncDataReceivedListener | ( | Vn200 * | vn200, |
| Vn200NewAsyncDataReceivedListener | listener | ||
| ) |
Unregisters an already registered function for recieving notifications of when new asynchronous data is received.
| [in] | vn200 | Pointer to the Vn200 control object. |
| VN_BOOL vn200_verifyConnectivity | ( | Vn200 * | vn200 | ) |
Checks if we are able to send and receive communication with the VN-200 sensor.
| [in] | vn200 | Pointer to the Vn200 control object. |
| VN_ERROR_CODE vn200_writeSettings | ( | Vn200 * | vn200, |
| VN_BOOL | waitForResponse | ||
| ) |
Commands the VN-200 unit to write its current register setting to non-volatile memory.
| [in] | vn200 | Pointer to the Vn200 control object. |


US officials: Don't eat romaine grown in Salinas, California
by EndPlayNEW YORK (AP) - U.S. health officials are telling people to avoid romaine lettuce grown in Salinas, California, as they investigate a food poisoning outbreak.
They also say not to eat the leafy green if the label doesn't say where it was grown.
The U.S. Food and Drug Administration is investigating an E. coli outbreak that has sickened 40 people in more than a dozen states.
Romaine has been tied to repeated food poisoning outbreaks, including one right before Thanksgiving last year. It's not clear exactly why romaine keeps sickening people, but food safety experts note the difficulty of eliminating risk for produce grown in open fields and eaten raw.
The FDA says its inquiry has led investigators to farms in Salinas and that they are looking for the contamination source.


Test that only a single popup is allowed in response to a single touch sequence. The test passes if only one popup is created when you touch and move around on this page.


• After pressing button below will remove all children from `Leadership`. • As the node no longer has any children, it will show as a leaf node.


Complex keystroke macros are difficult to get right. So once you have a macro working exactly right you may want to save it so you can use it again.
To save the current keystroke macro open the Macro page of the Options Dialog (use the Tools/Options menu item) and click the "Save Current Macro" button. This displays the Save Macro dialog where you can then enter a file name and various options stored with the macro. You can also enter a comment that is displayed when the macro is later reloaded - this can remind you of what the macro does and any requirements it has (such as initial conditions).
HexEdit macro files are saved with the extension .HEM in the current macro folder. You can change the macro folder using the "Change Macro Folder" button in the Macro Page.
You can later load a macro from file again using the "Load Macro" button in the Macro Page. If you save to the special file name "AUTOEXEC.HEM" the macro is loaded and run each time you run HexEdit Pro. If you save with a name of a file-extension preceded by an underscore then the macro will be run whenever a file of that type is opened -- for example _EXE.HEM will be run whenever a .EXE file is opened.


class: inverse, center, middle background-image: url(pictures/cover.jpeg) background-size: cover ### A Brief Presentation on Lacunar Infarcts #### with an emphasis on former and current clinical trials ##### [Brian Muchmore | UVM Neurology | 07/11/2019] --- # What is a lacunar stroke? * Small (0.2 to 15 mm in diameter) non-cortical infarcts * Infarcts result in a small cavity, or lacune * Caused by occlusion of a single penetrating branch of a large cerebral artery * Arise at acute angles from the + Large arteries of the circle of Willis + Stem of the MCA + Stem of the basilar * Thus, most lacunes occur in the + Basal ganglia (putamen, globus pallidus, thalamus, caudate) + Subcortical white matter (internal capsule and corona radiata) + Pons --- background-image: url(pictures/lacunar.jpg) background-position: 50% 100% background-size: 30% # What is the etiology? * Lipohyalinosis * Microatheroma * Tiny emboli (never proven pathologically) * Endothelial dysfunction --- background-image: url(pictures/race.jpg) background-position: 50% 100% background-size: 50% # What is the epidemiology? * Incidence is around 25-50 per 100,000 in the population * Approximately 25% of all ischemic strokes * Higher incidence among African-American and Hispanics --- background-image: url(pictures/homocysteine.png) background-position: 100% 100% background-size: 25% # What are the risk factors and associations? * Chronic vasculopathy associated with systemic hypertension * Diabetes mellitus * Smoking * Age * LDL * Genetics (for example APOE e4 carriers) * Hyperhomocysteinemia (for example, a *MTHFR* mutation). In addition + Developmental delay + Marfanoid appearance + Osteoporosis + Ocular abnormalities + Thromboembolic disease + Severe premature atherosclerosis --- background-image: url(pictures/mouse.jpg) background-position: 100% 50% background-size: 45% # Clinically ABSENT signs * Lack of cortical signs + Aphasia + Agnosia + Neglect + Apraxia + Hemianopsia
 * Also typically absent + Monoplegia + Stupor + Coma + Loss of consciousness + Seizures --- background-image: url(pictures/time.png) background-position: 100% 100% background-size: 40% # Clinically PRESENT signs * Unlike large artery brain ischemia, symptoms usually develop over hours/days + A stuttering course similar to large artery thrombosis can also ensue * More than 20 lacunar syndromes have been described * Five have been validated as being clinically predictive of radiologic lacunes + Pure motor hemiparesis + Pure sensory stroke + Ataxic hemiparesis + Sensorimotor stroke + Dysarthria-clumsy hand syndrome --- background-image: url(pictures/pure_motor.jpg) background-position: 100% 100% background-size: 50% # Pure motor hemiparesis * ~50% of all lacunar syndromes * Weakness of face, arm, and leg on one side of the body * May have dysarthria/dysphagia * If preceded by hemiplegic TIAs --> "capsular warning syndrome" * Typical location: + Internal capsule + Corona radiata + Basal pons + Medial medulla * Positive predictive value: + 52-85% --- background-image: url(pictures/pontine_tegmentum.jpg) background-position: 100% 100% background-size: 50% # Pure sensory stroke * Numbness of the face, arm, and leg on one side of the body * Typical location: + Thalamus + Pontine tegmentum + Corona radiata * Positive predictive value: + 95-100% --- background-image: url(pictures/thalamus.jpg) background-position: 100% 100% background-size: 50% # Ataxic hemiparesis * Ipsilateral weakness and limb ataxia that is out of proportion to the motor deficit * Also may exhibit ipsilateral dysarthria, nystagmus and gait deviation * Typical location: + Internal capsule-corona radiata + Basal pons + Thalamus * Positive predictive value: + 59-95% --- background-image: url(pictures/thalamocapsular.jpeg) background-position: 100% 100% background-size: 50% # Sensorimotor stroke * Weakness/numbness of the face, arm, and leg on one side of the body * Ipsilateral sensory impairment * Typical location: + Thalamocapsular + Basal pons + Lateral medulla * Positive predictive value: + 51-87% --- background-image: url(pictures/internal_capsule.jpg) background-position: 100% 100% background-size: 50% # Dysarthria-clumsy hand syndrome * No sensory deficits * Facial weakness, dysarthria, dysphagia, and slight weakness/clumsiness of one hand * Typical location: + Internal capsule + Corona radiata + Basal pons * Positive predictive value: + ~96% --- background-image: url(pictures/ct.jpg) background-position: 50% 100% background-size: 25% # Diagnosis * Clinical syndrome that is consistent with CT or MRI * CT has low sensitivity for detecting lacunes (30 to 44 percent) * MRI is better * Both have difficulty differentiating between acute and chronic lesions * DWI is great if multiple infarcts of different ages are present + DWI overestimates size by up to 40% --- background-image: url(pictures/thrombectomy.jpg) background-position: 50% 100% background-size: 50% # Treatment * Lacunar stroke specific treatment does not exist * Prevention is the best treatment * Follow current stroke guidelines + Thrombolysis + Thrombectomy + Also Aspirin, VTE prophylaxis, statins, BP management, living zen ---  Your browser doesn't support iframes  ---  Your browser doesn't support iframes  --- class: inverse, center, middle background-image: url(pictures/lacunar_bichat.png) background-size: 100% ---  Your browser doesn't support iframes  --- class: inverse, center, middle background-image: url(pictures/SPS3.png) background-size: 85% ---  Your browser doesn't support iframes  --- class: inverse, center, middle background-image: url(pictures/ETLAS.png) background-size: 60% --- # References * Filho, JO. **Lacunar infarcts.** UpToDate. Waltham, MA: UpToDate Inc. https://www.uptodate.com (Accessed on July 11, 2019.) * Messe, S. **Lacunar stroke.** DynaMed Plus. Ipswich, MA: EBSCO Information Services. http://www.www.dynamed.com (Accessed on July 11, 2019.) * Lavallée, P and Lacunar-B.I.C.H.A.T. Investigators. **Placebo-Controlled Trial of High-Dose Atorvastatin in Patients With Severe Cerebral Small Vessel Disease.** *Stroke* 2009;40:1721–1728 * The SPS3 Investigators. **Effects of Clopidogrel Added to Aspirin in Patients with Recent Lacunar Stroke.** *N Engl J Med* 2012;367:817-825 * Olmestig, J. et. al. **Effect of Tadalafil on Cerebrovascular Response in Patients with Small Vessel Disease (ETLAS-STUDY).** *World Stroke Congress* 2018;225


auto-color="true" use-full-string-for-colors="true"
auto-color="true"
When using auto-color and string, the option use-full-string-for-colors will determine the color based on all of the characters in the string, not just the initials


little men's OH!
whatever who you are, no stranges are there for no reasons, bully OH! as the commander's pain. not in space destruction, but in relation to an overaction.
kharma is an alteration of the illusion, for the moment, dharma is the cause of the pain. footage number clones the reality, result number clone the irreality
real's dimensions are the latest part of the human being, surreal's dimensions are the first.


Cast Away a film review by Chad Polenz
There's been a lot of movies, books and TV shows about people being stranded on a desert island. In most cases the formula is used for comedy or adventure, rarely drama. That's what separates "Cast Away" from all the other stories of the genre, because this is the probably the most realistic depiction of what a human would go through under the circumstances. The result is definitely interesting but not nearly as powerful as it could have been.
This is a movie that's every bit generic as lowbrow action movies and teenage slasher flicks. If you think about it, this is a really easy script to write: man loves wife shown in opening act; man gets on plane and says "I'll be right back;" man's plane crashes into the ocean with man being the only survivor; man ends up on desert island; man must survive - will man ever get back home? And if man does get back home what will have changed?
Yup, that pretty much sums up "Cast Away," the only other details you really need to know is that Tom Hanks stars in the "man" role as Chuck Noland, an employee for Federal Express whose job it is to make sure packages get delivered all over the world on time. Helen Hunt plays the "wife" role, Kelly. There's virtually no other supporting characters, just minor characters plugged in to fill out the story a little.
There's little point in discussing the first act of the film because it works EXACTLY how you'd expect a movie like this to. Hanks is a hard-assed boss who takes his job just a tad too seriously. It's Christmas time and at home he and his wife host a big family gathering and it's implied that the two have a pretty good marriage but it could be a lot better if they weren't so busy. Kelly tries to convince Chuck to take some time off work but he can't, at least not immediately. She even gives him a family heirloom with her picture in it and when Chuck's plane goes down and he escapes to the island it's the only personal possession he retains. Awwww.....
But all sappiness aside, this film still works well as a story of man's basic instinct to survive, to fend off the elements and to overcome loneliness. The Pacific Ocean is a huge, vast place just like outer space and being stuck in the middle of it -hundreds or thousands of miles away from civilization is a very scary situation.
There was a shot in "Titanic" that stands out in my mind as one of the most powerful images I've ever seen. As the ship is sinking in the middle of the night and all hell breaks loose, crew members fire flares in the air hoping another ship will see it and come to their rescue. Then the camera cuts back to about a mile in the air where we see the ocean is as black as oil and that flare is a small speck of light - so tiny it's pathetic. It's a shot that conveys the utter hopelessness and bleakness of the situation, and "Cast Away" is kind of like that idea made into an entire movie.
If you were stuck on a desert island all by yourself would you be able to survive?  Chuck Noland doesn't have a lot of choice and we watch as his learns how to adapt.
Zemeckis never really gives you clues about what's going to happen next. There's no story at all, just our observations of how this man survives. He's not a Navy SEAL or anything, he's pretty clueless what to do and that gives us a tremendous amount of sympathy for him. When coconuts fall off the trees he knows they can be a source of food but trying to get one open is the tough part. We watch as he throws them against a rock, the bashes it with a smaller rock until the rock in his hand crumbles! He must also learn to make fire without any matches, to make rope out of palms, to eat fish and crabs raw and to maintain his sanity without anyone else to talk to, without anything to read and much of anything remotely recreational to do.
And this is pretty much all that happens for a good 80 or 90 minutes - the bulk of the film. Hanks doesn't have a lot of lines since the only one he can talk to is himself or his "friend" - a volleyball named Wilson. But it's his raw emotions that drive the film. If you were in the same position and didn't know what you were doing wouldn't you make a lot of mistakes? The best moments of the film occur when something bad happens to Chuck. He slashes his hand trying to use a rock as a knife; he nearly impales himself on the coral reef trying to sail out past the breakers; he realizes the area rescuers will have to cover to find both the plane and him add up to a search area of about 500,000 miles.
Realizing this Chuck says, "That's twice the size of Texas," with a look on his face as if he knew all hope was lost. It's a subtle but profound moment, something reminiscent of a Stanley Kubrick device.
How to describe the rest of the film though? If you haven't seen it do you want to know how long he's stuck there for? Do you want to know if he ever tries to get off the island, and if so how? Do you want to know if he'll ever get back home?
Watching this film from a critic's point of view I wasn't so much concerned with whether Chuck would get home or not, I was more interested in the process of him doing so. The film had already done a good job in showing the loneliness of the situation, of the human instinct to survive and the last act just takes both of these ideas one step further. The island in the middle of the ocean is a pretty frightening idea, but being out in the ocean on a raft is even more so. On the island Chuck was at least a cork in the ocean, out of the raft he's just a teardrop (actually, more like teardrop molecule). Thankfully this picture spares us any gratuitous shark attack scenes or huge tidal waves and hurricanes, etc.
It ends how you'd expect it to end - that's neither a good nor bad thing.
So "Cast Away" is a pretty good movie, but it's nothing profound. It does have some originality for a desert island story but the backstory about Chuck's personal life is quite sappy and the ending doesn't have the dramatic bite it's going for. I'm sure there's some way this could have been an all-out excellent film, but what we get is good enough for me.
GRADE: B
***** Chad'z Movie Page is back! In-depth reviews of nearly all mainstream films playing at your local cineplex. There's also reviews of a few classic films and some of your personal favorites.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Line Length:
Border Width:
Dot Width:
Border Color:
Area Color:
Rates:
自摸:
胡牌:
放槍:
Animation:
Delay:
Animation:
Cover:
Visualization Mode:
{{t.tx}}


{% include head.html %}
I am a self-taught software engineer still early in my career. My first introduction to programming was using Ruby which I was introduced to whilst on the CodeFirst:Girls course in January. Following the course, I then took this further by learning about doing test driven development using RSpec, I have enjoyed this approach to development and have shared my learnings on my GitHub and medium blog. I have since moved on from Ruby, exposing myself to a variety of different technologies including HTML, CSS and JavaScript.
Outside of learning to code I have also enjoyed sharing my knowledge with others, recently have becoming an instructor at CodeFirst:Girls on their beginner HTML/CSS course. I have found sharing my knowledge with others to be very rewarding.
Providing fun and interactive activities for young people to learn new skills, make friends and develop confidence outside of the wards.
Business Enterprise Project: Directed a team of 5 to complete a business plan and proposed the commercialisation of cancer drug. Forecasted financial projections; estimated the capital investment and variable operating costs.
Design Project: Unified a team of 5 to design and plan a manufacturing facility for the production of a vaccine. Produced a comprehensive economic appraisal; identified risks within the project and structured mitigation strategies.
Research project: Effects of the Lycium barbarum (Goji berry) extract on aggregation of prion protein in vitro
Achieved an overall mark of 82%
Expression and cloning prion protein using molecular biology techniques; protein aggregation was observed to compare its levels when Lycium barbarum (Goji berry) extract is used versus when it is not.
Laboratory skills acquired: immunoassays, PCR, SDS-PAGE, Southern, northern and western blots, clinical enzyme assays (ELISA), protein expression and purification, gel electrophoresis, flow cytometry, immobilised-metal affinity chromatography (IMAC), microscopy, gene cloning
Ruby
Test-driven development (TDD), pair-programming, responsive design, version control - Git
RSpec
HTML5, CSS3, jQuery, Sass
Fluent in English and Vietnamese, basic Japanese


The system administrators and/or security managers should know the common security settings for network devices.
The staff members responsible for network security should know the technology they are working with to be able to make meaningful changes to the network and to respond to events.
Interview the staff members responsible for system administration and/or network security to make sure they know the common security settings of the system configuration standards. It may be helpful to have copies of the system configuration standards on hand when conducting the interviews.
Instruct the system administrators and/or security managers to study the company system configuration standards and TeamMentor materials.


{% extends 'polls/base.html' %} {% block content %}
Feel free to contact me through any of the methods below and take a look at my website if you're curious to learn more about me. My website has some of the other projects I've done, some of which also involve machine learning and AI.


new AABB(body, x, y, width, height) Ninja Physics AABB constructor. Note: This class could be massively optimised and reduced in size. I leave that challenge up to you. Parameters: Name Type Description body Phaser.Physics.Ninja.Body The body that owns this shape. x number The x coordinate to create this shape at. y number The y coordinate to create this shape at. width number The width of this AABB. height number The height of this AABB. Source - physics/ninja/AABB.js, line 20 Members aabbTileProjections :object All of the collision response handlers. Source - physics/ninja/AABB.js, line 86 body Properties: Name Type Description system Phaser.Physics.Ninja.Body A reference to the body that owns this shape. Source - physics/ninja/AABB.js, line 25 <readonly> height :number The height. Source - physics/ninja/AABB.js, line 64 oldpos :Phaser.Point The position of this object in the previous update. Source - physics/ninja/AABB.js, line 40 pos :Phaser.Point The position of this object. Source - physics/ninja/AABB.js, line 35 system :Phaser.Physics.Ninja A reference to the physics system. Source - physics/ninja/AABB.js, line 30 velocity :Phaser.Point The velocity of this object. Source - physics/ninja/AABB.js, line 81 <readonly> width :number The width. Source - physics/ninja/AABB.js, line 58 <readonly> xw :number Half the width. Source - physics/ninja/AABB.js, line 46 <readonly> yw Properties: Name Type Description xw number Half the height. Source - physics/ninja/AABB.js, line 52 Methods collideAABBVsAABB(aabb) Collides this AABB against a AABB. Parameters: Name Type Description aabb Phaser.Physics.Ninja.AABB The AABB to collide against. Source - physics/ninja/AABB.js, line 336 collideAABBVsTile(tile) Collides this AABB against a Tile. Parameters: Name Type Description tile Phaser.Physics.Ninja.Tile The Tile to collide against. Source - physics/ninja/AABB.js, line 408 collideWorldBounds() Collides this AABB against the world bounds. Source - physics/ninja/AABB.js, line 295 destroy() Destroys this AABB's reference to Body and System Source - physics/ninja/AABB.js, line 993 integrate() Updates this AABBs position. Source - physics/ninja/AABB.js, line 108 projAABB_22DegB(x, y, obj, t) ? {number} Resolves 22 Degree tile collision. Parameters: Name Type Description x number Penetration depth on the x axis. y number Penetration depth on the y axis. obj Phaser.Physics.Ninja.AABB The AABB involved in the collision. t Phaser.Physics.Ninja.Tile The Tile involved in the collision. Returns: number - The result of the collision. Source - physics/ninja/AABB.js, line 702 projAABB_22DegS(x, y, obj, t) ? {number} Resolves 22 Degree tile collision. Parameters: Name Type Description x number Penetration depth on the x axis. y number Penetration depth on the y axis. obj Phaser.Physics.Ninja.AABB The AABB involved in the collision. t Phaser.Physics.Ninja.Tile The Tile involved in the collision. Returns: number - The result of the collision. Source - physics/ninja/AABB.js, line 622 projAABB_45Deg(x, y, obj, t) ? {number} Resolves 45 Degree tile collision. Parameters: Name Type Description x number Penetration depth on the x axis. y number Penetration depth on the y axis. obj Phaser.Physics.Ninja.AABB The AABB involved in the collision. t Phaser.Physics.Ninja.Tile The Tile involved in the collision. Returns: number - The result of the collision. Source - physics/ninja/AABB.js, line 569 projAABB_67DegB(x, y, obj, t) ? {number} Resolves 67 Degree tile collision. Parameters: Name Type Description x number Penetration depth on the x axis. y number Penetration depth on the y axis. obj Phaser.Physics.Ninja.AABB The AABB involved in the collision. t Phaser.Physics.Ninja.Tile The Tile involved in the collision. Returns: number - The result of the collision. Source - physics/ninja/AABB.js, line 834 projAABB_67DegS(x, y, obj, t) ? {number} Resolves 67 Degree tile collision. Parameters: Name Type Description x number Penetration depth on the x axis. y number Penetration depth on the y axis. obj Phaser.Physics.Ninja.AABB The AABB involved in the collision. t Phaser.Physics.Ninja.Tile The Tile involved in the collision. Returns: number - The result of the collision. Source - physics/ninja/AABB.js, line 755 projAABB_Concave(x, y, obj, t) ? {number} Resolves Concave tile collision. Parameters: Name Type Description x number Penetration depth on the x axis. y number Penetration depth on the y axis. obj Phaser.Physics.Ninja.AABB The AABB involved in the collision. t Phaser.Physics.Ninja.Tile The Tile involved in the collision. Returns: number - The result of the collision. Source - physics/ninja/AABB.js, line 935 projAABB_Convex(x, y, obj, t) ? {number} Resolves Convex tile collision. Parameters: Name Type Description x number Penetration depth on the x axis. y number Penetration depth on the y axis. obj Phaser.Physics.Ninja.AABB The AABB involved in the collision. t Phaser.Physics.Ninja.Tile The Tile involved in the collision. Returns: number - The result of the collision. Source - physics/ninja/AABB.js, line 885 projAABB_Full(x, y, obj, t) ? {number} Resolves Full tile collision. Parameters: Name Type Description x number Penetration depth on the x axis. y number Penetration depth on the y axis. obj Phaser.Physics.Ninja.AABB The AABB involved in the collision. t Phaser.Physics.Ninja.Tile The Tile involved in the collision. Returns: number - The result of the collision. Source - physics/ninja/AABB.js, line 491 projAABB_Half(x, y, obj, t) ? {number} Resolves Half tile collision. Parameters: Name Type Description x number Penetration depth on the x axis. y number Penetration depth on the y axis. obj Phaser.Physics.Ninja.AABB The AABB involved in the collision. t Phaser.Physics.Ninja.Tile The Tile involved in the collision. Returns: number - The result of the collision. Source - physics/ninja/AABB.js, line 510 render(context, xOffset, yOffset, color, filled) Render this AABB for debugging purposes. Parameters: Name Type Description context object The context to render to. xOffset number X offset from AABB's position to render at. yOffset number Y offset from AABB's position to render at. color string color of the debug shape to be rendered. (format is css color string). filled boolean Render the shape as solid (true) or hollow (false). Source - physics/ninja/AABB.js, line 1003 reportCollision(px, py, dx, dy) Process a collision partner-agnostic collision response and apply the resulting forces. Parameters: Name Type Description px number The tangent velocity py number The tangent velocity dx number Collision normal dy number Collision normal Source - physics/ninja/AABB.js, line 128 reportCollisionVsBody(px, py, dx, dy, obj) Process a body collision and apply the resulting forces. Still very much WIP and doesn't work fully. Feel free to fix! Parameters: Name Type Description px number The tangent velocity py number The tangent velocity dx number Collision normal dy number Collision normal obj number Object this AABB collided with Source - physics/ninja/AABB.js, line 248 reportCollisionVsWorld(px, py, dx, dy) Process a world collision and apply the resulting forces. Parameters: Name Type Description px number The tangent velocity py number The tangent velocity dx number Collision normal dy number Collision normal Source - physics/ninja/AABB.js, line 202 resolveTile(x, y, body, tile) ? {boolean} Resolves tile collision. Parameters: Name Type Description x number Penetration depth on the x axis. y number Penetration depth on the y axis. body Phaser.Physics.Ninja.AABB The AABB involved in the collision. tile Phaser.Physics.Ninja.Tile The Tile involved in the collision. Returns: boolean - True if the collision was processed, otherwise false. Source - physics/ninja/AABB.js, line 467 reverse() Source - physics/ninja/AABB.js, line 216


Button Clicker, is kind of like Cookie Clicker. And if anyone out there does not know what Cookie Clicker. It is a game (web, and mobile), that is catergorized as an idle game. An idle game, is where you advance through the game, both by accually playing the game, or by letting the game idle in the background.
Clicker Counter, is a 'game' (not really, but yes), where the 'player' clicks a button. The number of clicks is counted, and shown on screen. The player gets an 'achievement', every time they reach a pre-determined milestone of clicks. Each achievement is filled with just the right amount of sarcasm, so that the 'game' is not to bland.


--- notes: | Grid system is powered by [Gridle](http://gridle.org/documentation/1.3.3) Grid is configured in `_grid-settings.scss` partial Container element is `.l-grid` Format for grid units is: `.l-grid__unit-{?breakpoint}-{span}` Order of grid classes should be: {default} | {sm} {md} {lg} ---


0.9.0 (06/04/2020)
Fourteenth alpha release.
New feature and refactoring
-
Added comprehensive support for the
Co-authored-by
footer type.
I've worked hard to have the best UX possible. Try it and let me know!
- Aligned the parser to the Conventional Commit standard for footers
- Offered only footer values when completing in that context. No more interferences with other unneeded items


Written by: Andrew Reich & Ted Cohen
Transcribed by: Eric Aasen
[Scene: Monica, Chandler, and Phoebe's, everyone is there having breakfast and Joey enters carrying a loaf of bread.]
Joey: Hey!
Ross: Hi!
Joey: Who wants French toast?
Ross: Oh, Ill have some!
Joey: Good, me too. (Tosses him the loaf.) Eggs and milk are in the fridge. Thanks.
Monica: (entering from her room) Oww!
Chandler: Whats the matter honey?
Monica: I dont know, my hand feels weird. I guess its because, Im engaged! (Shows off the ring.) How long before it starts getting annoying?
Phoebe: It starts?
Rachel: Yeah, so lets get started on the wedding plans!
Monica: Okay! (Runs off.)
Chandler: (incredulous) Already?!
Rachel: Yeah, we got a lot to do! We gotta think about the flowers, the caterers, the music
Chandler: Oh, I got some thoughts on that.
Rachel: Oh wait Chandler, too many cooks
Ross: Take from me, as the groom all you have to do is show up and try to say the right name.
Monica: (returning) Okay! (Sets down a huge 3" 3-ring binder on the table.)
Chandler: What in Gods name is that?!
Ross: Oh my God, the wedding book?! I havent seen that since the forth grade!
Monica: This baby has got everything. Take yknow, locations for instance. (She opens up the binder to the locations chapter.) First, organized alphabetically, then geographically, then by square footage.
Phoebe: That is so smart! (To Chandler, under her breath) Break it off. Break it off now.
Opening Credits
[Scene: A Classroom, Ross is giving a lecture.]
Ross: And that should conclusively prove that I had the idea for Jurassic Park first! Now lets take a look at (Phoebe rushes in.)
Phoebe: Hey! Ross!
Ross: Phoebe, oh my God! Wh-wh-what are you doing here?
Phoebe: I need to talk to you, its pretty urgent. Its about Monica and Chandler.
Ross: Oh my God! Of course, of course. (To the class.) Umm, would you please excuse me for a moment? Umm, do you know each others hometowns? Why dont you (Motions that they should learn everyones hometown.) (To Phoebe) Wh-whats going on?
Phoebe: Well, umm, not much. But, I was just thinking that since those guys just got engaged that maybe it would be nice if they had some privacy, yknow? So, could I just move in with you for a couple days?
Ross: Umm, okay, yeah, sure. But wh-whats wrong with Monica and Chandler?
Phoebe: NothingWhy?!
Ross: Phoebe, you said it was urgent!
 Im going to the movies and it starts in like five minutes.

Phoebe: (to the students) Oh, Im sorry. Im so rude. Does anyone want to come to the movies?
[Scene: Monica, Chandler, and Phoebe's, Rachel and Monica are pretty much telling Chandler what the wedding plans are.]
Monica: All right, so I havent cleared the budget with my parents yet, but tell me how this is for music.
Rachel: Okay.
Monica: All right umm, a string quartet for the procession.
Rachel: Aw.
Monica: A jazz trio for cocktails. The Bay City Rollers for dancing. Wait, that was from my sixth grade wedding.
Chandler: Well, you couldnt get them anyway. Ian doesnt plan anymore and Derrick (Off of Rachel and Monicas looks) And Derrick is a name I shouldnt know.
Joey: (sitting up from the couch) Hey Mon, do you have another pillow? (Holds up one.) Yknow, something a little snugglyer?
Chandler: Why are you napping over here instead of over at your place?
Joey: Well, the duck
Rachel: What?! The duck?!

Chandler: Now, do I get to look at this book or is it just for people who are actually involved in the wedding?
Monica: Of course you can look at it! Yeah, I want your opinion too!
Chandler: Okay.
Monica: Here you go! What do you think about centerpieces?
Chandler: Centerpieces!
Monica: Yeah! Roses or Lilies? (Holds up a picture of each.)
Chandler: Definitely roses. (Monica and Rachel exchange a look.) Well, I just think theyre a little more weddingy. (Monica holds the Lily picture closer to him.) But Lilies are the clear choice.
Monica: Oh my God! Its like one mind.
Chandler: Uh-huh!
Joey: (sitting up again) Guys! Guys!! You gotta let me nap! Ugh, Im gonna get cranky!
Rachel: Joey, there is a perfectly good couch across the hall!
Joey: Yes it is perfectly good, and it is not one of the places the duck got sick!
Rachel: What?!
Joey: All right, Im gonna go! (Gets up and heads for the door.)
Rachel: Now Joey, what did the duck do?!
Joey: I dont know!
[Cut to Joey and Rachels, Joey enters and heads for his bedroom. He pushes open the door to find the duck.]
 (The duck does not get sick and Joey recoils in horror and heads for the couch.)  (Hes about to try out the couch but notices the bed in Rachels room. He walks into her room and feels the bed.) Thats so soft. (He pulls back the comforter.) Pillowcases! (He climbs in and groans in delight. Suddenly, he feels something under him and pulls out a little beat up paperback book. He opens it and starts to read from it.) (In his head.) Zelda looked at the chimney sweep. Her father, the vicar (Stops reading and thinks.) The vicar? (Continues reading) wouldnt be home for hours. Her loins were burning. She threw caution to the wind and reached out and grabbed his (Out loud.) Whoa! (Reads on in silence.) Whoa-ho-ho-ho!  (Continues to read.)
[Scene: Rosss apartment, Phoebe has moved in and has a massage client on her table shes set up in the living room. Ross enters and is shocked to see a naked man lying on the table.]
Ross: Uh, Phoebe
Phoebe: Oh Ross, hi.
Ross: Phoebe, what are you doing?
Phoebe: Im sorry, Im with a client right now.
Ross: Phoebe!
Phoebe: Okay, lets talk outside.
(They go into the hall.)
Ross: Phoebe, you cant massage people in my apartment!
Phoebe: Whats the big deal? I did it at Monica and Chandlers!
Ross: And they knew about it?
Phoebe: (pause as she considers it) Okay, well Ross, what is this really about?
Ross: Look, this is my home and I want to be able to come and go whenever I want!
Phoebe: Okay, I will find someplace else to do the rest of my appointments. I just dont know what the big deal is!
Ross: The big deal is I dont want naked, greasy strangers in my apartment when I want to kick back with a puzzlebeer! Cold beer.
[Scene: Joey and Rachel's, Joey is sweeping up as Rachel enters.]
Rachel: Hey Joey, what cha doing?
Joey: Sweepin. Why? Turn you on?
Rachel: No.
Joey: Huh. What if I was sweeping a chimney?
Rachel: Joey, did you my face cream?
(She walks into her bedroom.)
Joey: Where are you going? The vicar wont be home for hours.
(She comes back out.)
Rachel: Joey, (nervously) where did you learn that word?
Joey: Where do you think, (pause) Zelda?
Rachel: (gasps) You found my book?!
Joey: Yeah I did!
Rachel: Joey, what-what are you doing going into my bedroom?!
Joey: Okay, look Im sorry, I went in there to take a nap and I know I shouldnt have, but you got porn!
Rachel: Hey-hey, yknow what? I dont care! Im not ashamed of my book.  Its just a healthy expression of female sexuality, which by the way, you will never understand. (She goes into her room.)
Joey: You got porn!
[Scene: Ross's apartment, Ross is coming out of the living room carrying his salad and a puzzlebeer! Cold beer. And he decides to fold up Phoebes massage table, but being Ross has trouble with it as there is a knock on the door. He sets the table back up and opens the door to reveal a beautiful woman.]
Ross: Hello.
Woman: Hi, is uh Phoebe here?
Ross: Uh no-no, she-shes out for the night.
Woman: Ohh great.
Ross: Can I, can I help you with something?
Woman: Well, I dont know. Are you a masseur?
Ross: (deadpan) Yes I am.
Woman: Great! (Calls down the hall) Dad! (Her old father walks in.) Thank you so much, Ill be back to pick him up in an hour. (She walks away.)
(Ross isnt happy and closes the door slowly.)
[Scene: A Restaurant, Monica and Chandler are having dinner with her parents.]
Mrs. Geller: So Chandler, youre parents mustve been thrilled when you told them you were engaged.
Chandler: Oh yeah, I should probably call them.
Mr. Geller: I remember when we first got engaged.
Chandler: Oh, I dont think I ever heard that story.
Monica: Oh dad, really you dont need to
Mr. Geller: (ignoring her) Well, Id gotten Judy pregnant. I still dont know that happened.
Mrs. Geller: (incredulous) You dont know how that happened?!

Monica: Well, at least youre not hearing it for the first time at your fifth grade Halloween party.
Mr. Geller: What?! They wanted a scary story!
Monica: Anyway, were really excited about our wedding plans, and well I guess pretty soon well be making a big withdrawal from the Monica wedding fund. (Chandler and her laugh, but her parents dont.) What?
Mrs. Geller: You tell her Jack, I cant do it.
Monica: What happened? You still have the Monica wedding fund dont you?
Mr. Geller: We have it. Only now, we call it the beach house.
Commercial Break
[Scene: A Restaurant, scene continued from before the break.]
Monica: I dont believe you spent my wedding fund on the beach house!
Mrs. Geller: Were sorry honey, but we just assumed if you got married after you turned 30 youd pay for it yourself.
Monica: You bought the beach house when I was 23!
Mr.
Mrs. Geller: We really do feel bad about this though.
Mr. Geller: We started saving again when you were dating Richard and then that went to hell, so we redid the kitchen.
Monica: What about when I started dating Chandler?
Mrs. Geller: Well it was Chandler! We didnt think hed ever propose!
Chandler: Clearly I did not start drinking enough at the start of the meal. (Starts to make up for lost time and takes a big swig of his drink.)
Monica: I cant believe it! That there is no money for my wedding?!
Mrs. Geller: We might still have some money, if your father didnt think it was a good idea to sell ice over the Internet.
Mr.
Mr. Geller: All right, enough! I dont want to hear about it anymore! (Under his breath) Good luck, Chandler. (Chandler takes another drink.)
[Scene: Ross's apartment, his massage client is on the table and Ross is reluctantly starting his massage. He spreads some lotion in his hands, and doesnt like it.]
Ross: Okay! Now, Im going to touch you. (He does so, very gingerly.) Ohh, thats soft. (He starts poking him and notices his salad spoons and starts to massage him with those.)
[Scene: Monica, Chandler, and Phoebe's, Monica and Chandler are returning from dinner, Rachel is already there.]
Monica: I cant believe this. Do you think that your parents could help pay for it?
 Shes saving the rest for her divorce. And any extra cash my father has he saves for his yearly trips to (Pause) Dollywood.
Rachel: Well what happened at dinner?
Monica: My parents spent the money for our wedding!
Phoebe: (gasps) My God! What did you order?!
Rachel: Wait, but theres no money! Well this is terrible!
Chandler: Honey, its gonna be okay.
Monica: No! No its not! Its not gonna be okay! It sucks! No swing band! No lilies!
Rachel: No, yknow what? Its gonna be okay. I mean you dont have to have this rustic Italian feast. Yknow? And-and you dont need, you dont need this custom-made, empire waisted, duchess, satin gown; you can wear off the rack. (She starts to cry, as does Monica.)
Chandler: Look, it really is gonna be okay. The important thing is that we love each other and that were gonna get married.
Rachel: Do you even understand what off the rack means?!
Phoebe: Look, why dont you just pay for it yourself?
Monica: How? I dont have any money.
Chandler: Well, I have some.
Monica: How much?
Chandler: Well, close to (Notices Rachel leaning in to hear and decides to write it on a piece of paper and hand it to Monica as Phoebe averts her eyes.)
Monica: Whoa!!! Are you kidding me?!
Rachel: Well what?! How-how much is it?!
Monica: Its enough for wedding scenario eight.
Rachel: Ohh! (Whispers.) Really?!
 I mean, the-the amount you have is exactly the budget of my dream wedding!
Rachel: (starting to cry) Ohh, you guys are so made for each other.
Chandler: Well, youre not suggesting that we spend all of the money on the wedding?
Rachel and Monica: Ah, yeah!
Chandler: Well, come on, Ive been saving this money for six years and I kinda had some of it earmarked for the future, not just for a party.
Phoebe: (reading the slip of paper) Wow! (In a sultry voice) Hello, Mr. Chandler.
Monica: This is the most special day of our lives.
Chandler: No, I realize that honey, but Im not gonna spend all of the money on one party.
Monica: Honey, umm I-I love you, (laughs) but umm, if you call our wedding a party one more time, you may not get invited. Okay? (Laughs) Listen, we could always earn more money, okay? But uh, were only gonna get married once.
Chandler: Look, I understand, but I have to put my foot down. Okay? The answer is no.
Monica: You-youre gonna have to put your foot down?
Chandler: Yes, I am!
Phoebe: Wow, money and a firm hand. Finally a Chandler I can get on board with.
[Scene: Central Perk, Joey and Ross are there as Rachel enters and sees Joey sitting there.]
Joey: Hey Rach.
Rachel: (quietly) Joey.

Rachel: Uh-huh, I get it, smoke, chimney, chimney sweep, very funny, ha-ha.
Joey: No-no-no, Im serious. You dont smell it? Somethings on fire.
Rachel: Well no, I dont smell anything.
Joey: Oh, yknow what? Its probably just your burnin loins.
Ross: (sitting down) Hey, what are you guys, what are you guys talking about?
Rachel: Nothing!
Ross: (takes a drink) Damn, this coffees cold! Hey Rach, do you mind if I heat this up on your loins? (Joey and he both laugh.)
Rachel: Yknow, I can not believe you told him, Joey!
Ross: So I guess you bought that book after we broke up huh?
Rachel: Uh-huh, yeah I did, because I wore out my first copy when I was with you. (Exits.)
Ross: (chases her) Oh yeah, yeah? Well uh, when we were going out, I read tons of porno magazines! (Realizes a table of women overheard him.) (To that table.) Sup?
Phoebe: (entering) Ross! How could you do that to an old man?!
Ross: (looking at the table) Excuse me ladies. (To Phoebe) Im sorry?
Phoebe: My massage client, Arthur? His daughter called and said that some guy that worked for me gave him a really weird massage this afternoon.
Ross: (incredulous) I gave him an extremely professional massage!
Phoebe: He said you poked at him with wooden spoons.
Ross: Okay, so it wasnt uh, a traditional massage. But I did give him accu-pressure with a pair of chopsticks. And, and I gently exfoliated him with, with a mop.
Phoebe: Well, hes never coming back! Okay? You just cost me eight dollars a week!
Ross: Hey, yknow what? This is your fault! Youre the one that didnt move his-his appointment.
Phoebe: Oh, its my fault?! You didnt have to massage him! You couldve sent him away! You couldve not rolled Tonka trucks up and down his back!
Ross: He said he liked that!!  Im sorry.
Joey: Dude, what are you massaging an old man for?
Ross: His daughter was hot.
Joey: Gotcha.
[Scene: Monica, Chandler, and Phoebe's, Chandler is looking at the wedding book as Monica enters.]
Monica: Hey.
Chandler: Hey.
Monica: Listen umm, Ive been thinking, its not fair for me to ask you to spend all of your money on our wedding. I mean, you work, you work really hard for that.
Chandler: Ehh.
Monica: Eh, you work for that.
Chandler: Look, I thought about it too, and Im sorry. I think we should spend all of the money on the wedding.
Monica: You do?!
Chandler: Yeah, Im putting my foot down.
 (They hug and kiss.) Oh, but wait, what about our, what about the future and stuff?
Chandler: Eh, forget about the future and stuff! So we only have two kids, yknow? Well pick our favorite and that one will get to go to college.
Monica: You thought about that?
Chandler: Yeah.
Monica: How many kids were we gonna have?
Chandler: Uh, four, a boy, twin girls and another boy.
Monica: What else did you think about?
Chandler: Well, stuff like whered we live, yknow? Like a small place outside the city, where our kids could learn to ride their bikes and stuff. Yknow, we could have a cat that had a bell on its collar and we could hear it every time it ran through the little kitty door. Of course, wed have an apartment over the garage where Joey could grow old.
Monica: (laughs) Yknow what? I-I dont want a big, fancy wedding.
Chandler: Sure you do.
Monica: No, I want everything you just said. I want a marriage.
Chandler: You sure?
Monica: Uh-hmm.
Chandler: I love you so much.
Monica: I love you. (They kiss.) Hey listen umm, when, when you were talkin about our future you said cat, but you meant dog right.
Chandler: Oh yeah, totally!
Monica: Oh good.
Ending Credits
[Scene: Joey and Rachel's, Rachel is balancing her checkbook as Joey enters from his room wearing a hockey helmet, gloves, and shin guards.]
Joey: Hello, Zelda.
Rachel: Who are you supposed to be?
Joey: The vicar!

Joey: Like a goalie, right?
Rachel: (sarcastically) Yeah. Look Joey, its enough all right?!
Joey: All right, Im sorry. Rach IRach Im sorry. Okay? Im sorry! Maybe I can make up for it by, taking you roughly in the barn. (Giggles.)
Rachel: All right! Yknow what? Thats it! You wanna do it?! Lets do it!
Joey: Huh?
Rachel: (starting to move closer to him) Thats right, I wanna do it with you! Ive been trying to fight it, but you just said all the right things.
Joey: (nervously backing away) I-I-I-I did?
Rachel: (moves the stool out of the way) Yeah! Ohh, Ive been waitin so long to get on that body!
Joey: This body? (He backs into the kitchen.)
Rachel: Yeah thats right!
Joey: Hey-hey, youre startin to sound like the butchers wife there in-in chapter seven.
 Get those clothes off! But, I would keep that helmet on because youre in for a rough ride! (He backs into the door.)
Joey: I dont want to, Im scared.
(Rachel walks away, pleased with her self.)
End