[go: up one dir, main page]

CN110941426B - Graphic programming system for NB-IoT terminal - Google Patents

Graphic programming system for NB-IoT terminal Download PDF

Info

Publication number
CN110941426B
CN110941426B CN201911213692.7A CN201911213692A CN110941426B CN 110941426 B CN110941426 B CN 110941426B CN 201911213692 A CN201911213692 A CN 201911213692A CN 110941426 B CN110941426 B CN 110941426B
Authority
CN
China
Prior art keywords
control
module
code
controls
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911213692.7A
Other languages
Chinese (zh)
Other versions
CN110941426A (en
Inventor
王宜怀
施连敏
王进
陈建明
周伟星
汪博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Aupulu Internet Technology Co ltd
Original Assignee
Suzhou Aupulu Internet Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Aupulu Internet Technology Co ltd filed Critical Suzhou Aupulu Internet Technology Co ltd
Priority to CN201911213692.7A priority Critical patent/CN110941426B/en
Publication of CN110941426A publication Critical patent/CN110941426A/en
Application granted granted Critical
Publication of CN110941426B publication Critical patent/CN110941426B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

The invention discloses a graphical programming system for an NB-IoT terminal, which comprises a code editing module, a control dragging module, a flow control module, a source code generating module, a code compiling module and a program burning module, wherein the code editing module provides a window platform for editing codes, the control dragging module copies controls in a control library module selected by a user to the code editing module, the flow control module establishes the relation of execution orders among the controls in the code editing module according to user operation, the source code generating module integrates all the control execution order relations in the code editing module after the establishment is completed to obtain a source code file, the code compiling module compiles the source code file to obtain a corresponding executable program file, and the program burning module sends the executable program file to the NB-IoT terminal. The system can complete program development work by only dragging the graphical control, configuring the attribute of the graphical control and connecting wires according to flow logic.

Description

Graphic programming system for NB-IoT terminal
Technical Field
The invention relates to the technical field of terminal programming, in particular to a graphical programming system for an NB-IoT terminal.
Background
The narrowband internet of things (Narrow Band Internet of Things, NB-IoT) is a low power wide area network (Low Power Wide Area Network, LPWAN) with large connectivity, wide coverage, deep penetration, low cost, low power consumption features developed for internet of things applications. The technology can be widely applied to application scenes with less information transmission quantity and low real-time requirement, but complex working environment and sensitivity to power consumption, such as: remote monitoring of factory equipment, intelligent agriculture, intelligent home, intelligent city, intelligent environment monitoring, intelligent user service, intelligent metering and the like.
Typically, development of an NB-IoT end product must be accomplished by programming in a computer language, which is currently common. However, since the computer language is not a system with which people communicate with the usual language, the computer language has strong logic and accuracy, and different punctuations can cause great difference in meaning, the developer is required to have a certain programming basis and have knowledge related to communication, so that the development requirement is higher and the difficulty is higher.
Disclosure of Invention
Object of the invention
Based on the above, in order to reduce the development difficulty of a developer, improve the development efficiency and increase the programming granularity, the invention discloses a graphic component programming system oriented to an NB-IoT terminal, and an embedded developer can complete programming by simply dragging a control.
(II) technical scheme
The invention discloses a graphical programming system facing an NB-IoT terminal, which comprises:
the control library module stores various types of graphical controls;
the code editing module is used for providing a window platform for editing codes;
the control dragging module is used for copying the control selected by the user in the control library module to the code editing module;
the flow control module is used for establishing the relation of the execution sequence among the controls in the code editing module according to the user operation;
the source code generation module is used for integrating all the control execution sequence relations in the code editing module after the control execution sequence relations are established, so as to obtain a source code file;
the code compiling module is used for compiling the source code file to obtain a corresponding executable program file;
and the program burning module is used for sending the executable program file to the NB-IoT terminal.
In one possible implementation, the control library module includes graphical controls of a type that includes at least one of: event control type, execution control type, communication control type, sensor control type, flow control type, subroutine control type.
In one possible implementation, the control drag module includes:
the control recording unit is used for recording the control currently selected by the user;
the selected recording unit is used for changing the state of the reference target when the user selects the control in the control library module; wherein,,
the reference target has two different states to distinguish whether or not the control is selected.
In one possible embodiment, the system further comprises:
the text editing module is used for editing the text codes generated by the code compiling module;
and the information output module is used for detecting and outputting the compiling state information and the burning state information.
In one possible embodiment, the system further comprises: the control adding module is used for adding a new graphical control for the control library module; wherein, the control adding module comprises:
the window building unit is used for building a control window and adding sub-controls for the control window, wherein the sub-controls comprise buttons;
the code input unit is used for inputting the codes of the controls to be added;
and the control binding unit is used for establishing a binding relation between the control window and the corresponding control graph after the codes are added to form the control.
In one possible implementation manner, the code compiling module compiles the control according to the device information of the terminal to generate an executable program file adapted to the hardware of the corresponding terminal.
In one possible embodiment, the system further comprises: the code encryption module is used for encrypting codes in the executable program file generated by the code compiling module; wherein the code encryption module includes:
a key generation unit for generating an array of set byte lengths as a key;
the encryption unit is used for performing exclusive-or operation on a plaintext code in the executable program file by utilizing the secret key to obtain a ciphertext;
a loop unit for repeating the following operations until the number of loops reaches a set loop threshold and obtaining a final encrypted ciphertext: performing cyclic shift on the ciphertext and performing exclusive-or operation on the cyclically shifted ciphertext by the encryption unit; in addition, in the case of the optical fiber,
the program burning module sends the final encrypted ciphertext to an NB-IoT terminal.
In one possible implementation, the system further comprises a graphics rendering pipeline comprising:
the raster scanning module is used for scanning all pixel points in a plurality of standard areas obtained after the screen is divided, sequentially judging whether the pixel points are covered by the graphic primitive or not, and converting the graphic primitive into a sheet primitive;
The pixel coloring module is used for geometrically transforming the pixel coordinates to a texture space to obtain texture coordinates, converting the texture coordinates into addresses of corresponding pixels stored in a memory, determining color values of pixel points through texture filtering, and coloring the pixel points;
the Alpha mixing module is used for mixing the foreground image and the background image according to the Alpha value;
and the on-chip buffer module is used for buffering Alpha values and RGB values of the background image when the images are mixed, buffering Alpha texture information and writing the result back into the frame buffer when the standard region drawing is finished.
In one possible implementation manner, the raster scanning module scans the pixel points in a zigzag sequence and outputs a pixel stream to be drawn in a manner of calculating boundary functions of the pixel points relative to four edges of the primitive.
In one possible implementation, the system includes a graphics rendering IP core, a data access structure of the graphics rendering IP core including:
a plurality of primary caches that are private caches for each graphics processing unit;
a second level cache that is a shared cache for each graphics processing unit;
three-level caching;
the tag management module is used for reading the tag value in the cache set code and comparing with the high bit of the request address when an external data request is received, judging whether the data required by the request is in the cache, if yes, outputting a hit ID, otherwise, updating the tag value of the corresponding data block according to the replacement data block code output by the LRU management module;
The LRU management module is used for updating the LRU queue state of the corresponding cache set according to the cache set code and the hit ID identifier under the condition that the data required by the request is in the cache, outputting the address in the request read RAM, and otherwise outputting the replacement data block code according to the current LRU queue state and the replacement strategy;
and the random storage management module is used for controlling the cache to read the data in the corresponding address of the RAM according to the address and outputting the data under the condition that the data required by the request is in the cache, otherwise, updating the corresponding data block in the RAM and returning the data required by the current request.
(III) beneficial effects
According to the graphical programming system for the NB-IoT terminal, after common elements of different types of hardware and software drivers are extracted, the drivers are further packaged into the draggable controls of the GCNB, an embedded developer can carry out component programming by using a graphical programming language, and only the graphical controls are dragged, the attributes of the graphical controls are configured, and program development work can be completed according to flow logic connection, so that development thresholds are reduced, development efficiency is improved, and programming granularity is increased.
Drawings
The embodiments described below with reference to the drawings are exemplary and intended to illustrate and describe the invention and should not be construed as limiting the scope of the invention.
FIG. 1 is a block diagram of an embodiment of a graphical programming system of the present disclosure.
FIG. 2 is a schematic diagram of a system display interface during a graphical programming process.
Fig. 3 is a schematic diagram of a serial port recording execution flow.
Fig. 4 is a schematic diagram of an NB-IoT transmit control configuration interface.
Fig. 5 is a schematic diagram of a compiling flow.
FIG. 6 is a graphical code schematic of the intelligent agricultural greenhouse system.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention become more apparent, the technical solutions in the embodiments of the present invention will be described in more detail below with reference to the accompanying drawings in the embodiments of the present invention.
Embodiments of the disclosed graphical programming system are described in detail below with reference to FIGS. 1-6. The graphical programming system is installed on the PC side and is used for writing and transmitting a User program (User program) in the remote NB-IoT terminal so as to update the User program. As shown in fig. 1, the embodiment mainly includes a control library module, a code editing module, a control dragging module, a flow control module, a source code generating module, a code compiling module and a program burning module.
The graphical programming language is a computer program development language which can complete code writing only by graphical modes such as icon dragging and the like. The language has the advantages of clear structure, high execution efficiency of development environment, low programming error rate, flexible components and the like.
The control library module stores various types of graphical controls. The icon control library module provides a draggable control for a developer, and the draggable control is stored in treeView (tree structure type provided by C#) type treeViewIcon variables in PC side software codes. In one embodiment, after extracting the common elements of the control, the control is divided into six classes from the perspective of commonality, and the types of the graphical control included in the control library module are defined in an enumerated type variable selectedType, and include at least one of the following: event control type EventIcon, execution control type ExecuteIcon, communication control type CommunicateIcon, sensor control type SensorIcon, flow control type FlowControl, subroutine control type SubFunIcon.
The control dragging unit mainly relates to a control library module frmIcon Box and a code editing module frmGluphic code, and is used for copying the control in the control library module frmIcon box selected by a user into the code editing module frmGluphic code. In one embodiment, the control dragging module includes a control recording unit and a selected recording unit. The control recording unit is used for recording the control currently selected by the user. The selected recording unit is used for changing the state of the reference target when the user selects the control in the control library module. Wherein the reference object has two different states to distinguish whether a control is selected.
Specifically, there is a member variable SelectedIconNode of a TreeNode type in the frmIconBox window, when a certain control in the control tree is selected, the control is assigned to SelectedIconNode, and AlreadySelecticonfrom treeView is set as true. The system defines a mouse up event frmggraphicprogram_mouseup in a window of the code editing module, and triggers the event when the mouse clicks in the window. If AlreadySelectIcon FromTreeView is detected as true in this event, the SelectedIconnode in the frmIconBox window is copied to the location where the mouse was clicked.
In embedded programming, events may also be referred to as interrupts. Many functions (such as timing, serial port receiving and the like) with requirements on real-time performance are realized by relying on interruption, and the use of interruption not only can improve the real-time performance, but also greatly reduces the resource consumption, so that the embedded chip can complete more complex functions.
The code editing module is a window platform for providing editing codes and can load and display graphical controls dragged by a user.
The flow control module is used for establishing the relation of the execution sequence among the controls in the code editing module according to the user operation. The control flow control unit has the function of connecting the controls according to certain logic by using a wire harness. Each control has two interfaces: an entry point and an exit point. The entry point is an interface from the other control to the present control, and the exit point is an interface from the present control to the other control.
Controls can be divided into three categories: a start control, a middle control, and an end control. The start control is mainly a main control and an event control, which are the start of a section of graphical program and are indispensable. The middle control is the control with the largest number, and most execution controls, sensor controls and the like belong to the middle control. The end control is primarily an "end" control, which is not a necessary control and may sometimes be omitted.
In the software, the events of mouse pressing and mouse moving are registered for the entry point and the exit point respectively, and operations such as drawing lines and the like are added in the events, so that the logical connection function between the controls is realized. After the wiring is completed, the wiring harnesses are typically cluttered and may even cross, which is very inconvenient to read. For this purpose, a function of automatically arranging icons is added to the unit, which is triggered by an event onmouseheer that the mouse slides up and down. After triggering the function, all the initial controls are traversed, and all the controls connected with the initial controls are connected according to the vertical arrangement rule.
The main control and the control receiving the switch signal are initial controls. The control connected with the main control is executed sequentially after the chip is powered on, the control receiving the switch signal belongs to the event control, and the control connected with the control is executed sequentially after the event is triggered. The "condition cycle" control and the "small lamp" control are intermediate controls, and the "end" control is an end control.
As shown in fig. 2, the source code generating module is configured to integrate all the controls in the code editing module after the execution order relation is established, so as to obtain a source code file. That is, the source code generation module completes the process of converting the graphical code into a compilable source code. The source code generation module traverses all the initial controls and their child controls and integrates the codes of these controls together. This function is implemented in dependence on the member variable code of the control. Code is an example of a custom structure type Code. A plurality of character strings are defined in the Code, and the character strings comprise global variables, local variables, initial values of the variables, interrupt service routines, interrupt service declarations, initialization codes, codes inserted into space positions, interrupt enabling codes, subfunction codes, head files, macro constants, structure body types, control comments, parameter storage information for restoring controls and the like. All code information which should be generated by the control is stored in the code variable, and after the control is configured by double clicking, the content in the code variable is changed accordingly.
The code compiling module is used for compiling the source code file generated by the source code generating module to obtain a corresponding executable program file. GCC (GNU Compiler Collection, GNU compiler suite) is a set of compilation systems developed by GNU organization, issued in GPL license agreement, currently used as standard compiler by most operating systems (e.g., linux, BSD, etc.), and is applicable to windows systems. The compiler can widely support C/C++, fortran, pascal, objective-C, java, ada, go, assembly languages on various processor architectures and the like, and has strong cross-platform compatibility and portability.
The system selects a GCC compiler as a built-in compiling environment, and invokes a GCC compiling command by using a CMD command window. In C# the output of the CMD window may be redirected, the system redefines the standard output and the erroneous output of the CMD window and outputs them to the information display unit. Since the information display window and the program calling gcc command are not in the same thread, the asynchronous calling method should be used to ensure the security of the cross-thread.
The execution of the compiler can be subdivided into five phases: lexical analysis, grammar analysis, semantic analysis, intermediate code generation, optimization and target code generation. The first processing performed on the source program is lexical analysis. The method is a linear analysis mode, and by scanning codes in a source program line by line, words (such as keywords, identifiers, variable names and the like) in the codes are analyzed one by one, and word sequence strings are output. The grammar analysis is to further analyze the source code according to the rules and grammar of the appointed programming language (such as C language is ";" is the end of sentence), change the word sequence string into individual sets, and determine the relation between the sets according to the grammar. The semantic analysis and intermediate code generation stage will truly understand the "meaning" of the source code, thereby determining the execution process of the generated code, and the stage will generate intermediate code capable of completing the source code target according to grammar and semantics, and determine the running of the program. The optimization stage is to reasonably process the generated intermediate codes, so that object codes with smaller code quantity and higher running efficiency, namely obj files, are generated. After source code manipulation and optimization, the corresponding executable code needs to be generated by the linker according to the specific operating platform and its instruction set.
A complete program P written using the present system is made up of a plurality of program segments Pi (i=0, 1,2, & lt & gtof & lt- & gt of & gt, n, where P0 is the main program segment, which is the program segment that must be included, which determines the content of the main function. Other Pis consist of functions, events, and or subroutines. Each program segment Pi, except P0, is first controlled by a function control, an event control or a subroutine control. Each Pi may in turn be represented by a tuple: pi= < B, E >. Wherein B is the first control, namely a function control, an event control or a subroutine control. E is the content of the code segment Pi, which is a functional implementation part of this code segment. The graphical control is a basic unit of graphical programming of the system, and the corresponding C code can be generated by dragging the graphical control and connecting the graphical control according to a certain rule.
The program burn module is to send the executable program file to the NB-IoT terminal. In one implementation, the program burn module sends the executable program file to the NB-IoT terminal in a SWD protocol manner. The SWD debugging protocol is serial debugging protocol proposed by ARM company, only 4 wires (VCC, GND, DIO and CLK) are needed to complete communication, the SWD debugging protocol has simple structure, stable performance and strong compatibility, can provide debugging speed superior to JTAG (joint test group) protocol in a high-speed mode, and solves the problems of excessive pin occupation and lower debugging speed in the high-speed mode. Most chips have defaultd to supporting this debug mode. In another embodiment, the program burning module parses the executable program file and sends the parsed data frame to the NB-IoT terminal. After the program is dragged by using the system, the hex file is compiled and generated. As shown in fig. 3, the program burning process is a process of analyzing the meaning of the hex file and writing the specified data into the specified flash of the terminal device. After the system parses the hex file, the framing will be performed according to the agreed data frame protocol, and then the data is sent to the NB-IoT terminal.
The NB-IoT terminal software comprises a BIOS program and a User program, wherein the switching mechanism of the BIOS and the User program is that after entering a main function of the BIOS, the BIOS program enables the MCU to execute the following operations:
(1) The system clock is initialized and the watchdog is started.
(2) The method comprises the steps of initializing a kernel timer system, starting an interrupt of the kernel timer system, setting a timing interval of 500 milliseconds, providing two application programming interfaces (Application Programming Interface, API) of sysTimeGet and sysTimeSet for a User program, and acquiring or setting system time through the two interfaces by the User program.
(3) Initializing a serial port, using the serial port as a serial port used in serial port burning, and simultaneously, printing basic debugging information by the serial port.
(4) The hardware driver resident in the BIOS is provided in the form of an API for use by the User program. The User program can directly drive basic hardware resources in the MCU through the API, and does not need to write a driving program by itself.
(5) And copying the interrupt vector table of the BIOS to the RAM area.
(6) Judging whether a burning program request exists. If yes, executing the burning process, if not, copying 4 bytes from the starting address of the User program engineering into the MSP, and copying the following 4 bytes into the PC register. After this step is performed, the MCU will switch from the BIOS program to the User program to continue running.
The existing graphical programming technology has the defect of insufficient performance optimization, and in order to consider various application scenes as much as possible, a certain redundancy exists in codes generated by graphical software. Moreover, it is not possible for advanced programmers to optimize the code as much as possible with their rich programming experience. Thus, in one embodiment, the system further comprises a text editing module for editing the text code generated by the code compiling module. In a text programming environment, if a developer has a certain programming foundation, after the general framework of the program is dragged out, the source code can be directly modified according to the requirement, so that the secondary programming of the graphical code is realized. These changes will greatly increase the adaptability of the graphical programming platform, filling in some of the gaps in NB-IoT technology. For the convenience of the developer, a high-level editing unit and a code searching unit are integrated in the text programming environment.
The advanced editing unit mainly realizes functions for facilitating text editing, such as: full selection, cutting, copying, pasting, deleting, revoking, etc. Meanwhile, in order to facilitate the developer to read the code, the advanced editing unit provides a code coloring function. The developer can specify the language format by himself, and the unit colors keywords and the like in the code according to a certain coloring rule and prompts statement blocks and the like in the code.
During editing of code (especially where the code amount is large), we often face the problem that it is difficult to find the specified code. Therefore, the software is added with a code searching unit, and the problem can be effectively solved through a query function.
In one embodiment, the system further comprises an information output module for detecting and outputting the compiling state information and the burning state information. The information output module is a window for prompting the current running state of the developer by the system, and the text graphic programming environment and the text changing environment are used for outputting information by the information output module.
The existing graphical programming technology has the defect of low flexibility, and the functions realized by the existing graphical programming technology depend on the richness of the control library module of the existing graphical programming technology to a great extent. The patterning software may be a flagelliforme and for a particular application scenario of the developer. Thus, in one embodiment, the system further comprises a control addition module. The control adding module is used for adding a new graphical control for the control library module. The control adding module comprises a window building unit, a code input unit and a control binding unit. The window building unit is used for creating a control window and adding sub-controls for the control window, wherein the sub-controls comprise buttons. The code input unit is used for inputting the code of the control to be added. The control binding unit is used for establishing a binding relation between the control window and the corresponding control graph after the codes are added to form the control.
The NB-IoT control is repackaged based on NB-IoT components, whose main functionality is the reception and transmission of data for the communication control. To this end, the NB-IoT components are packaged as two controls, NB-IoT transmit and NB-IoT receive. Because the data receiving is unpredictable, in order to improve the operation efficiency and reduce the programming difficulty, the data receiving is packaged into an event control, and the data receiving function is realized by means of the interrupt function of the chip. This section will illustrate the steps of adding a control, taking NB-IoT send control as an example.
The picture is an important presentation form of the graphical control. After the picture design is completed, the picture can be taken effect only by binding with the control. The existing graphical programming technology has the defect that development environments are difficult to mutually migrate. During development, a developer may have a need to replace the development environment. The engineering of the graphic software generally has respective organization forms, is not compatible with each other, cannot be compatible with a text programming environment, and is difficult for a developer to transplant between different development environments. Therefore, in order to reduce the difficulty of binding the control as much as possible, the software encapsulates the modification process into an xml file. Compared with the prior method for storing control information by using a database, the xml file not only does not need to rely on any database management tool, but also has a good data structure, is a cross-platform and portable data storage method, and can solve the problem that a developed program cannot be compatible with other development environments. After opening the xml file, code is added for binding.
The primary function of the NB-IoT send control is to send data to the specified target IP address and port, so the control will use the uecom_init, uecom_ linkBase, UEcom _linkcs, uecom_send functions in the UEcom component.
The foregoing describes an example Code of a custom structure type Code that contains all the information that a control has been generated to contain. In designing the NB-IoT send control, consideration should be given to which members of the code are always likely to be involved by the various functions of the NB-IoT send control in the use process. After analysis, the function of implementing the NB-IoT send control needs to involve variables such as initialization codes of code variables, codes inserted into the control positions, header files, parameter save information for control annotation and recovery control.
As shown in fig. 4, the control configuration window generated after double clicking needs to be designed, the parameters available for setting are listed by using text boxes, radio boxes, combo boxes and the like, then codes of code members are updated when the parameters are revised are written, and loading and saving codes after instantiation and exit are written. The specific operation steps are as follows:
(1) New forms are created and named. Herein designated as frmNbSend.
(2) Add button. Buttons such as "ok", "cancel" and "comment description" are added, which can be copied from the existing control configuration window.
(3) Modifying the construction function of the frmNbSend, wherein the input variable is icon, and the code contained in the icon is the code information of the control.
(4) And determining that the settable control contained in the window is an IP address and port number input box of a text box type and a control related to data transmission.
(5) And when the content in the control is changed, the content in the code is correspondingly modified.
(6) The function of saving codes in the control to the code when clicking the 'confirm' button is realized.
After the control configuration window is written, the control configuration window and the control are bound, relevant codes of the control are newly added and sent to the NB-IoT, the addition of the new control is completed, and the newly added control can be selected to carry out graphical programming of the user program.
The executable codes generated by embedded programming run on hardware with limited resources and different performances, and sometimes an operating system is not arranged on a singlechip, so that the existing graphical programming technology has the defect of low chip adaptability, and the existing embedded graphical programming software is mainly only aimed at specific chips, and the compatibility problem of multiple chips is not fully considered, so that the modification is larger when the chips need to be replaced. Therefore, in one embodiment, the code compiling module compiles the control according to the device information of the terminal, and generates an executable program file adapted to the hardware of the corresponding terminal, so as to improve the chip adaptability of the code program. It can be understood that the system is provided with a data receiving module for receiving the device information sent by the terminal.
Chip adaptation means that a program developed by the present system may be unmodified so that it can run on a differently configured hardware system. Chip adaptation relies on the BIOS system implementation of NB-IoT terminals. As shown in fig. 5, before the code compiling module performs the compiling operation, a command is first sent to the NB-IoT terminal via the serial port to request the terminal to report the device information. The NB-IoT terminal sends the device information to the system after receiving the command, and the system automatically completes configuration work during compiling and burning according to the received device information.
When a developer changes a chip, only whether the performance is enough or not and whether the hardware resources are enough or not are considered, and the problem of software transplanting after the chip is changed is not considered.
The advantage of improving chip adaptability is as follows: (1) When a developer hopes to change the MCU, the hardware can be directly replaced, and the platform is used for re-burning the program, so that the development cost of changing the chip is greatly reduced, and a user only needs to replace the new hardware and use the system for re-burning the program, and does not need to make any modification on the platform; (2) The cost of the product is guaranteed to be lowest, the performance is optimal, and once a chip with higher cost performance appears, the chip can be directly used for replacing the existing chip of the product; (3) The difficulty of chip type selection is reduced, even if the type selection is in error, the software which is coded is not influenced, and the loss caused by the software is minimized.
Security problems are the problem that all communications have to face, wireless communications bring us endless convenience and at the same time bring the risk of information theft. From the technical point of view, it is unavoidable that the signal is intercepted, but the relative safety of the real information can be ensured by technical means, namely, the information encryption technology is adopted. The encryption algorithm commonly used at present has the defects of high complexity, high resource occupancy rate and difficult realization although the encryption performance is better, so in one embodiment, the system further comprises a code encryption module capable of realizing a symmetric key type lightweight encryption method, and the code encryption module is used for encrypting codes in executable program files generated by the code compiling module in a multi-round encryption mode so as to improve encryption strength.
The code encryption module comprises a key generation unit, an encryption unit and a circulation unit. The key generation unit is configured to generate an array of set byte lengths as a key, for example, an array of 4 bytes is defined as a key. The encryption unit is used for performing exclusive-or operation on a plaintext code (namely an original text array) in the executable program file by using the secret key to obtain a ciphertext after the first round of encryption. The circulation unit is used for performing circulation shift on the ciphertext obtained by the encryption unit, for example, circularly shifting one byte to the right, then performing exclusive OR operation on the ciphertext after circulation shift and the secret key by the encryption unit to obtain the ciphertext after encryption of the second round, and then repeatedly performing circulation shift and encryption until the circulation times reach a set circulation threshold value. Theoretically, the encryption strength will increase with the increase of the number of encryption rounds, but this will take more encryption and decryption time and occupy more resources. After a large number of application demands are studied in combination with practical situations, the present embodiment selects a 5-round encryption scheme, that is, sets the cycle threshold to 5. Thus, the lightweight encryption of the original data is completed. In addition, the program burn module sends the final encrypted ciphertext to the NB-IoT terminal instead of sending the original plaintext.
It will be appreciated that the ciphertext receiving end (i.e., NB-IoT terminal) may also be configured with a corresponding encryption and decryption algorithm, wherein the decryption algorithm is the inverse of the encryption algorithm. The communication between the terminal and the system can encrypt and decrypt communication data through the encryption and decryption algorithm. The encryption method has small operand, good encryption performance and consistent encrypted ciphertext length with the original text, and does not increase network overhead.
For NB-IoT terminals, their hardware platform is divided into core hardware and extensible hardware. If the hardware of the NB-IoT terminal is directly designed in an integrated manner, when the demand is changed, the hardware can be newly added only by redrawing the PCB, so that the hardware is divided, whether the core hardware or the expandable control can be added, cut or replaced according to the actual demand, and meanwhile, a user can freely select the expandable hardware according to the demand without buying all the hardware, which is beneficial to the application of the assembly line process, and the production cost is greatly reduced.
The core hardware plays a role of a command center, and can operate only by supplying power without depending on any other modules. The core hardware comprises an MCU minimum system, an NB-IoT communication module, a USB interface for connecting the extensible hardware and the like. The MCU minimum system is a peripheral hardware circuit with the minimum scale capable of enabling the MCU to normally operate, and mainly comprises a power supply circuit, a reset circuit, a crystal oscillator circuit and the like.
The extensible hardware is generally a module with a specific function, and has a USB interface corresponding to the core hardware, and can be combined with the core hardware to form a system meeting the project requirement. All the requirements of the system are reflected on the USB interface, and the system can work normally after being connected with core hardware by using a USB line, so that the system has stronger expansibility.
There are two communication modes for network data transmission: TCP and UDP. UDP is a communication method for directly transmitting data without handshake, and it does not consider whether a receiver actually receives data. Although the UDP has a fast transmission speed and occupies less resources, the reliability of transmission cannot be guaranteed, and there is a high probability of data loss. Thus, in one embodiment, the program burn module communicates data with the terminal via the TCP protocol. The TCP performs three-way handshake before data communication, establishes a TCP communication link, and has a retransmission mechanism to ensure successful data communication if the receiver does not receive data. Although the transmission steps of the TCP are complicated and occupy more resources, the stability and the reliability of data communication are ensured. Therefore, the present component selects TCP as the network communication method.
Most of graphical man-machine interaction in low-power consumption and low-bandwidth limited scenes is realized by adopting an embedded system, and the rapid development of the Internet of things makes a graphical rendering system in the Internet of things particularly important due to the strong demand of people for graphical man-machine interaction. Thus, in one embodiment, the system further comprises a graphics rendering pipeline. The rendering pipeline is also called a rendering pipeline, and is a parallel processing unit which processes graphics signals independently from each other inside a display chip. The graphics rendering pipeline includes a raster scan module, a pixel shading module, an Alpha blending module, and an on-chip buffering module.
The raster scanning module is used for scanning all pixel points in a plurality of standard areas obtained after the screen is divided, sequentially judging whether the pixel points are covered by the graphic primitive or not, and converting the graphic primitive into the graphic primitive.
The raster scanning module can scan pixels in a Z-shaped sequence, so that a scanning track curve has better correlation in space, the cache hit rate is improved, and the hardware circuit is simpler to realize. The raster scanning module can also output a pixel stream to be drawn in a mode of calculating boundary functions of the pixel points relative to four edges of the primitive. Each period of the raster scanning module can finish one pixel point judgment, and outputs the pixel points to be drawn, so that the data throughput capacity of the graphic rendering pipeline is improved.
The pixel coloring module is used for geometrically transforming the pixel coordinates into texture space to obtain texture coordinates. In particular, the pixel rendering module may include a coordinate transformation unit to perform matrix transformation of homogeneous coordinates. The pixel coloring module can also comprise a rapid division unit which is used for converting input into floating point numbers, approximately solving division results of the mantissa part through a rapid inversion algorithm, further improving the accuracy of the solution through Newton iteration, and finally outputting the division results of the mantissa part and the exponent part.
The pixel shading module then converts the texture coordinates to addresses of corresponding pixels stored in memory, with the formula: addr=base_addr+pixel_code_size, wherein addr is the address of a pixel in the memory, base_addr is the first address stored by the texture, pixel_code is the pixel point of the texture, and pixel_size is the size of each pixel.
And the pixel coloring module determines the color value of the pixel point through texture filtering and colors the pixel point. That is, when the coordinates of the patch are geometrically transformed into texture space, the color values of the patch need to be determined by texture filtering, for example, by nearest neighbor filtering, bilinear filtering, and bicubic filtering.
Specifically, the pixel coloring module may include a texture filtering unit, where the texture filtering unit calculates weights of each pixel point first, reduces hardware resource overhead through parameter sharing, multiplies the weights by color values of corresponding pixel points, calculates contribution of each sampling point color value to the pixel, and finally calculates final color values of the pixel in a mode of adding two by two.
The patch color values have two generation modes. In the solid color filling mode, the graphic element is endowed with a designated color value, and texture data does not need to be accessed, so that the bandwidth consumption of a system can be reduced, and the filling efficiency is extremely high. In the texture mapping mode, the pixel coordinates to be drawn are firstly converted into texture pixel coordinates, then the color values of the texture pixel are read, and finally the texture filtering is carried out to obtain the fragment color values.
The Alpha mixing module is used for mixing the foreground image and the background image according to the Alpha value, so that a semitransparent effect is realized, and the shielding relation between the foreground and the background in the real world is simulated.
The on-chip buffer module is used for buffering Alpha value and RGB value of the background image when the images are mixed, buffering Alpha texture information and writing the result back into the frame buffer when the standard region drawing is finished.
The graphics rendering pipeline is combined with the graphics display requirement in the scene of the Internet of things, can fill specified colors in a specified area, supports geometric transformations such as image translation, rotation, scaling and projection, supports Alpha mixing, improves the parallelism of an algorithm by optimizing multiplexing of a hardware pipeline and a module, and improves the data processing capacity of a system.
The IoT scene graphic display needs are growing in popularity thanks to the application and popularity of IoT technology and graphical human-machine interaction. However, the increasing complexity and resolution of graphical interfaces place new demands on the computational power of embedded graphics systems, and conventional embedded schemes are difficult to meet the demands on computational power in complex graphics rendering, resulting in serious performance degradation of the system. Thus, in one embodiment, the system includes a graphics rendering IP core for performing rendering of a user interface based on primitive information and texture data information generated by a data processing system.
The data access structure of the graphics rendering IP core comprises: the system comprises a first-level cache, a second-level cache, a third-level cache and a tag management module.
Each level of buffer memory is a private buffer memory of each graphic processing unit, and is configured with four groups of input and output ports, so that bilinear filtering efficiency can be improved.
The second-level cache is a shared cache of each graphic processing unit, and can effectively utilize the local correlation of texture data in multi-core operation.
And the DDR is used as a storage medium for the three-level cache, so that the access delay of the system for reading the data in the Flash is reduced.
The graphics processing unit, the first-level cache, the second-level cache and the third-level cache are sequentially connected to form a part of structure of the IP core data access memory.
The data blocks with the addresses in the actual physical memory are mapped to the data blocks with the same low-order addresses in the cache, and each data block in the cache is provided with a TAG (TAG) to record the high-order address information of the data block in the actual physical memory.
After the system data request is sent to the cache, the cache firstly finds the position of the data in the cache according to the low bit of the request address, reads the corresponding initialization flag bit and the tag value, and carries out corresponding comparison. If the initialization flag bit is valid and the tag is consistent with the high order bit of the request address, the data cached at the moment is the data required by the request, the data request is in a Hit (Hit) state, the data in the cache is returned to the system, and the data request operation is completed. If the initialization flag bit flag is invalid or the tag is inconsistent with the high bit of the request address, the data in the cache is not the data required by the request, the data request is in a Miss (Miss) state, the correct data is required to be read from the physical memory and written back to the corresponding position of the cache, the corresponding tag is updated, and then the correct data is returned to the system, so that the data reading operation is completed.
And the tag management module is used for reading the tag value in the cache group code and comparing the tag value with the high bit of the request address when an external data request is received, and judging whether the data required by the request is in the cache, namely judging whether the request hits or not. If yes, outputting a hit ID identification, otherwise, updating the tag value of the corresponding data block according to the replacement data block code output by the LRU management module.
The LRU (Least Recently Used ) management module is used for updating the LRU queue state of the corresponding cache set according to the cache set code and hit ID identification under the condition that the data required by the request is in the cache, outputting the address in the request read RAM, otherwise outputting the replacement data block code according to the current LRU queue state and the replacement strategy.
Specifically, the LRU management module first executes an initialization procedure to initialize a CAM (content-addressable memory) queue, then updates the CAM queue according to a request state, and in a hit state, first determines a position of a data block hit by the request in the queue, and then updates CAM queue information according to hit information. In the miss state, the replacement data block code is output first, and then the CAM queue information is updated.
The replacement policy may employ a most recently used (Most Recently Used, MRU) policy, a random replacement policy, a first-in first-out policy, or a most recently used (Most Recently Used, MRU) policy.
And the random storage management module is used for controlling the cache to read and output the data in the corresponding address of the RAM according to the address under the condition that the data required by the request is in the cache, otherwise, updating the corresponding data block in the RAM and returning the data required by the current request.
The graphics rendering IP core is based on a graphics rendering architecture of TBR, screen area task division is realized by adopting hardware logic, intermediate data buffering is reduced in a real-time generation mode, LRU set association buffering is adopted, a data access path of the graphics rendering IP core is optimized, and data access delay is delayed by adopting a FIFO structure.
The following is a specific embodiment of the present embodiment applied to the intelligent agricultural greenhouse system.
The intelligent agricultural greenhouse demonstration system aims to verify the possibility of solving the agricultural production problem by utilizing the Internet of things technology. Aiming at the problems in the current agricultural production process, the intelligent agricultural greenhouse demonstration system has the following functions: (1) automatic irrigation. When the water content of crops is insufficient, the irrigation is automatically carried out, and the irrigation is automatically stopped after a certain amount of irrigation. (2) intelligent illumination. According to the illumination condition, the illumination brightness is automatically adjusted. (3) intelligent temperature control. And automatically adjusting the temperature to a proper range according to the current temperature condition. And (4) intelligent alarm. If abnormal conditions such as temperature, humidity and the like occur, the alarm can be directly given out. (5) remote monitoring. And various sensor information of the greenhouse is automatically uploaded to a server and displayed through a webpage, an APP, a client or a WeChat applet, so that a user can know the state of the intelligent agricultural greenhouse remotely.
The NB-IoT terminal is responsible for collecting and processing intelligent agricultural greenhouse parameter information and uploading data to the server at regular time. After receiving the data, the server forwards the data to the mobile phone APP, analyzes the data content, and alarms through a short message if the information needing to alarm exists.
The core hardware MCU of the NB-IoT terminal selects an MKL36Z64 chip, which is a 32-bit embedded MCU based on an Arm Cortex M0+ inner core pushed by NXP; an S32K144 chip can also be selected, and the S32K144 chip is a 32-bit embedded MCU (micro control unit) based on an Arm Cortex M4F kernel and pushed by NXP. The communication module adopts an ME3616 model module which is pushed out by the high-emerging Internet of things, and the module is a narrow-band Internet of things communication module which is specially designed for low-power, low-power consumption, long-distance and mass connection and supports NB-IoT communication standards.
The expandable hardware is equipped with a switch sensor, a light sensor, a temperature sensor, a soil humidity sensor, a color lamp, a motor fan and a water pump according to the functional requirements. The switch sensor has the function that a user can control the behavior of the MCU through the key, which is equivalent to a key switch. A motor fan is an actuator with mechanical components. It comprises a DC motor which can convert electric energy into mechanical energy,
And finally, connecting the core hardware and the expandable hardware into a whole through a USB data line to complete the construction of the intelligent agricultural greenhouse system hardware platform. The external interface of the extensible hardware module is an A-type USB interface, and 4 wires are contained, wherein the specific meaning of the 4 wires is determined by a specific module, but the external interface of the extensible hardware module is required to be consistent with the external interface of core hardware.
The software of the NB-IoT terminal is generated in a graphic drag manner through a graphic programming system, which mainly comprises a main program and an interrupt program, a graphic code diagram is shown in fig. 6, the coding process of the software platform is similar to the flowchart of fig. 6, and a user can use more time in designing logic. The present system uses two events (interrupts) in total: a switch signal event and a time arrival event are received.
The switch signal event is triggered by a switch sensor, the main function being to turn off the buzzer. The buzzer is one of means for alarming of the system, and when the temperature exceeds a set threshold value, the buzzer is started to alarm. The time arrival event may be triggered after an hour arrival. At this point, the NB-IoT terminal will send a record of the sensor data detected by the NB-IoT terminal to the server. The remaining code is the main program code, except for two events. In the system, three functions are encapsulated:
(1) And collecting a soil humidity information function. The soil humidity information is acquired by a soil humidity sensor, if the humidity is lower than an irrigation threshold value, a motor (water pump) is started to irrigate, and when irrigation moisture enables the humidity to be normal, the motor is closed to complete the irrigation process.
(2) And acquiring a temperature information function. The temperature information is acquired by the temperature sensor, when the temperature is higher, the system can start the motor fan to cool down, the situation that fire disaster is caused by overhigh temperature is prevented, and if the temperature exceeds the cooling capacity of the motor fan, the NB-IoT terminal alarms in a buzzer mode.
(3) And collecting an illumination information function. The illumination intensity data collected by the illumination intensity sensor automatically judges whether the need of light supplementing or light reducing is required, and the brightness and the color of the color lamp are controlled according to the judging result, so that crops can better synthesize the needed nutrients through photosynthesis.
After dragging the control, completing code writing by configuring the attribute of the control block. After programming is completed, programming is programmed into the NB-IoT terminal using the compiling and burning functions of the software platform. The server program is developed by C# and runs on an Arian cloud server, and mainly completes the function of receiving data sent by an NB-IoT terminal and forwarding the data to a mobile phone App. If the information needing to be alarmed is available, a short message is used for alarming. The Android program of the user mobile phone is written in an Android Studio environment of an official development tool, and the Android program has a main function of displaying state information of the intelligent agricultural greenhouse to a user. Thus, the construction of a software and hardware platform of the agricultural greenhouse system is completed. Under the experimental environment, high-temperature test, drought test and the like are carried out on the agricultural greenhouse system, and the system works well, so that the functions of alarming, automatic irrigation and the like are realized.
It should be noted that: in the drawings, the same or similar reference numerals denote the same or similar elements or elements having the same or similar functions throughout. The described embodiments are some, but not all, embodiments of the application, and the embodiments and features of the embodiments of the application may be combined with each other without conflict. All other embodiments, which can be made by those skilled in the art based on the embodiments of the application without making any inventive effort, are intended to be within the scope of the application.
The division of modules, units or components herein is merely a division of logic functions, and other manners of division are possible in actual implementation, e.g., multiple modules and/or units may be combined or integrated in another system. The modules, units, and components illustrated as separate components may or may not be physically separate. The components displayed as cells may be physical cells or may not be physical cells, i.e., may be located in a specific place or may be distributed in grid cells. And therefore some or all of the elements may be selected according to actual needs to implement the solution of the embodiment.
The foregoing is merely illustrative of the present invention, and the present invention is not limited thereto, and any changes or substitutions easily contemplated by those skilled in the art within the scope of the present invention should be included in the present invention. Therefore, the protection scope of the present invention shall be subject to the protection scope of the claims.

Claims (6)

1. A graphical programming system for NB-IoT terminals, comprising:
the control library module stores various types of graphical controls; after extracting the common elements of the controls, the controls are divided into six main classes from the perspective of commonality, including: event control type EventIcon, execution control type Executeicon, communication control type CommunicateIcon, sensor control type SensorIcon, flow control type FlowControl, subroutine control type SubFunIcon; are all defined in the enumerated type variable selectedType;
the code editing module is used for providing a window platform for editing codes and loading and displaying graphical controls dragged by a user;
the control dragging module is used for copying the control selected by the user in the control library module to the code editing module; the method specifically comprises the following steps: a control recording unit and a selected recording unit; the control recording unit is used for recording the control currently selected by the user; the selected recording unit is used for changing the state of the reference target when the user selects the control in the control library module; the reference target has two different states so as to distinguish whether a control is selected;
The flow control module is used for establishing the relation of the execution sequence among the controls in the code editing module according to the user operation;
the source code generation module is used for integrating all the control execution sequence relations in the code editing module after the control execution sequence relations are established, so as to obtain a source code file; the control comprises the following components according to the sequence relation: a start control, a middle control and an end control; the source code generation module traverses all the initial controls and sub-controls thereof, and integrates codes of the controls together according to member variable codes of the controls; the member variable code is a defined character string, including a global variable, a local variable, a variable initial value, an interrupt service routine, an interrupt service statement, an initialization code, a code inserted into a space position, an interrupt enabling code, a sub-function code, a header file, a macro constant, a structure type, a control annotation and parameter preservation information for restoring the control, wherein after the control is configured, a change code compiling module is also generated in the content of the member variable code and is used for compiling the source code file to obtain a corresponding executable program file;
The program burning module is used for sending the executable program file to an NB-IoT terminal;
a graphics rendering pipeline, the graphics rendering pipeline comprising: the raster scanning module is used for scanning all pixel points in a plurality of standard areas obtained after the screen is divided, sequentially judging whether the pixel points are covered by the graphic primitive or not, and converting the graphic primitive into a sheet primitive; the pixel coloring module is used for geometrically transforming the pixel coordinates to a texture space to obtain texture coordinates, converting the texture coordinates into addresses of corresponding pixels stored in a memory, determining color values of pixel points through texture filtering, and coloring the pixel points; the Alpha mixing module is used for mixing the foreground image and the background image according to the Alpha value; the on-chip buffer module is used for buffering Alpha values and RGB values of the background image when the images are mixed, buffering Alpha texture information and writing the result back into the frame buffer when the standard region drawing is finished;
a graphics rendering IP core, a data access structure of the graphics rendering IP core comprising: a plurality of primary caches that are private caches for each graphics processing unit; a second level cache that is a shared cache for each graphics processing unit; three-level caching; the tag management module is used for reading the tag value in the cache set code and comparing with the high bit of the request address when an external data request is received, judging whether the data required by the request is in the cache, if yes, outputting a hit ID, otherwise, updating the tag value of the corresponding data block according to the replacement data block code output by the LRU management module; the LRU management module is used for updating the LRU queue state of the corresponding cache set according to the cache set code and the hit ID identifier under the condition that the data required by the request is in the cache, outputting the address in the request read RAM, and otherwise outputting the replacement data block code according to the current LRU queue state and the replacement strategy; and the random storage management module is used for controlling the cache to read the data in the corresponding address of the RAM according to the address and outputting the data under the condition that the data required by the request is in the cache, otherwise, updating the corresponding data block in the RAM and returning the data required by the current request.
2. The system of claim 1, wherein the system further comprises:
the text editing module is used for editing the text codes generated by the code compiling module;
and the information output module is used for detecting and outputting the compiling state information and the burning state information.
3. The system of claim 1, wherein the system further comprises: the control adding module is used for adding a new graphical control for the control library module; wherein, the control adding module comprises:
the window building unit is used for building a control window and adding sub-controls for the control window, wherein the sub-controls comprise buttons;
the code input unit is used for inputting the codes of the controls to be added;
and the control binding unit is used for establishing a binding relation between the control window and the corresponding control graph after the codes are added to form the control.
4. The system of claim 1, wherein the code compiling module compiles the control according to the device information of the terminal to generate an executable program file adapted to the hardware of the corresponding terminal.
5. The system of claim 1, wherein the system further comprises: the code encryption module is used for encrypting codes in the executable program file generated by the code compiling module; wherein the code encryption module includes:
A key generation unit for generating an array of set byte lengths as a key;
the encryption unit is used for performing exclusive-or operation on a plaintext code in the executable program file by utilizing the secret key to obtain a ciphertext;
a loop unit for repeating the following operations until the number of loops reaches a set loop threshold and obtaining a final encrypted ciphertext: performing cyclic shift on the ciphertext and performing exclusive-or operation on the cyclically shifted ciphertext by the encryption unit; in addition, in the case of the optical fiber,
the program burning module sends the final encrypted ciphertext to an NB-IoT terminal.
6. The system of claim 1, wherein the raster scan module scans pixel points in a zig-zag order and outputs a stream of pixels to be rendered in a manner that computes a boundary function of the pixel points with respect to four edges of the primitive.
CN201911213692.7A 2019-12-02 2019-12-02 Graphic programming system for NB-IoT terminal Active CN110941426B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911213692.7A CN110941426B (en) 2019-12-02 2019-12-02 Graphic programming system for NB-IoT terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911213692.7A CN110941426B (en) 2019-12-02 2019-12-02 Graphic programming system for NB-IoT terminal

Publications (2)

Publication Number Publication Date
CN110941426A CN110941426A (en) 2020-03-31
CN110941426B true CN110941426B (en) 2023-09-19

Family

ID=69908819

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911213692.7A Active CN110941426B (en) 2019-12-02 2019-12-02 Graphic programming system for NB-IoT terminal

Country Status (1)

Country Link
CN (1) CN110941426B (en)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111413987B (en) * 2020-04-09 2023-06-13 中国电子科技集团公司第三十六研究所 Ship navigation simulation driving system and development method
CN111538488B (en) * 2020-04-17 2023-05-02 荏原冷热系统(中国)有限公司 Method and device for generating single-chip microcomputer driver
CN111596852B (en) * 2020-06-12 2021-06-08 腾讯科技(深圳)有限公司 Content editing method, system, computer readable storage medium and terminal device
CN111679608A (en) * 2020-06-16 2020-09-18 南通大学 A wetland ecological environment monitoring system based on NB-IoT
CN115668126A (en) * 2020-06-30 2023-01-31 西门子(中国)有限公司 Graphical programming method and processor, terminal
WO2022000287A1 (en) * 2020-06-30 2022-01-06 Siemens Ltd., China Method and apparatus for automatic programming
CN112083922A (en) * 2020-09-21 2020-12-15 深圳市金玺智控技术有限公司 Visual programming method, device, equipment and storage medium
CN112346718B (en) * 2020-10-09 2024-09-03 北京小米移动软件有限公司 Byte code compiling method, byte code compiling device and computer readable storage medium
CN112462629A (en) * 2020-11-06 2021-03-09 蘑菇物联技术(深圳)有限公司 Interpretation method of controller control algorithm
CN112860241B (en) * 2021-02-24 2022-08-23 上海节卡机器人科技有限公司 Interface development method, display method, device, electronic equipment and medium
CN113204338A (en) * 2021-03-22 2021-08-03 杭州微纳核芯电子科技有限公司 Visual programming method, device, equipment and medium for chip
CN113204339A (en) * 2021-03-22 2021-08-03 杭州微纳核芯电子科技有限公司 Visual programming method, device, equipment and medium for chip
CN113238744A (en) * 2021-04-30 2021-08-10 湖南中医药高等专科学校 Graphical programming method based on flow chart structure
CN113343612A (en) * 2021-05-26 2021-09-03 广州市迪士普音响科技有限公司 Configuration method and configuration device of audio processor
CN113406922A (en) * 2021-06-23 2021-09-17 疯壳(深圳)科技有限公司 Method and system for controlling programmable device based on graphic block programming
CN113535156B (en) * 2021-08-04 2023-08-22 中国计量大学 Graphical programming method and platform for logistics transportation control system
CN113885842A (en) * 2021-10-27 2022-01-04 北京奇艺世纪科技有限公司 Application program generation method and device
CN114185532B (en) * 2022-02-15 2022-05-10 武汉慧联无限科技有限公司 Graphical programming system
CN114706569A (en) * 2022-03-30 2022-07-05 宿迁学院产业技术研究院 Graphical embedded development platform
CN116305713B (en) * 2022-09-07 2024-06-04 杭州未名信科科技有限公司 Chip simulation system and simulation method
CN116663502B (en) * 2023-06-01 2023-11-28 上海同星智能科技有限公司 Method and system for converting text codes and graphic codes for automobile development
CN116627397B (en) * 2023-07-24 2024-01-30 腾讯科技(深圳)有限公司 Program development method and related device
CN117768511B (en) * 2024-01-09 2024-10-11 中科物栖(南京)科技有限公司 Data transmission method, device, equipment and storage medium of Internet of things equipment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043700B1 (en) * 1996-08-22 2006-05-09 Lenovo (Singapore) Pte Ltd. Mobile client computer programmed to predict input
CN107678746A (en) * 2017-09-30 2018-02-09 江西洪都航空工业集团有限责任公司 A kind of pattern development platform based on ROS
CN109683882A (en) * 2018-12-11 2019-04-26 兰州大学 NB-IOT terminal software development approach under visible environment based on mobile terminal
CN109992261A (en) * 2019-04-30 2019-07-09 武汉亚为电子科技有限公司 A kind of voice online programming method and device based on artificial intelligence

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043700B1 (en) * 1996-08-22 2006-05-09 Lenovo (Singapore) Pte Ltd. Mobile client computer programmed to predict input
CN107678746A (en) * 2017-09-30 2018-02-09 江西洪都航空工业集团有限责任公司 A kind of pattern development platform based on ROS
CN109683882A (en) * 2018-12-11 2019-04-26 兰州大学 NB-IOT terminal software development approach under visible environment based on mobile terminal
CN109992261A (en) * 2019-04-30 2019-07-09 武汉亚为电子科技有限公司 A kind of voice online programming method and device based on artificial intelligence

Also Published As

Publication number Publication date
CN110941426A (en) 2020-03-31

Similar Documents

Publication Publication Date Title
CN110941426B (en) Graphic programming system for NB-IoT terminal
Kacsuk et al. A graphical development and debugging environment for parallel programs
Varga OMNeT++
CN105843630B (en) A method of it is developed based on robot graphic programming
US7266809B2 (en) Software debugger and software development support system for microcomputer operable to execute conditional execution instruction
US20020129340A1 (en) Reconfigurable isomorphic software representations
US9118679B2 (en) Analytics data collection with low integration cost for dynamic message passing systems
US20070079298A1 (en) Thread-data affinity optimization using compiler
CN104067225B (en) Judgement to the controlling stream instruction with associated texture loading instruction for graphics processing unit
JP2000305809A (en) Memory access analyzing method, memory access tracing device, and computer-readable recording medium
CN113885870B (en) Application program updating method, electronic equipment, terminal equipment and system
US9753791B2 (en) Analytics data collection with low integration cost for dynamic message passing systems
CN107704245A (en) Protocol accessing method, device and computer-readable recording medium
Li et al. Code offload with least context migration in the mobile cloud
CN114610640A (en) Fuzzy testing method and system for trusted execution environment of Internet of things
Li et al. Minimizing context migration in mobile code offload
US20210326179A1 (en) Progress visualization of computational job
EP2807542A1 (en) Graphical representation of an order of operations
CN103677792A (en) Rdesktop optimization method based on Linux operating system of Loongson platform
US7296187B1 (en) Hardware debug device having script-based host interface
Pham A video sensor simulation model with OMNET++
JP2007199869A (en) Automatic decentralization program, apparatus and device cooperation mechanism of device cooperation mechanism
Kurniawan Introduction to wireless sensor networks
WO2022111703A1 (en) Method, device and system for acquiring hardware performance data
Sons et al. xml3d. js: Architecture of a Polyfill Implementation of XML3D

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant