Skip to content

Commit

Permalink
GFX v3.14.0
Browse files Browse the repository at this point in the history
commit 63deff02e45bcc17ed3ec629e8e37fd8958c703c
Date:   Fri Feb 16 16:25:23 2024 +0530

    Simulator Console Support

commit cafd0d7b3a42f4d712184f80956cfa8a5b4f0e95
Date:   Thu Feb 15 15:32:03 2024 -0700

    Update readme and release_notes

commit 501cb332c1aa6715f4091230abc7443e567992ea
Date:   Thu Feb 15 08:36:11 2024 -0700

    MH3-90439 Fix repo package.yml

commit f0184ab0614d79bb0bba1ed11ccad6c6f5d1859d
Date:   Fri Feb 2 16:00:01 2024 -0700

    Update documents and release notes for v3.14.0 release

commit 200050b9b4d9d87110b9d33cb05bc42fbe6e730d
Date:   Thu Jan 25 14:54:56 2024 +0530

    Updated Touch ITD driver

     - Updated .ftl for Touch ITD according to changes in Touch library 3.14.0

commit b720758b25822afe94d4f8fc27305d635b118999
Date:   Wed Feb 7 09:59:59 2024 +0530

    Additional Options for MGSWS Module

commit 8dc50b846c5a967df252118ac9b9b344d1d5486e
Date:   Mon Feb 5 16:30:16 2024 +0530

    Add 'Dynamic' Frame Buffer Allocation for Canvas

commit 19066ecd743e5439768df1e5e59ad8ebf91cf124
Date:   Tue Jan 16 11:12:20 2024 -0700

    v3.14 mac build

commit b4400ef1b13706a505f092dcbb8cc7245d2521f3
Date:   Thu Jan 11 20:07:05 2024 +0530

    Add MGS Web Simulator Module

commit 8f427e490189de2c92f9d616edd9194425e7e222
Date:   Mon Dec 18 16:23:03 2023 +0530

    Add Waveshare 4inch DSI LCD module

    https://www.waveshare.com/4inch-dsi-lcd.htm

commit ade0d4602a6550640c82ac824d633ffdea3db71d
Date:   Mon Dec 18 15:14:52 2023 +0530

    Fix UUID

commit a5569dd49d956d60bc938a0574e787c2cf564d14
Date:   Tue Dec 12 10:10:51 2023 -0700

    ComposerV3.14

    Updated Composer app for Harmony v3.14

    Release

commit 791e6832e331141cfa8aca58f98714a77d672738
Date:   Tue Dec 12 17:42:43 2023 -0700

    Add offline docs

commit 3123d1207078d732396751a4e89818a87d095e59
Date:   Tue Dec 12 13:24:03 2023 -0700

    Update documentation, package versions, markdowns for release

commit dd3a40586a5e930c64d71871614c1fb197fa7d7b
Date:   Fri Dec 1 12:15:04 2023 -0700

    driver: remove isc modules.

    removing isc driver from gfx. now on this will be managed through
    vision framework.

    Signed-off-by: Sandeep Sheriker M <sandeep.sheriker@microchip.com>

commit dd3a033fc83a755888fad84eb5a8e79c38586844
Date:   Fri Dec 8 13:38:49 2023 +0530

    Fix Warning

    Suppress LLVM warnings in simulator builds, the returned value is the same (-1).

commit d6e672dc0a69c877fe0c300a1f166606a3edb99b
Date:   Sat Dec 2 01:39:45 2023 +0530

    Fix DSI template

    More packet types.
    Fixed some dumb mistakes I made.

commit 8b4af1ed6e25c807249895659ef5a15ea747ecd7
Date:   Thu Nov 16 14:11:27 2023 -0700

    MH3-86692: Add RGB332 to all LCC drivers

commit 6d8b120654a0d26cc41bd4d6df925b7549e070af
Date:   Mon Nov 20 16:18:00 2023 -0700

    MH3-87181 - PNG Scratch Address issues

    Bug : Build fails when enabling PNG decoder scratch address, due to an undefine function being used in this case.

    Fix : Use "LE_PNG_SCRATCH_ADDRESS".

commit 4cbdc0ea82cee4db9be8e0a4669fc4a11146e164
Date:   Thu Nov 9 15:14:23 2023 -0700

    Increase max number of canvas objects

commit daef96cfc2beb404fda9be8f93ec70a90ae2632f
Date:   Wed Nov 8 15:00:46 2023 +0530

    Rpi Touch fix I

    - removed unused variables

commit dc63c2186c4fd2c88e15d57715f715ca0610b36d
Date:   Wed Nov 8 14:33:45 2023 +0530

    Rpi Touch Fix

commit e6a6bcc5981600cfbe8123fdbd3601bf6ceb0c47
Date:   Wed Nov 1 01:48:26 2023 +0530

    Add Waveshare 4inch DSI Round LCD module

commit b238ed3001bfaf61085859d63c99d59a01f536c2
Date:   Wed Nov 1 15:13:17 2023 -0700

    MH3-86510-Addon2

    Added X and Y inversion options.
    Fixed error in previous SwapXY code.

commit 79735e6662f7ae4f4e7db29f6400c767096b4945
Date:   Tue Oct 31 09:25:39 2023 -0700

    MH3-86510-Addon

    Added warning to indicate deprecation of Legato's Input Orientation feature

commit fc73bf9e42fd07935cd1135e3614020067fc5b94
Date:   Thu Oct 26 13:25:51 2023 -0700

    MH3-86510 - Input & Render orientation mismatch

    Bug : When the display panel and touch panel have different origins or aspect ratios, Legato's default touch-orientation adjustment doesn't work as intended.

    Fix : Moved the touch-input transformation logic into the Input System Service (sys_input .py/.ftl/.c)

commit 43e7bcba98bdefcc6dd58726593e660a81547f19
Date:   Mon Oct 9 11:21:58 2023 -0700

    MH3-74694 - LE_IMAGE_FORMAT_COUNT is incorrect

    legato_image.h

    Bug : LE_IMAGE_FORMAT_COUNT should represent the size of an enum, but it does this incorrectly.

    Fix : Updated LE_IMAGE_FORMAT_COUNT definition to be correct.

commit ca6e561116ace35c31231268166cf8ac1178f0fe
Date:   Thu Sep 21 14:44:18 2023 -0700

    MH3-85717-Fix

    Quick fix for an inconsistency introduced in previous MH3-85717 commit.

commit b930c00b9ed96d19a5369b2c35b9b26f1a4019a8
Date:   Fri Sep 15 14:19:26 2023 -0700

    MH3-85717 - Line Graph visual bugs

    legato_widget_line_graph_skin_classic.c

    Bug : Several off-by-one issues were causing the graph to render incorrectly. In addition, a flag called "fillGraphArea" was being used to determine whether lines should be rendered, when its name indicates that it should only be used in the context of rendering a fill, not lines.

    Fix : Fixed off-by-one issues, and removed the "fillGraphArea" flag from a couple branches where it didn't seem to make sense.

commit 59314d43b8d5837069e6abcd9770848188dfafe3
Date:   Fri Sep 15 12:55:16 2023 -0700

    MH3-85715 - Line graph crash with 1 data point

    legato_widget_line_graph_skin_classic.c

    Bug : With only one data point in the graph, the "stacked-fill" function encounters a divide-by-zero, due to a "size-1" becoming 0 when the size (# data points) was 1.

    Fix : Used similar code from "unstacked-fill" to provide an alternate code path when a graph with only 1 data point is trying to be filled.

commit 2d354d1904b3cd1b2b2b88a5f26826d37a3fe781
Date:   Wed Sep 13 15:00:31 2023 -0700

    MH3-85683 - Bar and Line Graph Widget Issues

    legato_widget_bar_graph
    legato_widget_line_graph

    Bug : A rectangle serving to draw the bar/line graph widgets was not taking its parent-object's position into account.

    Fix : Used "rectToScreen" function to take parent-object's position into account when determining where to draw widgets.

commit a85bc3b46f244c8a0328d534903d315712c3f13f
Date:   Tue Sep 12 15:08:14 2023 -0700

    MH3-85638 - Line graph crash

    leLineGraphWidget : Bug : An integer ID was being created, based off the size of an array minus one (size - 1). An empty array would cause the ID to become negative, resulting in a crash later on.

    leLineGraphWidget : Fix : Re-ordered the "size - 1" line to come after an item is added to the array. This should prevent scenarios that would allow the ID to be negative.

commit 77d96f64314a30a10362d6a7f073758268f9ae15
Date:   Tue Sep 5 12:54:05 2023 -0700

    MH3-85349 - MSVC Support

    Initial changes to convert HarmonyGFX to compile & run with MSVC2022.

commit 6fb91c9669393b12807e5d6203793ce656a70acf
Date:   Wed Sep 6 08:20:52 2023 -0700

    MH3-85348: Bound array check to make sure LCDC builds in xc32 Optimization level 3

commit 146580663d7b0748ee90e1998000495a3ab64a65
Date:   Fri Aug 18 10:52:05 2023 -0700

    Add template for PIC32CX SG41 Curiosity Ultra
  • Loading branch information
MHGC committed Feb 16, 2024
1 parent 67a80fd commit 20d549a
Show file tree
Hide file tree
Showing 176 changed files with 13,619 additions and 4,142 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
Gem*
*.log
*.o
*.map
Expand All @@ -15,6 +16,7 @@
**/*.IAR/*.dep
**/*.IAR/*.custom_argvars
.idea
.vs
/apps/aria_quickstart/firmware/aria_qs_e54_cult_xpro_parallel.X/build/
/apps/aria_quickstart/firmware/aria_qs_e54_cult_xpro_parallel.X/dist/
/apps/legato_quickstart/firmware/legato_qs_e54_cult_cpro_parallel.X/build/
Expand Down
6 changes: 3 additions & 3 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ timezone: America/Phoenix
description: Harmony 3 Graphics package
url: "https://microchip-mplab-harmony.github.io"
baseurl: "/gfx"
remote_theme: "Microchip-MPLAB-Harmony/just-the-docs@mchp-harmony"
remote_theme: "mchpgfx/just-the-docs@mchp-harmony"

# Build settings

Expand Down Expand Up @@ -94,7 +94,7 @@ aux_links:
- "https://support.microchip.com"

# Set a path/url to a logo that will be displayed instead of the title
logo: "/assets/images/vendor/microchip_mplab_harmony_logo_150_transparent.png"
logo: "/assets/images/vendor/mhgs_logo_transparent.png"

# Footer content appears at the bottom of every page's main content
footer_content: "<img src='https://raw.githubusercontent.com/wiki/Microchip-MPLAB-Harmony/Microchip-MPLAB-Harmony.github.io/images/microchip_logo.png' /><br />Copyright &copy; 2020 Microchip Technology."
footer_content: "<img src='https://raw.githubusercontent.com/wiki/Microchip-MPLAB-Harmony/Microchip-MPLAB-Harmony.github.io/images/microchip_logo.png' /><br />Copyright &copy; 2023 Microchip Technology."
3 changes: 2 additions & 1 deletion apps/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@ title: Graphics Applications
nav_order: 2
---

# ![Microchip Technology](../docs/legato/images/mhgs.png) MPLAB® Harmony 3 Graphics Application Support
# ![Microchip Technology](../images/mhgs.png) MPLAB® Harmony 3 Graphics Application Support

Microchip MPLAB® Harmony Graphics Suite provides various application examples for a number of device families. See the following repositories under [Microchip-MPLAB-Harmony](https://github.com/Microchip-MPLAB-Harmony) Github project for specific applications examples:

| Repository | Product family |
| ---------- | -------------- |
| [gfx_apps_pic32cx_sg](https://github.com/Microchip-MPLAB-Harmony/gfx_apps_pic32cx_sg) | Graphics Application examples for: PIC32CX SG40 family |
| [gfx_apps_pic32cm_le_ls](https://github.com/Microchip-MPLAB-Harmony/gfx_apps_pic32cm_le_ls) | Graphics Application examples for: PIC32CM LE/LS family |
| [gfx_apps_pic32ck_sg_gc](https://github.com/Microchip-MPLAB-Harmony/gfx_apps_pic32ck_sg_gc) | Graphics Application examples for: PIC32CK SG/GC family |
| [gfx_apps_pic32cz_ca](https://github.com/Microchip-MPLAB-Harmony/gfx_apps_pic32cz_ca) | Graphics Application examples for: PIC32CZ CA family |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,16 @@ typedef struct

/* Set transfer NACK state */
volatile bool transferNack[DISP_MAX_CLIENTS];

/* Touch X coordinates */
uint32_t touchX[5];

/* Touch Y coordinates */
uint32_t touchY[5];

/* Touch point ID */
uint32_t touchID[5];

} DISP_DATA;

/*******************************************************************************
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -384,48 +384,70 @@ void DISP_RPi_Update(void)
if (!DISP_TransferBusy(DISP_CLIENT_ID_TOUCH))
{
/* Process Touch Data */
uint8_t xh, xl, yh, yl, type;
uint8_t xh, xl, yh, yl;
uint16_t x, y;
uint32_t touch_id = 0, temp_status = 0;
uint32_t TouchPts = 0;

TouchPts = DISP_GetRxDataByte((DISP_CLIENT_ID_TOUCH), 0x2);


/* Resolve all points */
for (int idx = 0; idx < MAX_TOUCH_POINTS; idx++)
if(TouchPts > 0)
{
if(TouchPts > 5) TouchPts = 5;

for ( int idx = 0; idx < TouchPts; idx++)
{
xh = DISP_GetRxDataByte(DISP_CLIENT_ID_TOUCH, 0x3 + (6 * idx));
xl = DISP_GetRxDataByte(DISP_CLIENT_ID_TOUCH, 0x4 + (6 * idx));
yh = DISP_GetRxDataByte(DISP_CLIENT_ID_TOUCH, 0x5 + (6 * idx));
yl = DISP_GetRxDataByte(DISP_CLIENT_ID_TOUCH, 0x6 + (6 * idx));

touch_id = yh >> 4;

temp_status |= 1 << touch_id;

x = (xh & 0xF) << 8 | xl;
y = (yh & 0xF) << 8 | yl;

<#if HorFlip>
/* Handle Horizontal Flip */
disp_data.touchX[idx] = 800 - x;
disp_data.touchY[idx] = 480 - y;
</#if>

}
}

for(int idx = 0; idx < MAX_TOUCH_POINTS; idx++)
{
xh = DISP_GetRxDataByte(DISP_CLIENT_ID_TOUCH, 0x3 + (6 * idx));
xl = DISP_GetRxDataByte(DISP_CLIENT_ID_TOUCH, 0x4 + (6 * idx));
yh = DISP_GetRxDataByte(DISP_CLIENT_ID_TOUCH, 0x5 + (6 * idx));
yl = DISP_GetRxDataByte(DISP_CLIENT_ID_TOUCH, 0x6 + (6 * idx));

type = xh >> 6;
x = (xh & 0xF) << 8 | xl;
y = (yh & 0xF) << 8 | yl;
<#if HorFlip>

/* Handle Horizontal Flip */
x = 800 - x;
y = 480 - y;
</#if>

switch(type)
if(temp_status & (1<<idx))
{
case 0x0:
if (disp_data.touchID[idx] == 0)
{
SYS_INP_InjectTouchDown(idx, x , y);
SYS_INP_InjectTouchDown(idx,
disp_data.touchX[idx],
disp_data.touchY[idx]);

break;
disp_data.touchID[idx] = 1;
}
case 0x1:
else
{
SYS_INP_InjectTouchUp(idx, x, y);

break;
SYS_INP_InjectTouchMove(idx,
disp_data.touchX[idx],
disp_data.touchY[idx]);
}
case 0x2:
{
SYS_INP_InjectTouchMove(idx, x, y);
}
else if (disp_data.touchID[idx] != 0)
{
SYS_INP_InjectTouchUp(idx,
disp_data.touchX[idx],
disp_data.touchY[idx]);

break;
}
disp_data.touchID[idx] = 0;
}

}

disp_data.state = DISP_STATE_IDLE;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -276,48 +276,70 @@ void DISP_RPi_Update(void)
case DISP_STATE_PROCESS_TOUCH:
{
/* Process Touch Data */
uint8_t xh, xl, yh, yl, type;
uint8_t xh, xl, yh, yl;
uint16_t x, y;
uint32_t touch_id = 0, temp_status = 0;
uint32_t TouchPts = 0;

TouchPts = DISP_GetRxDataByte((DISP_CLIENT_ID_TOUCH), 0x2);


/* Resolve all points */
for (int idx = 0; idx < MAX_TOUCH_POINTS; idx++)
if(TouchPts > 0)
{
if(TouchPts > 5) TouchPts = 5;

for ( int idx = 0; idx < TouchPts; idx++)
{
xh = DISP_GetRxDataByte(DISP_CLIENT_ID_TOUCH, 0x3 + (6 * idx));
xl = DISP_GetRxDataByte(DISP_CLIENT_ID_TOUCH, 0x4 + (6 * idx));
yh = DISP_GetRxDataByte(DISP_CLIENT_ID_TOUCH, 0x5 + (6 * idx));
yl = DISP_GetRxDataByte(DISP_CLIENT_ID_TOUCH, 0x6 + (6 * idx));

touch_id = yh >> 4;

temp_status |= 1 << touch_id;

x = (xh & 0xF) << 8 | xl;
y = (yh & 0xF) << 8 | yl;

<#if HorFlip>
/* Handle Horizontal Flip */
disp_data.touchX[idx] = 800 - x;
disp_data.touchY[idx] = 480 - y;
</#if>

}
}

for(int idx = 0; idx < MAX_TOUCH_POINTS; idx++)
{
xh = DISP_GetRxDataByte(DISP_CLIENT_ID_TOUCH, 0x3 + (6 * idx));
xl = DISP_GetRxDataByte(DISP_CLIENT_ID_TOUCH, 0x4 + (6 * idx));
yh = DISP_GetRxDataByte(DISP_CLIENT_ID_TOUCH, 0x5 + (6 * idx));
yl = DISP_GetRxDataByte(DISP_CLIENT_ID_TOUCH, 0x6 + (6 * idx));

type = xh >> 6;
x = (xh & 0xF) << 8 | xl;
y = (yh & 0xF) << 8 | yl;
<#if HorFlip>

/* Handle Horizontal Flip */
x = 800 - x;
y = 480 - y;
</#if>

switch(type)
if(temp_status & (1<<idx))
{
case 0x0:
if (disp_data.touchID[idx] == 0)
{
SYS_INP_InjectTouchDown(idx, x , y);
SYS_INP_InjectTouchDown(idx,
disp_data.touchX[idx],
disp_data.touchY[idx]);

break;
disp_data.touchID[idx] = 1;
}
case 0x1:
else
{
SYS_INP_InjectTouchUp(idx, x, y);

break;
SYS_INP_InjectTouchMove(idx,
disp_data.touchX[idx],
disp_data.touchY[idx]);
}
case 0x2:
{
SYS_INP_InjectTouchMove(idx, x, y);
}
else if (disp_data.touchID[idx] != 0)
{
SYS_INP_InjectTouchUp(idx,
disp_data.touchX[idx],
disp_data.touchY[idx]);

break;
}
disp_data.touchID[idx] = 0;
}

}

disp_data.state = DISP_STATE_IDLE;
Expand Down
40 changes: 40 additions & 0 deletions display/Waveshare 4.0inch DSI LCD/config/module.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# coding: utf-8
##############################################################################
# Copyright (C) 2023 Microchip Technology Inc. and its subsidiaries.
#
# Subject to your compliance with these terms, you may use Microchip software
# and any derivatives exclusively with Microchip products. It is your
# responsibility to comply with third party license terms applicable to your
# use of third party software (including open source software) that may
# accompany Microchip software.
#
# THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER
# EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED
# WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A
# PARTICULAR PURPOSE.
#
# IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
# INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND
# WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS
# BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE
# FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN
# ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
# THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
##############################################################################


def loadModule():
if any(device in Variables.get("__PROCESSOR") for device in ["SAM9X75"]):
component = Module.CreateComponent(
"gfx_display_comp_waveshare_4in_dsi",
"Waveshare 4inch DSI LCD",
"/Graphics/Displays",
"config/wavehsare.py",
)
component.setDisplayType("480x800 MIPI DSI Touch Display")
component.addCapability("gfx_dsi_display_cap", "DSI Display", False)
component.addDependency("gfx_dsi_i2c_dep", "DRV_I2C", False, True)
component.addDependency("gfx_sys_time_dep", "SYS_TIME", True, True)
component.addDependency("gfx_sys_input_dep", "Input System Service", True, True)
else:
print("Waveshare 4inch DSI LCD module not loaded. No DSI support on " + str(Variables.get("__PROCESSOR")))
Loading

0 comments on commit 20d549a

Please sign in to comment.