1
0
mirror of https://github.com/MarlinFirmware/Marlin.git synced 2024-11-27 22:08:02 +00:00
Commit Graph

498 Commits

Author SHA1 Message Date
Scott Lahteine
dc2281d2f4 Add nextMenu, nextEncoderPosition to change menus after handler loop 2016-04-20 20:19:12 -07:00
Scott Lahteine
7fa2bda1b9 Give the "alive dot" its own blink 2016-04-20 18:57:17 -07:00
Scott Lahteine
9d5e1f32fd Use axis_homed in _lcd_level_bed_homing, item in Prepare before homing 2016-04-20 18:53:33 -07:00
Scott Lahteine
9bcb72e7f8 Further patches to MBL - break up into more handlers 2016-04-20 16:37:35 -07:00
Scott Lahteine
3f6ae85748 Fix some MBL display issues for DOGLCD 2016-04-20 16:36:45 -07:00
Scott Lahteine
3db5a75f30 Merge pull request #3568 from thinkyhead/rc_various_fixes
General code cleanup, improved naming, etc.
2016-04-19 20:53:38 -07:00
Scott Lahteine
78747b1328 min_pos/max_pos => sw_endstop_min/sw_endstop_max 2016-04-19 19:43:38 -07:00
Scott Lahteine
ba84d8d091 Allow setting PIDTEMP and PIDTEMPBED together or apart 2016-04-19 18:09:29 -07:00
Scott Lahteine
4f04bf7fe8 Show steps done in the babystep display 2016-04-18 20:52:38 -07:00
Scott Lahteine
c242bee449 Add a final lift, if configured, in Manual Bed Leveling 2016-04-17 00:12:46 -07:00
Scott Lahteine
234987ee2f Fix MBL lift 2016-04-16 14:17:06 -07:00
Scott Lahteine
e0830bf8f1 Don't use LCD alert unless error or alert level is reset later 2016-04-15 18:48:49 -07:00
Scott Lahteine
866c5be395 Merge pull request #3500 from thinkyhead/rc_shrink_menu_macros
Reduce redundancy in MENU_ITEM code
2016-04-14 19:09:14 -07:00
Scott Lahteine
4fb8013be1 Reduce redundancy in MENU_ITEM code 2016-04-14 18:42:06 -07:00
Scott Lahteine
2129db581e Simplify MBL movement, zigzag 2016-04-14 16:58:42 -07:00
Scott Lahteine
0493fccc0b mbl.active is a bool now 2016-04-14 16:58:42 -07:00
Scott Lahteine
b05f448317 Comments on MBL menu items 2016-04-14 16:58:42 -07:00
Scott Lahteine
fda8f96f00 Fix bug in lcd_preheat_pla0123 and lcd_preheat_abs0123
Trying to preheat a non-existent extruder causes a crash.
2016-04-14 15:48:43 -07:00
Scott Lahteine
2ae7394640 More fine-grained control of LCD redraw 2016-04-12 21:34:34 -07:00
Scott Lahteine
3a1ac14bbc Merge pull request #3437 from thinkyhead/rc_lcd_encoder_movement
More bits when encoderPosition is cast as signed
2016-04-11 17:03:23 -07:00
Scott Lahteine
386140f361 Test time difference in safe way 2016-04-10 18:09:31 -07:00
Scott Lahteine
8198cc30b5 More bits when encoderPosition is cast as signed 2016-04-09 14:22:12 -07:00
Scott Lahteine
4e17187c96 Merge pull request #3426 from thinkyhead/rc_no_unhomed_lcd_move_on_delta_scara
No LCD Move for unhomed Delta/SCARA
2016-04-07 19:29:45 -07:00
Scott Lahteine
5fc6daba2b Disallow REPRAPWORLD_KEYPAD moves on Delta/SCARA until homed 2016-04-07 18:40:54 -07:00
Scott Lahteine
165e73794a Tweak encoderPosition non-zero test 2016-04-07 16:09:42 -07:00
Scott Lahteine
479d307a44 Disable LCD Move XYZ for unhomed Delta/SCARA 2016-04-07 16:09:42 -07:00
Scott Lahteine
fb38d698db Add feedback after "Click to Begin" 2016-04-05 15:35:05 -07:00
Scott Lahteine
582b58e660 Add audio feedback to edit items 2016-04-05 14:51:11 -07:00
Scott Lahteine
a70c3ffc21 Minor syntax tweak with encoderPosition 2016-04-05 14:51:11 -07:00
Scott Lahteine
0f247187b8 Drop extra setting of currentMenu 2016-04-05 14:51:11 -07:00
Scott Lahteine
24cde86a4f Fix syntax highlighting of menu_edit_type lines 2016-04-05 14:51:11 -07:00
Scott Lahteine
86372cd394 Add underscore to internal lcd move function names 2016-04-05 14:51:11 -07:00
Scott Lahteine
aa97328cd3 Use min_pos/max_pos for _lcd_move 2016-04-05 14:51:10 -07:00
Scott Lahteine
f936df9507 Small cleanup of feedrate dead-zone 2016-04-05 14:51:10 -07:00
Scott Lahteine
f5c2fb27cd Handle defer_return_to_status in lcd_goto_menu 2016-04-05 14:51:10 -07:00
Scott Lahteine
8459f7fa5c Use ms where possible. 2016-04-05 14:51:10 -07:00
Scott Lahteine
34ce9c4c1c Restore save previous for menu edit items 2016-04-05 14:26:36 -07:00
Scott Lahteine
1220dfd5d6 Fix: menu edit items saving position twice 2016-04-04 16:36:04 -07:00
Scott Lahteine
d771174797 Merge pull request #3337 from esenapaj/patch-2
suppress warnings
2016-04-03 17:01:22 -07:00
Scott Lahteine
7a2f73c6db Remove extra comma from LCDHandlerAction 2016-04-03 16:27:30 -07:00
Scott Lahteine
3fbf67e5ce Patch MBL feedback and event handling 2016-04-03 16:27:30 -07:00
Scott Lahteine
ef2fbaec98 Headings for menu sub-items, actions, etc. 2016-04-03 16:27:29 -07:00
Scott Lahteine
dc109ac4e2 Move MBL code to its logical place 2016-04-03 16:27:29 -07:00
Scott Lahteine
6730408ec1 Move lcd_autostart_sd to its logical place 2016-04-03 16:27:29 -07:00
Scott Lahteine
056b80dc53 Have "back" menu items go to the previous item 2016-04-03 16:27:29 -07:00
Scott Lahteine
c94482168b Add MSG_LEVEL_BED_CANCEL for MBL 2016-04-03 16:27:29 -07:00
esenapaj
f9e1a0ee6c suppress warnings 2016-04-04 06:48:53 +09:00
Scott Lahteine
771ee1c1a9 Update MBL menu sub-function names 2016-04-02 18:20:47 -07:00
Scott Lahteine
d659777e70 Fix MBL to handle re-entrant calls 2016-04-02 18:14:49 -07:00
Scott Lahteine
5719fcba51 Add MSG_LEVEL_BED_DONE and MSG_LEVEL_BED_WAITING 2016-04-02 18:14:49 -07:00
Scott Lahteine
d1c45ff80b More user interaction in MBL 2016-04-02 18:14:49 -07:00
Scott Lahteine
240b71ee1c Give names to lcdDrawUpdate values 2016-04-02 18:14:48 -07:00
Scott Lahteine
b0a3c7a91c Add feedback sounds to MBL items 2016-04-02 17:08:43 -07:00
Scott Lahteine
782c598e66 Use ftostr43 with '+' option in MBL Z adjuster 2016-04-02 17:08:43 -07:00
Scott Lahteine
f08b0d034f Merge pull request #3328 from RicardoGA/RC_Babystepping_fix
Babystepping Fix
2016-04-02 16:48:45 -07:00
RicardoGA
6b1d2263a2 Babystepping Fix 2016-04-02 14:53:57 -06:00
Alexander Hirzel
6e0d627c8c Unbreak the Delta radius clipping 2016-04-02 12:58:39 -04:00
Alexander Hirzel
949172606f Fix manual Y movement on delta (regression). 2016-04-02 10:48:13 -04:00
Scott Lahteine
b98f72b483 Small optimization for ftostr43 2016-04-01 17:54:16 -07:00
Scott Lahteine
a393941d2d Combine "XYZ" with MSG_LEVEL_BED_HOMING 2016-04-01 17:51:03 -07:00
Scott Lahteine
097cc75ba8 Patch _lcd_level_bed draw to fix flicker, show proper offset 2016-04-01 17:51:03 -07:00
Scott Lahteine
1e1a18e091 Remove extra semicolon in ultralcd.cpp 2016-04-01 17:51:03 -07:00
Scott Lahteine
0b4f65dca8 Always limit blink to ~1 second intervals 2016-04-01 17:51:03 -07:00
Scott Lahteine
0d6609c3c5 lcd_goto_menu should set lcdDrawUpdate to 2 2016-04-01 17:07:40 -07:00
Scott Lahteine
af89ccf96a Use flag to defer lcd return-to-status 2016-04-01 17:07:39 -07:00
Scott Lahteine
641b30217e Patch prevEncoderPosition compile issue
Thanks to @jbrazio #3301
2016-04-01 17:07:39 -07:00
Scott Lahteine
92882fcc51 Allow lcd_implementation_drawedit to draw a message 2016-04-01 17:04:33 -07:00
Scott Lahteine
fcedfd6e99 Clean up num2str functions, extend ftostr43 2016-04-01 16:52:59 -07:00
Scott Lahteine
f543aaa54e Apply standard pin test to buttons
This is the easiest way to make button pin testing consistent without
renaming all the button pins. Just make a macro especially for testing
if button pins are set, since they are named consistently in the pins
files.
2016-04-01 15:12:12 -07:00
Scott Lahteine
6a4d394fff Fix pointer-to-string issues with set_home_offsets and _lcd_level_bed_homing 2016-03-30 12:32:25 -07:00
Scott Lahteine
f0b96f5cae Merge pull request #3276 from thinkyhead/rc_sdprint_and_lcd_sleuth
Refinements, fixes, reduced stack usage in CardReader
2016-03-29 18:30:18 -07:00
Scott Lahteine
4ed8351e3d Revert use of enqueue_and_echo_command_now 2016-03-29 16:23:12 -07:00
Scott Lahteine
b60ea95adf Keep blinking limited to LCD_UPDATE_INTERVAL 2016-03-28 19:41:13 -07:00
Scott Lahteine
8cb04816b5 Apply PID_AUTOTUNE_MENU option to ultralcd.cpp 2016-03-25 19:31:56 -07:00
Edward Patel
14afe1a017 Move to Z=0 for G28 when using Manual Bed Leveling
copy of 406992f9dd
2016-03-25 04:58:44 -07:00
Edward Patel
c606ed447a Add "G29 S4" to fine tune Z level for Mesh Bed Leveling.
Also add mbl.z_offset to the EEPROM, bumping the version to V23.
2016-03-25 04:58:43 -07:00
Scott Lahteine
f394c0639e Merge pull request #3230 from jbrazio/bugfix/ultra-lcd-warning
Fix a compiler warning in ultralcd.cpp
2016-03-25 01:14:54 -07:00
Scott Lahteine
0da744b7b0 Further cleanup of comments, partial Doxygen-style
Following up on #3231
2016-03-25 00:45:56 -07:00
jbrazio
80f221ed11 Fixed: warning: extra tokens at end of #endif directive 2016-03-24 19:33:25 +00:00
jbrazio
5e5d250832 Added gplv3 header to all Marlin files 2016-03-24 18:01:20 +00:00
Scott Lahteine
04fa9d4f47 Make Autotune options into Menu Edit Items 2016-03-24 02:00:08 -07:00
WPBack
e3f583a3be Fixes for PID AutoTune from menu
Fixes for #3189

Setting a temp is still missing
2016-03-24 01:47:30 -07:00
WPBack
3b3e8a02b5 Initial implementation of PID Autotune Menu Items
Adds the parameter U to M303. If U1 is included , it will use the
PID-values from the auto-tune.
2016-03-24 01:46:37 -07:00
Scott Lahteine
15fccd43ee Fix spacing of an #endif 2016-03-20 20:32:55 -07:00
Scott Lahteine
6a3529247f "Homing" as a translatable string 2016-03-19 04:41:03 -07:00
Scott Lahteine
c97c2dcaf7 Use const parameters instead of static casting
Alternative fix to #3149
2016-03-19 03:36:53 -07:00
Scott Lahteine
4bbea5124d Support for multiple PWM fans 2016-03-19 03:10:18 -07:00
Scott Lahteine
4634feaeab Merge pull request #3012 from thinkyhead/fix_command_injection
Use a serial line buffer to prevent queue corruption
2016-03-19 01:43:54 -07:00
Scott Lahteine
e5fd43f343 Implement BABYSTEPPING for COREXY and COREXZ 2016-03-18 18:22:53 -07:00
Scott Lahteine
8fe7420310 Use a separate serial line buffer 2016-03-18 16:46:20 -07:00
Scott Lahteine
7d25c107a8 Merge pull request #3149 from esenapaj/patch-1
suppress warnings
2016-03-18 15:40:14 -07:00
Scott Lahteine
d56c6af24e Merge pull request #3114 from thinkyhead/rc_reverse_lcd_menu
Option to reverse the click-wheel direction in menus
2016-03-18 15:39:29 -07:00
Scott Lahteine
cc291aeb3c Move definition of "blink" to main ultralcd file 2016-03-17 18:19:05 -07:00
Scott Lahteine
8f24475e02 Simplify limiting encoderLine in END_MENU 2016-03-16 04:05:41 -07:00
Scott Lahteine
fbef2f5b61 Implement reverse menu direction in ultralcd.cpp 2016-03-16 04:03:49 -07:00
Scott Lahteine
6e1bc03d3b Additional wrapping for #3140 2016-03-15 01:18:58 -07:00
Scott Lahteine
1c384930f3 Merge pull request #3140 from thinkyhead/rc_fix_macro_expansion
Wrap macros to prevent bad expansions
2016-03-15 00:25:34 -07:00
esenapaj
8de7a6f9b1 suppress warnings 2016-03-15 06:34:02 +09:00
Blue-Marlin
c73f1b2471 Extend stack_overflow_protection for lcd_move_e and _lcd_level_bed
Extend stack_overflow_protection for lcd_move_e() and _lcd_level_bed() with
a refined method of 3050.
2016-03-13 13:59:44 +01:00
Scott Lahteine
f9ded2a7c4 Wrap macros to prevent bad expansions 2016-03-12 22:38:55 -08:00
Scott Lahteine
b45a0c4c60 Fix bugs in edit submenus so they return to origin
Expected behavior: After editing a value the menu should return to the
previous place with the edited item selected.
Actual behavior: Either the top (back) item from the previous screen is
selected, or the menu jumps up another level.
Solution: Pass the correct arguments to `lcd_goto_menu` on click when
editing a value.
2016-03-09 21:06:56 -08:00
Scott Lahteine
f18d3f451a Limit LCD move_to_x/y coordinates for deltas
Related to MarlinFirmware/MarlinDev#270
2016-03-06 05:52:00 -08:00
Scott Lahteine
ff13070b59 Use _BV macros, patch up others 2016-03-06 05:51:55 -08:00
Scott Lahteine
209f5f21e0 Use macros where possible
Apply `constrain`, `NOMORE`, `NOLESS` and `CRITICAL_SECTION` macros
wherever possible.
2016-03-06 05:51:55 -08:00
Scott Lahteine
3a3d358df9 Fix Printrboard with LCD (redo)
Based on #2860 - rebased for RCBugFix
2016-03-05 22:13:00 -08:00
Scott Lahteine
eb85342fd9 Merge pull request #2989 from AnHardt/fix2661
Pre home display - Stepper release
2016-03-05 21:30:17 -08:00
AnHardt
e736779d7e blink for char-lcds
Implement and test blinking for char-lcds

# Conflicts:
#	Marlin/ultralcd_implementation_hitachi_HD44780.h
solved
2016-02-28 16:58:19 +01:00
Blue-Marlin
fd9e94e5a4 Fix crashes when the Z axis is moved via LCD
Fix crashes when the Z axis is moved via LCD
by calling `plan_buffer_line` only when there is enough room in the
planner buffer, to avoid endless recursion.
A brief description about what went wrong is in #1166
2016-02-28 00:59:47 +01:00
esenapaj
4882a7eded more suitable display format for delta printer 2016-01-29 18:38:25 +09:00
Ruwan J Egoda Gamage
06555febdd Using SET_INPUT instead of pinMode 2015-12-24 12:12:25 -05:00
Ruwan J Egoda Gamage
a64bcd53e9 reusing millis() 2015-12-13 22:06:03 -05:00
Ruwan J Egoda Gamage
83c4131ba3 Cleaning up, getting rid of the fake encoder count variable. 2015-12-13 15:28:40 -05:00
Ruwan J Egoda Gamage
5eeea2f611 Fixing Rigidbot LCD Panel Support 2015-12-13 15:28:40 -05:00
Scott Lahteine
60d5658da8 Revert nozzle_bed_fan_menu_items
For some reason that I cannot determine, using a sub-function causes
the Tune sub-menu to act strangely, yet replacing the function call
with its code content works perfectly.
2015-12-09 20:33:52 -06:00
AnHardt
bb4efcf603 Handle temp callbacks when THERMAL_PROTECTION_HOTENDS is not defined
by alternate definition for the callback macros
2015-12-01 07:21:52 -06:00
AnHardt
96d0d04b8f Update LCD buttons less frequently
Move slow_buttons_update into the LCD_UPDATE_INTERVAL block
lcd_implementation_read_slow_buttons() will then be executed ~10 times a
second.
2015-11-30 05:44:32 -06:00
AnHardt
c956b52c4a Babystep Multiplier
Analog to https://github.com/MarlinFirmware/MarlinDev/pull/250 by
@RicardoGA

Restore the Babystep Multiplicator functionality and now it's available
for X/Y/Z
2015-11-30 05:43:10 -06:00
AnHardt
be7167ed97 Change XY formatting on LCD (PR#2740)
According to #123 negative values for XY at or below -100 are displaying incorrectly, dropping the first digit. Deltas can easily have XY values in this range. This PR adds a function to display floats/ints formatted like `_123`, `-123`, `_-12`, or `__-1` as appropriate and applies it to the XY coordinates on Hitachi displays. It also moves the Z value to the right to be consistent with the XY formatting.
2015-11-13 06:46:11 -06:00
Scott Lahteine
754b13d8fe Patch issue #2315 2015-11-12 00:03:22 -06:00
Scott Lahteine
0c7f7ebcfb Styling adjustments (PR#2668 & PR#2670)
Keep "astyled" reformatting
2015-10-03 22:02:45 -05:00
Richard Wackerbarth
03f0edb57e Fix high LCD status screen update frequency (PR#2655) 2015-09-28 11:07:33 -05:00
Scott Lahteine
5d65a36dee Give lcd_sd_status an UNKNOWN state (PR#180) 2015-09-14 06:32:27 -05:00
Scott Lahteine
7ac7ddbf20 Show nozzles, heaters, and extruders numbered 1-4 2015-09-12 07:40:18 -05:00
Scott Lahteine
5bc480fee8 Fix Move E menu items 2015-09-12 07:33:49 -05:00
Scott Lahteine
fc882c34a3 Init lcd_sd_status as false to force lcd_update test
Replaces #145 which is way out of date
2015-09-12 07:32:20 -05:00
Scott Lahteine
e27dd5c22d Conditionalize functions that rely on SDSUPPORT 2015-09-12 07:30:09 -05:00
Scott Lahteine
558665cd90 Constrain Tune > Nozzle/Flow menu items 2015-09-10 08:47:11 -05:00
Scott Lahteine
f7f6b5faae Fix lcd_move_e compile error (PR#143)
Fix a compile error introduced in #98
2015-09-07 09:36:05 -05:00
Scott Lahteine
2b30e8ac99 Conditionals for ULTIPANEL without SDSUPPORT 2015-09-06 02:04:49 -05:00
Eric Kuzmenko
b23d765991 Added Extrude From Multiple Extruders from LCD feature 2015-09-05 05:33:18 -05:00
Richard Wackerbarth
6292d9e815 Rename ENABLE_AUTO_BED_LEVELING
With the introduction of the #if ENABLED(…)

reads better than
2015-08-27 20:52:08 -05:00
Scott Lahteine
46453905d6 Apply remaining ENABLED/DISABLED conditionals 2015-08-03 16:04:48 -05:00
Scott Lahteine
270c766de2 SDCARDDETECT -> SD_DETECT, added docs
- `SD_DETECT_PIN` replaces `SDCARDDETECT`
- `SD_DETECT_INVERTED` replaces `SDCARDDETECTINVERTED`
- Revise the description of `SD_DETECT_INVERTED`
- Add a note about the override of `SD_DETECT_INVERTED` in
`Conditionals.h`
2015-08-02 21:59:41 -05:00
Scott Lahteine
8d3b74cc6e Rename SDCARDDETECT to SDCARDDETECT_PIN
- Rename the pin so it can be tested with `PIN_EXISTS`
- Fix some incorrect tests for `SDCARDDETECT`
2015-08-02 21:34:13 -05:00
Scott Lahteine
94a796c8cc Rename BEEPER to BEEPER_PIN
For consistency with other pins, allowing use of `PIN_EXISTS` macro.
2015-07-31 17:13:53 -05:00
Scott Lahteine
0d8989fc14 Overridable Options - Part 7 (PR#2559)
Apply `ENABLED` / `DISABLED` macros to LCD-related files.
2015-07-31 01:04:37 -05:00
Scott Lahteine
c66955aaf9 Mark unchanging arrays as const (PR#2494)
The compiler may be able to optimize if it knows an array won’t be
changing.
2015-07-22 21:37:37 -05:00
Scott Lahteine
69b0490b77 Show minimal preheat options in menus (PR#2471) 2015-07-19 16:14:59 -05:00
AnHardt
722829b058 Move buzzing code to buzzr.h & buzzer.cpp (PR#2307)
at least the lcd independent part from Marlin_main.cpp.
2015-06-22 22:31:48 -04:00
Scott Lahteine
a274769f4f Clean up spacing and comments
Also clean up some trailing spaces in a few other sources
2015-06-15 20:20:31 -05:00
AnHardt
6ab7b560af Rework buzzing (PR#2296)
by:
Moving HAS_LCD_BUZZ macro to Coditionals.h
Renaming HAS_LCD_BUZZ to HAS_BUZZER to make clear is has nothing to do with the lcd.
Removing the ULTRALCD condition.

Moving declaration of lcd_buzz() out of the ULTRA_LCD block in ultralcd.h
Moving definition of lcd_buzz() out of the ULTIPANEL block in ultralcd.cpp
Renaming lcd_buzz() to buzz() to make clear is has nothing to do with the lcd.

All buzzing code is now only dependent on the existence of a BEEPER-pin or the definition of a LCD_USE_I2C_BUZZER.

To do: Check the conditions for the BEEPER-pin in all pin-files.
2015-06-15 06:13:26 -05:00
Scott Lahteine
90f858aa85 Use translated strings for axis movement (PR#2280)
Suggest we use the translated strings here. They use (except for
German) the phrasing “Move X” instead of just the axis letter, but they
should fit the available space. The “Extruder” string would be the
same, except it will be translated.
2015-06-14 08:16:00 -05:00
wurstnase
e7e964432b consistency name for multiplier
replace extruder_multiply with extruder_multiplier
like feedrate_multiplier or volumetric_multiplier
2015-06-01 22:33:22 +02:00
AnHardt
f18f689c01 Replace MSG_F? with MSG_N?
To avoid double definitions.
I prefer to read N for Number not for Nozzle.
2015-05-28 20:30:23 +02:00
AnHardt
bc0764894a Shift call of start_watching_heater() into setTargetHotend()
to warrant watching is set or reset.

Make setTargetBed() in _lcd_preheat() dependant of TEMP_SENSOR_BED.
Use disable_all_heaters() in lcd_cooldown() and abort_on_endstop_hit.
2015-05-21 20:36:11 +02:00
Ed Boston
ca8d1756d5 Define fixes
Fixed a couple defines that were not changed or commented out.
2015-05-18 14:23:31 -07:00
Ed Boston
a83bf18ee1 More functional seperation
Moved SDCARDDETECTINVERTED and SDSLOW to Conditionals.h.
Added U8GLIB_LM6059_AF to define display specific actions.
Added reminder to compile in u8glib
2015-05-18 05:37:46 -07:00
Ed Boston
047e688e93 Changed ADAFRUIT_ST7565 to ELB_FULL_GRAPHIC_CONTROLLER
Rename of define to avoid confusion between the controller and the
display which had similar names.
2015-05-17 15:23:17 -07:00
Ed Boston
41f8cdb3a6 ADAFRUIT_ST7565
Added support for new display type
2015-05-17 12:47:41 -07:00
Scott Lahteine
fcfd99c1ae Add comments to lcd_control_temperature_menu 2015-05-12 18:46:16 -07:00