CN110941426A - NB-IoT terminal-oriented graphical programming system - Google Patents

NB-IoT terminal-oriented graphical programming system Download PDF

Info

Publication number
CN110941426A
CN110941426A CN201911213692.7A CN201911213692A CN110941426A CN 110941426 A CN110941426 A CN 110941426A CN 201911213692 A CN201911213692 A CN 201911213692A CN 110941426 A CN110941426 A CN 110941426A
Authority
CN
China
Prior art keywords
module
control
code
controls
cache
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.)
Granted
Application number
CN201911213692.7A
Other languages
Chinese (zh)
Other versions
CN110941426B (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 Golden Reed Networking Technology Co Ltd
Original Assignee
Suzhou Golden Reed Networking 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 Golden Reed Networking Technology Co Ltd filed Critical Suzhou Golden Reed Networking 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

Images

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 graphic programming system facing NB-IoT terminals, which comprises a code editing module, a control dragging module and a process control module, the system comprises a source code generation module, a code compiling module and a program burning module, wherein the code editing module provides a code editing window platform, a control dragging module copies controls in a control library module selected by a user to the code editing module, a process control module establishes the relation of execution sequences among the controls in the code editing module according to user operation, the source code generation module integrates all the controls in the code editing module after the establishment of the relation of the execution sequences of the controls 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 an NB-IoT terminal. The system can complete program development work only by dragging the graphical control, configuring the attribute of the graphical control and connecting the graphical control according to the flow logic.

Description

NB-IoT terminal-oriented graphical programming system
Technical Field
The invention relates to the technical field of terminal programming, in particular to an NB-IoT terminal-oriented graphical programming system.
Background
The Narrow-Band Internet of Things (NB-IoT) is a Low Power Wide Area Network (LPWAN) with characteristics of large connection, wide coverage, deep penetration, Low cost, and Low Power consumption, and is developed for Internet of Things application. The technology can be widely applied to application scenes with small information transmission quantity, low real-time requirement, complex working environment and sensitivity to power consumption, such as: the system comprises the following components of factory equipment remote monitoring, intelligent agriculture, intelligent home, intelligent city, intelligent environment monitoring, intelligent user service, intelligent metering and the like.
Generally, developing an NB-IoT terminal product necessarily requires a program coding process, and is usually implemented by programming in a computer language at present. However, because the common communication language between the computer language and people is not a system, the system has strong logicality and accuracy, and the difference of one punctuation mark can cause great difference of meanings, which requires a developer to have certain programming foundation and knowledge related to communication, thus causing higher development requirement and greater difficulty.
Disclosure of Invention
Objects of the invention
Based on the graphical component programming system, in order to reduce the development difficulty of developers, improve the development efficiency and increase the programming granularity, the invention discloses a graphical component programming system facing an NB-IoT terminal, and the embedded developers can finish programming by simply dragging controls.
(II) technical scheme
The invention discloses a graphic programming system facing NB-IoT terminals, comprising:
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 execution sequence among the controls in the code editing module according to the user operation;
the source code generating module is used for integrating all the controls in the code editing module after the execution order relations of all the controls are established 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 embodiment, the types of graphical controls included in the control library module include at least one of: event control type, execution control type, communication control type, sensor control type, process control type and subprogram control type.
In one possible implementation, the control dragging 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 content of the first and second substances,
the reference target has two different states to distinguish whether 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 to the control library module; wherein the control adding module comprises:
the window establishing unit is used for establishing a control window and adding a sub-control for the control window, wherein the sub-control comprises a button;
the code input unit is used for inputting codes of the controls to be added;
and the control binding unit is used for establishing the binding relationship between the control window after the code is added and the corresponding control graph to form the control.
In a 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 comprises:
a key generation unit for generating an array of set byte lengths as a key;
the encryption unit is used for carrying out XOR operation on plaintext codes in the executable program file by using the secret key to obtain a ciphertext;
and the circulation unit is used for repeating the following operations until the circulation times reach the set circulation threshold value and the final encrypted ciphertext is obtained: circularly shifting the ciphertext and enabling the encryption unit to carry out XOR operation on the ciphertext after the circular shifting; in addition, the first and second substrates are,
and the program burning module sends the final encrypted ciphertext to an NB-IoT terminal.
In one possible implementation, the system further includes a graphics rendering pipeline, the graphics rendering pipeline including:
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 pixel or not and converting the pixel into a fragment;
the pixel coloring module is used for geometrically transforming the fragment coordinates into texture space to obtain texture coordinates, converting the texture coordinates into addresses of corresponding pixels stored in the 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 an Alpha value;
and the on-chip buffer module is used for caching the Alpha value and the RGB value of the background image when the images are mixed, caching Alpha texture information and writing the result back to the frame buffer when the standard area is drawn.
In a possible implementation manner, the raster scanning module performs pixel scanning in a zigzag order, and outputs a pixel stream to be drawn in a manner of calculating a boundary function of a pixel with respect to four edges of a primitive.
In one possible embodiment, the system includes a graphics-rendering IP core, the data access structure of which includes:
a plurality of primary caches as private caches for each graphics processing unit;
a second level cache as a shared cache for each graphics processing unit;
third-level caching;
the tag management module is used for reading a tag value in a cache group code and comparing the tag value with the high order of a request address when receiving an external data request, judging whether the data required by the request is in the cache, if so, outputting a hit ID (identity), otherwise, updating the tag value of the corresponding data block according to a 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 identification under the condition that the data required by the request is in the cache, outputting the request to read the address in the 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 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, and otherwise, updating the corresponding data block in the RAM and returning the data required by the current request.
(III) advantageous effects
The graphical programming system facing the NB-IoT terminal disclosed by the invention has the advantages that after common elements of different types of hardware and software drivers are extracted, the drivers are further packaged into the draggable control of the GCNB, an embedded developer can perform component programming by using a graphical programming language, and only the graphical control needs to be dragged, the attribute of the graphical control is configured, and the program development work can be completed according to the logical connection of the process, so that the development threshold is reduced, the development efficiency is improved, and the programming granularity is increased.
Drawings
The embodiments described below with reference to the drawings are exemplary and intended to be used for explaining and illustrating the present invention and should not be construed as limiting the scope of the present invention.
FIG. 1 is a block diagram of an embodiment of a graphical programming system according to the present disclosure.
FIG. 2 is a schematic diagram of a system display interface in a graphical programming process.
Fig. 3 is a schematic diagram of a serial port burning execution process.
Fig. 4 is a schematic diagram of an NB-IoT send control configuration interface.
Fig. 5 is a compilation flow diagram.
Fig. 6 is a graphical code diagram of the intelligent agricultural greenhouse system.
Detailed Description
In order to make the implementation objects, technical solutions and advantages of the present invention clearer, 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 graphical programming system disclosed herein are described in detail below with reference to fig. 1-6. The graphical programming system is installed on the PC side and used for writing and sending User programs (User programs) in the remote NB-IoT terminal so as to update the User programs. As shown in fig. 1, this 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 a TreeView (tree structure type provided by C #) type treeViewIconBox variable in the PC side software code. In one embodiment, after extracting the common elements of the controls, the controls are divided into six classes from the common point of view, each of which is defined in the enumerated type variable selected type, and the types of the graphical controls included in the control library module include at least one of the following: event control type eventinicon, execution control type ExecuteIcon, communication control type CommunicateICon, sensor control type SensorIcon, flow control type FlowControl, and subroutine control type SubFunIcon.
The control dragging unit mainly relates to a control library module frmIConBox and a code editing module frmGraphic code, and is used for copying the control in the control library module frmIConBox selected by the user into the code editing module frmGraphic code. In one embodiment, the control dragging module comprises a control recording unit and a selected recording unit. The control recording unit is used for recording the control currently selected by the user. And 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 to distinguish whether any control is selected.
Specifically, a member variable SelectedIconNode of the TreeNode type exists in the frmconbox window, when a certain control in the control tree is selected, the control is assigned to the SelectedIconNode, and the allreadyselectionconfronttreaview is set to true. The system defines a mouse-up event frmGraphic Programmer _ MouseUp in the form of the code editing module, which is triggered when the mouse clicks in the form. If the AlreadySelectIconFromTreeView is detected as true in the event, the selectedICONNode in the frmIConBox window is copied to the position of clicking the mouse.
In embedded programming, an event may also be referred to as an interrupt. Many functions (such as timing, serial port receiving and the like) with requirements on real-time performance are realized by means of interruption, the real-time performance can be improved by using the interruption, and resource consumption is greatly reduced, 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 by using wire harnesses according to certain logic. Each control has two interfaces: entry points and exit points. The entry point is an interface connecting to the present control from the other control, and the exit point is an interface connecting to the other control from the present control.
Controls can be divided into three categories: a start control, a middle control, and an end control. The start controls are mainly main controls and event controls, which are indispensable for starting a graphical program. The intermediate control is the control with the largest number, and most execution controls, sensor controls and the like belong to the intermediate control. The end control is primarily an "end" control, which is not a required control and may sometimes be omitted.
In software, mouse-down and mouse-moving events are respectively registered for an entry point and an exit point, and operations such as drawing lines are added to the events, so that a logical connection function between controls is realized. After the wiring is completed, the wiring harness is generally disordered and may even have crossovers, which is very inconvenient to read. For this purpose, a function of automatically arranging icons is added to the present unit, and the function is triggered by an event OnMouseWheel in which the mouse slides up and down. After the function is triggered, all the starting controls are traversed, and all the controls connected with the starting controls are connected according to a vertical arrangement rule.
The main control and the received switch signal control are initial controls. The control connected with the main control is sequentially executed 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 sequentially executed after the event is triggered. The 'conditional 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 generation module is configured to integrate all the controls in the code editing module after the establishment of the execution order relationship is completed, so as to obtain a source code file. That is, the source code generation module completes the process of converting the graphical code into the compilable source code. The source code generation module will traverse all the initial controls and their child controls and integrate the codes of these controls together. This function is implemented dependent 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 comprise global variables, local variables, variable initial values, interrupt service routines, interrupt service statements, initialization codes, codes inserted into spatial positions, interrupt enabling codes, subfunction codes, header files, macro constants, structure types, control annotations, parameter saving information for restoring the 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 control, 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) is a set of compilation systems developed by GNU organization, issued under the GPL license agreement, currently used as standard compilers by most operating systems (such as 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 calls a GCC compiling command by using a CMD command window. In C #, the output of the CMD window can be redirected, and the present system redefines the normal 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 the gcc command are not in the same thread, an asynchronous calling method should be used to ensure cross-thread security.
The execution process of the compiler can be subdivided into five phases: lexical analysis, syntactic analysis, semantic analysis, intermediate code generation, optimization and target code generation. The first processing to be performed on the source program is lexical analysis. The method is a linear analysis mode, and analyzes words (such as keywords, identifiers, variable names and the like) one by scanning codes in a source program line by line and outputs a word sequence string. Parsing is further parsing the source code according to rules, syntax (e.g., C language and ";" end of sentence) of a given programming language to bring the word sequence strings into sets and determining relationships between the sets according to the syntax. The semantic analysis and intermediate code generation stage can truly understand the 'meaning' of the source code so as to decide the execution process of the generated code, and the intermediate code which can complete the target of the source code is generated according to syntax and semantics in the stage, and the operation of the program is determined. And in the optimization stage, the generated intermediate code is reasonably processed, so that the target code, namely the obj file, with less code amount and higher operation efficiency is generated. After the source code is processed and optimized, 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 composed of a plurality of program segments Pi (i ═ 0,1,2, ·, n), where P0 is the main program segment, which is the one that must be included, and which determines the content of the main function. Other Pi's consist of functions, events and or subroutines. Each program segment Pi, except P0, has a function control, an event control, or a subroutine control as the first control. Each Pi in turn can be represented by a doublet: pi is ═ B, E >. Wherein, B is the first control, i.e. a function control, an event control or a subroutine control. E is the content of a code segment Pi, which is the 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.
And the program burning module is used for sending the executable program file to the NB-IoT terminal. In one embodiment, the program burning module sends the executable program file to the NB-IoT terminal in the form of an SWD protocol. The SWD debugging protocol is a serial debugging protocol proposed by ARM company, can complete communication by only 4 lines (VCC, GND, DIO and CLK), has simple structure, stable performance and strong compatibility, can provide a debugging speed superior to a JTAG (joint test action group) protocol in a high-speed mode, and solves the problems of excessive pin occupation and slow debugging speed in the high-speed mode. Most chips have defaulted to support this debug mode. In another embodiment, the program burning module analyzes the executable program file and sends the data frame obtained after analysis to the NB-IoT terminal. After the program is dragged well by using the system, a hex file is generated by compiling. As shown in fig. 3, the burning process of the program is a process of analyzing the meaning of the hex file and writing the designated data into the designated flash of the terminal device. After the system parses the hex file, framing is performed according to the agreed data frame protocol, and then 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 the 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 turned on.
(2) Initializing a kernel timer Systick, starting an interrupt of the kernel timer Systick, setting a timing interval of 500 milliseconds, and providing two Application Programming Interface (API) interfaces of sysTimeGet and sysTimeSet for a User program, wherein the User program can acquire or set system time through the two interfaces.
(3) Initializing a serial port, using the serial port as the serial port for burning, and printing basic debugging information by the serial port.
(4) The hardware driver residing in the BIOS is provided to the User program in the form of API. The User program can directly drive basic hardware resources in the MCU through the API, and the driver program does not need to be written by self.
(5) And copying the interrupt vector table of the BIOS to the RAM area.
(6) And judging whether a burning program request exists or not. If yes, the burning process is executed, if not, the 4 bytes of the start address of the User program project are copied to the MSP, and the subsequent 4 bytes are copied to the PC register. After the step is executed, the MCU switches from the BIOS program to the User program to continue running.
The existing graphical programming technology has the defect of insufficient performance optimization, and codes generated by graphical software may have certain redundancy in order to consider various application scenes as much as possible. Moreover, code cannot be optimized as closely as possible to advanced programmers using their rich programming experience. Therefore, 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 basis, the source code can be directly modified according to requirements after a general program frame is dragged out, and secondary programming of the graphical code is realized. These changes would greatly increase the flexibility of the graphical programming platform, filling some of the gaps of 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 the functions of providing convenience for text editing, such as: full selection, cutting, copying, pasting, deleting, canceling and the like. Meanwhile, the advanced editing unit provides a code coloring function for a developer to read codes conveniently. The developer can specify the format of the language by himself, and the unit colors the keywords in the code according to a certain coloring rule and presents the sentence blocks in the code.
In editing code (especially in the case of large code amount), we often face the problem of hard finding the designated code. For this reason, the software adds a code searching unit, and the problem can be effectively solved through the inquiry function.
In one embodiment, the system further includes 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 a developer by a system, and the information output module is used for outputting information in both a text graphical programming environment and a text changing environment.
The existing graphical programming technology has the defect of low flexibility, and the functions which can be realized by the technology depend on the richness of the control library module of the technology to a great extent. The graphics software may be overwhelming for the developer's specific application scenario. Thus, in one embodiment, the system further comprises a control addition module. The control adding module is used for adding a new graphical control to the control library module. The control adding module comprises a form establishing unit, a code input unit and a control binding unit. The form establishing unit is used for establishing a control form and adding a sub-control for the control form, wherein the sub-control comprises a button. The code input unit is used for inputting the code of the control to be added. And the control binding unit is used for establishing the binding relationship between the control window added with the code and the corresponding control graph to form the control.
The NB-IoT control is repackaged based on the NB-IoT components, and for the communication control, the main function of the NB-IoT control is the data receiving and sending. To this end, the NB-IoT component is packaged as two controls, NB-IoT transmit and NB-IoT receive. Because data receiving is unpredictable, in order to improve the operating efficiency and reduce the programming difficulty, the subject encapsulates the data receiving as an event control, and realizes the data receiving function by means of the interrupt function of a chip. This section will illustrate the step of adding a new control, taking the NB-IoT send control as an example.
Pictures are an important presentation form of graphical controls. After the picture design is finished, the picture can be validated only by binding the picture with the control. The existing graphical programming technology has the defect that mutual migration between development environments is difficult. During development, a developer may have a need to change the development environment. The projects of the graphical software generally have respective organization forms, are incompatible with each other and cannot be compatible with a text programming environment, and developers are difficult to transplant among different development environments. Therefore, in order to reduce the difficulty of binding the control as much as possible, the software packages the modification process into the xml file. Compared with the prior mode of storing control information by using a database, the xml file does not need to depend on any database management tool, has a good data structure, is a cross-platform and portable data storage mode, 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 main function of the NB-IoT send control is to send data to a specified target IP address and port, and therefore, the control will use the UEcom _ init, UEcom _ linkBase, UEcom _ linkCS, UEcom _ send functions in the UEcom component.
An example Code for a custom structure type Code is described above, which contains all the information contained in a generated control. When designing the NB-IoT transmission control, it should be considered which members of the code are always likely to be involved in the usage of the respective functions of the NB-IoT transmission control. After analysis, it can be known that the functions of the NB-IoT transmission control need to involve variables such as an initialization code of a code variable, a code inserted into a control position, a header file, a control annotation, and parameter saving information for restoring the control.
As shown in fig. 4, a control configuration form generated after double-click 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 modified are written, and loaded and saved codes after instantiation and quitting are written. The specific operation steps are as follows:
(1) and (5) creating a new window and naming. Here designated frmNbSend.
(2) Add the button. Buttons such as 'confirm', 'cancel' and 'comment specification' are added, and the buttons can be copied from the existing control configuration form.
(3) And modifying a constructor 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 settable controls contained in the frame as an IP address and port number input box of the text box type and controls related to data transmission.
(5) And when the content in the implementation control is changed, modifying the content in the code correspondingly.
(6) And the function of saving the code in the control to the code when the 'confirm' button is clicked is realized.
After the control configuration form is written, the control configuration form needs to be bound with the control, the related code of the control sent by the NB-IoT is newly added, the addition of the new control is completed, and the newly added control can be selected for graphical programming of the user program.
Executable codes generated by embedded programming run on hardware with limited resources and different performances, sometimes, an operating system is not arranged on a single chip, so that the existing graphical programming technology has the defect of low chip adaptability, the existing embedded graphical programming software is mostly only specific chips, the compatibility problem of multiple chips is not fully considered, and when the chips need to be replaced, the change is large. Therefore, in one embodiment, 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, 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 adaptability means that a program developed by the present system can be made to run on a differently configured hardware system without modification. Chip adaptability relies on the BIOS system implementation of the NB-IoT terminal. As shown in fig. 5, before the code compiling module performs the compiling operation, a command is first sent to the NB-IoT terminal through the serial port to request the terminal to report the device information. The NB-IoT terminal sends the equipment information to the system after receiving the command, and the system automatically completes the configuration work during compiling and burning according to the received equipment information.
When a developer replaces a chip, only whether the performance is enough or not and whether the hardware resource is enough or not need to be considered, and the problem of software transplantation after the chip is replaced does not need to be considered.
The benefits of improving chip adaptability are as follows: (1) when a developer wants to change the MCU, the hardware can be directly changed, the program is re-burned by using the platform, the development cost for changing the chip is greatly reduced, and a user only needs to change the new hardware and re-burn the program by using the system without any modification on the platform; (2) the cost of the product can be guaranteed to be lowest, the performance of the product 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 model selection is reduced, even if the model selection fails, the software which is coded is not influenced, and the loss caused by the fault is minimized.
Security issues are all communications have to face, and wireless communications, while bringing us with endless convenience, also carry the risk of information theft. From the technical point of view, the interception of the signal cannot be avoided, but the relative safety of the real information can be guaranteed through technical means, namely, an information encryption technology is adopted. Although the encryption performance of the currently common encryption algorithm is good, the encryption algorithm has the disadvantages of high complexity, high resource occupancy rate and difficult implementation, so in one implementation mode, the system further comprises a code encryption module capable of implementing a symmetric key type lightweight encryption method, and the code encryption module is used for encrypting codes in an executable program file generated by the code compiling module by using a multi-round loop encryption mode so as to improve the 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 a set byte length as a key, for example, a 4-byte array is defined as a key. The encryption unit is used for carrying out XOR operation on plaintext codes (namely the plaintext 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 circularly shifting the ciphertext obtained by the encryption unit, for example, circularly shifting the ciphertext by one byte to the right, then enabling the encryption unit to perform exclusive or operation on the ciphertext subjected to the circular shifting and the key to obtain the ciphertext subjected to the second round of encryption, and then repeatedly performing the circular shifting and the encryption until the circulation frequency reaches the set circulation threshold. Theoretically, the encryption strength will increase as the number of encryption rounds increases, but this will take more time to encrypt and decrypt and take more resources. After a large number of application requirements are studied and the practical situation is combined, the embodiment selects a 5-round encryption mode, that is, a round threshold value is set to be 5. Thus, the lightweight encryption of the original data is completed. In addition, the program burning module sends the final encrypted ciphertext to the NB-IoT terminal instead of sending the original plaintext.
It is understood that the ciphertext receiving end (i.e., NB-IoT terminal) may also be configured with a corresponding encryption/decryption algorithm, wherein the decryption algorithm is the reverse of the encryption algorithm. The communication between the terminal and the system can encrypt and decrypt the communication data through the encryption and decryption algorithm. The encryption method has the advantages of small calculation amount, good encryption performance, consistent encrypted ciphertext length with the original ciphertext and no increase of network overhead.
For an NB-IoT terminal, its hardware platform is divided into core hardware and scalable hardware. If the hardware of the NB-IoT terminal is directly and integrally designed, when the requirement changes, only the PCB is redrawn, and the hardware can be newly added, so that the hardware is divided, core hardware or expandable controls can be added, cut or replaced according to the actual requirement, and meanwhile, a user can freely select the expandable hardware according to the requirement without buying bills for all hardware, so that the application of a production line process is facilitated, and the production cost is greatly reduced.
The core hardware plays a role of a 'command center', does not depend on any other module, and can operate only by supplying power. The core hardware comprises components such as an MCU minimum system, an NB-IoT communication module, a USB interface connected with extensible hardware and the like. The MCU minimum system is a minimum-scale peripheral hardware circuit 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 expandable hardware is generally a module with a specific function, and it has a USB interface corresponding to the core hardware, and can be combined with the core hardware to build a system meeting the project requirements. All the requirements of the USB interface are embodied on the USB interface, and the USB interface can normally work after being connected with core hardware by using a USB wire, and has strong expansibility.
There are two communication modes for network data transmission: TCP and UDP. UDP is a communication mode for directly transmitting data without handshaking, and does not consider whether a receiving side actually receives data. Although the UDP has a fast transmission speed and occupies a small amount of resources, the reliability of transmission cannot be guaranteed, and the problem of data loss occurs at a high probability. Therefore, in one embodiment, the program burning module communicates data with the terminal through a TCP protocol. Before data communication, TCP will first perform three-way handshake and establish TCP communication link, and if the receiver does not receive data, it also has retransmission mechanism to ensure successful data communication. Although the TCP sending steps are complicated and occupy more resources, the stability and reliability of data communication are ensured. Therefore, TCP is selected as the network communication mode by the component.
Most of graphical human-computer interaction under low-power consumption and low-bandwidth limited scenes is realized by adopting an embedded system, and the rapid development of the Internet of things and the strong demand of people for the graphical human-computer interaction make a graphical rendering system under the scene of the Internet of things more important. 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 the graphics signals independently inside the display chip. The graphics rendering pipeline includes a raster scan module, a pixel shading module, an Alpha blending module, and an on-chip buffer 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 pixel elements or not, and converting the pixel elements into the film elements.
The raster scanning module can scan pixel points in a zigzag order, so that a scanning track curve has better correlation in space, the cache hit rate is favorably improved, and a hardware circuit is simpler to realize. The raster scanning module can also output a pixel stream to be drawn in a mode of calculating a boundary function of the pixel point relative to four edges of the primitive. The raster scanning module can complete one pixel point judgment in each period, outputs pixel points to be drawn and improves the data throughput capacity of the graphics rendering pipeline.
And the pixel coloring module is used for geometrically transforming the fragment coordinate into a texture space to obtain a texture coordinate. Specifically, the pixel coloring module may include a coordinate transformation unit to perform matrix transformation of homogeneous coordinates. The pixel coloring module can also comprise a quick division unit which is used for converting the input into floating point numbers, approximately solving the division result of the mantissa part through a quick reciprocal solving algorithm, further improving the solution precision through Newton iteration, and finally outputting the division result and the exponent part of the mantissa part.
Then the pixel coloring module converts the texture coordinate into an address of the corresponding pixel stored in the memory, and the formula is as follows: addr is the address of the pixel in the memory, base _ addr is the first address stored by the texture, pixel _ code is the first pixel point of the texture, and pixel _ size is the size of each pixel.
And then the pixel coloring module determines the color value of the pixel point through texture filtering and colors the pixel point. That is, when the patch coordinates are geometrically transformed into texture space, the color values of the patches need to be determined by texture filtering, such as nearest neighbor filtering, bilinear filtering, and bicubic filtering.
Specifically, the pixel coloring module may include a texture filtering unit, the texture filtering unit calculates a weight of each pixel point first, reduces hardware resource overhead through parameter sharing, multiplies a color value of a corresponding pixel point by the weight, calculates contribution of a color value of each sampling point to the fragment, and calculates a final color value of the fragment in a pairwise addition manner.
There are two modes of generation of fragment color values. In the pure color filling mode, the graphic primitive is endowed with a designated color value, texture data does not need to be accessed, so that the bandwidth consumption of the system can be reduced, and the filling efficiency is extremely high. In the texture mapping mode, a pixel coordinate to be drawn is firstly converted into a texture pixel coordinate, then a texture pixel color value is read and converted, and finally texture filtering is carried out to obtain a fragment color value.
The Alpha mixing module is used for mixing the foreground image and the background image according to an 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 caching the Alpha value and the RGB value of the background image when the image is mixed, caching Alpha texture information, and writing the result back to the frame buffer when the standard area drawing is finished.
The graphics rendering pipeline combines the graphics display requirements under the internet of things scene, can realize filling specified colors in specified areas, supports geometric transformation such as image translation, rotation, scaling and projection, supports Alpha mixing, improves the parallelism of algorithms and improves the data processing capacity of the system by optimizing hardware pipelines and module multiplexing.
Due to the application and popularization of IoT technology and graphical human-computer interaction, IoT scene graphical display needs are increasingly flourishing. However, the increasing complexity and resolution of the graphical interface impose new requirements on the computing power of the embedded graphics system, and the traditional embedded scheme is difficult to meet the requirements on the computing power during the rendering of complex graphics, which leads to serious performance degradation of the system. Therefore, in one embodiment, the system comprises a graphics rendering IP core, wherein the graphics rendering IP core is used for completing rendering and drawing work of the user interface according to the primitive information and the texture data information generated by the 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 label management module.
Each first-level cache is a private cache of each graphic processing unit and is provided with four groups of input and output ports, so that the 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.
The third-level cache takes DDR as a storage medium, and reduces the access delay of a system for reading data in Flash.
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.
The data block of the address in the actual physical memory is mapped to the data block of the cache with the same low-order address, and meanwhile, each data block in the cache is provided with a TAG (TAG) which records the high-order address information of the data block in the cache 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 order 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 bit of the request address, it indicates that the cached data is the data required by the request, the data request is in a Hit (Hit) state, and the data in the cache is returned to the system, so as to complete the data request operation. If the initialization flag bit flag is invalid or the tag is inconsistent with the high bit of the request address, it indicates that the data in the cache is not the data required by the request at this time, and the data request is in a Miss (Miss) state, at this time, the correct data needs to be read from the physical memory and written back to the corresponding position of the cache, and the corresponding tag is updated, and then the correct data is returned to the system, so as to complete the data reading operation.
The tag management module is used for reading a tag value in the cache group code and comparing the tag value with the high order bit of the request address when receiving an external data request, and judging whether the data required by the request is in the cache, namely judging whether the request is hit. If the data block is not hit, the tag value of the corresponding data block is updated according to the replaced 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 the hit ID identification under the condition that data required by the request is in the cache, outputting the request to read the address in the RAM, and 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 program once to initialize a CAM (content-addressable memory) queue, and 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 first output and the CAM queue information is then updated.
The replacement strategy may adopt a Most Recently Used (MRU) strategy, and may also adopt a random replacement strategy, a first-in first-out strategy or a Most Recently Used (MRU) strategy.
And the random access 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, and 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 framework of a TBR, the division of screen area tasks is realized by adopting hardware logic, intermediate data cache is reduced by a real-time generation mode, an LRU (least recently used) group associated cache is adopted, a data access path of the graphics rendering IP core is optimized, and data access delay is delayed by adopting an FIFO (first in first out) structure.
The following is a specific embodiment of applying the present embodiment to an intelligent agricultural greenhouse system.
The purpose of the intelligent agricultural greenhouse demonstration system is to verify the possibility of solving the agricultural production problem by using the technology of the Internet of things. Aiming at the problems in the current agricultural production process, the intelligent agricultural greenhouse demonstration system has the following functions: (1) and (5) automatically irrigating. When the water content of crops is insufficient, the crops are automatically irrigated, and the crops are automatically stopped after being irrigated for a certain amount. (2) And (4) intelligent illumination. And automatically adjusting the illumination brightness according to the illumination condition. (3) And (6) intelligent temperature control. And automatically adjusting the temperature to a proper range according to the current temperature condition. (4) And (6) intelligently alarming. If abnormal conditions such as temperature, humidity and the like occur, the alarm can be directly sent out. (5) And (4) remote monitoring. The intelligent agricultural greenhouse system has the advantages that various sensor information of the greenhouse is automatically uploaded to the server and displayed through the webpage, the APP, the client or the WeChat applet, and a user can know the state of the intelligent agricultural greenhouse remotely.
And the NB-IoT terminal is responsible for collecting and processing the parameter information of the intelligent agricultural greenhouse and uploading the data to the server at regular time. And after receiving the data, the server forwards the data to the mobile phone APP, analyzes the data content, and gives an alarm through a short message if the data content has information needing alarming.
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 0+ kernel and is pushed out by NXP; an S32K144 chip, which is a 32-bit embedded MCU based on an Arm Cortex M4F kernel and derived from NXP, can also be selected. The communication module adopts an ME3616 model module which is introduced by the advanced Internet of things, and 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 standard.
Extensible hardware is then equipped with switch sensor, light sensor, temperature sensor, soil moisture sensor according to above-mentioned functional requirement to and color lamp, motor fan and water pump. The function of the switch sensor is to enable a user to control the action of the MCU through keys, which is equivalent to a key switch. The motor fan is an actuator with mechanical components. It comprises a direct current motor which can convert electric energy into mechanical energy,
and finally, connecting the core hardware and the extensible hardware into a whole through a USB data line to complete the construction of the hardware platform of the intelligent agricultural greenhouse system. The external interface of the expandable hardware module is an A-type USB interface, and the expandable hardware module contains 4 lines, and the specific meaning of the 4 lines is determined by the specific module but needs to be consistent with the external interface of the core hardware.
The software of the NB-IoT terminal is generated by a graphical programming system in a graphical drag mode, and mainly includes a main program and an interrupt program, the graphical 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 on the design logic. The present system uses two events (interrupts) in common: a switching 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 the means for alarming of the system, and when the temperature exceeds a set threshold value, the buzzer is started to alarm. A time-of-arrival event is triggered after one hour of arrival. At this time, the NB-IoT terminal sends a piece of sensor data recording the NB-IoT terminal's detection to the server. The rest of the code is the main program code, except for two events. Three functions are packaged in the system:
(1) and collecting a soil humidity information function. Soil moisture information is gathered by soil moisture sensor and is got, if humidity is less than the irrigation threshold value, then starter motor (water pump) begin to irrigate, makes humidity when normal when irrigating moisture, closes the motor and accomplishes the irrigation process.
(2) A temperature information function is collected. The temperature information is acquired by the temperature sensor, when the temperature is high, the system starts the motor fan to cool, the situation of fire caused by overhigh temperature is prevented, and if the temperature exceeds the cooling capacity of the motor fan, the NB-IoT terminal gives an alarm in a buzzer mode.
(3) And collecting an illumination information function. The illumination intensity data acquired by the illumination intensity sensor automatically judges whether the light is required to be supplemented or reduced, and controls the brightness and the color of the colored lamps according to the judgment result so that crops can synthesize required nutrients better through photosynthesis.
After the control is dragged, the code writing is completed by configuring the attribute of the control block. And after programming is finished, burning the program into the NB-IoT terminal by utilizing the compiling and burning functions of the software platform. The server program is developed by the C #, runs on the Ali cloud server, and mainly completes the functions of receiving data sent by the NB-IoT terminal and forwarding the data to the mobile phone App. And if the information needing alarming exists, alarming by using the short message. The Android program of the user mobile phone is compiled in an official development tool Android Studio environment, and the Android program has the main function of displaying the state information of the intelligent agricultural greenhouse to a user. Thus, the construction of the software and hardware platform only capable of being used for the agricultural greenhouse system is completed. Under the experimental environment, the agricultural greenhouse system is subjected to high-temperature test, drought test and the like, the system runs well, and 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 embodiments described are some embodiments of the present invention, not all embodiments, and features in embodiments and embodiments in the present application may be combined with each other without conflict. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
The division of modules, units or components herein is merely a logical division, and other divisions may be possible in an actual implementation, for example, a plurality of modules and/or units may be combined or integrated in another system. Modules, units, or components described as separate parts may or may not be physically separate. The components displayed as cells may or may not be physical cells, and may be located in a specific place or distributed in grid cells. Therefore, some or all of the units can be selected according to actual needs to implement the scheme of the embodiment.
The above description is only for the specific embodiment of the present invention, but the scope of the present invention is not limited thereto, and any changes or substitutions that can be easily conceived by those skilled in the art within the technical scope of the present invention are included in the scope of the present invention. Therefore, the protection scope of the present invention shall be subject to the protection scope of the appended claims.

Claims (10)

1. An NB-IoT terminal-oriented graphical programming system, comprising:
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 execution sequence among the controls in the code editing module according to the user operation;
the source code generating module is used for integrating all the controls in the code editing module after the execution order relations of all the controls are established 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.
2. The system of claim 1, wherein the control library module contains types of graphical controls that include at least one of: event control type, execution control type, communication control type, sensor control type, process control type and subprogram control type.
3. The system of claim 1, wherein the control drag module comprises:
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 content of the first and second substances,
the reference target has two different states to distinguish whether the control is selected.
4. The system of claim 1, further comprising:
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.
5. The system of claim 1, further comprising: the control adding module is used for adding a new graphical control to the control library module; wherein the control adding module comprises:
the window establishing unit is used for establishing a control window and adding a sub-control for the control window, wherein the sub-control comprises a button;
the code input unit is used for inputting codes of the controls to be added;
and the control binding unit is used for establishing the binding relationship between the control window after the code is added and the corresponding control graph to form the control.
6. 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.
7. The system of claim 1, further comprising: 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 comprises:
a key generation unit for generating an array of set byte lengths as a key;
the encryption unit is used for carrying out XOR operation on plaintext codes in the executable program file by using the secret key to obtain a ciphertext;
and the circulation unit is used for repeating the following operations until the circulation times reach the set circulation threshold value and the final encrypted ciphertext is obtained: circularly shifting the ciphertext and enabling the encryption unit to carry out XOR operation on the ciphertext after the circular shifting; in addition, the first and second substrates are,
and the program burning module sends the final encrypted ciphertext to an NB-IoT terminal.
8. The system of claim 1, further comprising 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 pixel or not and converting the pixel into a fragment;
the pixel coloring module is used for geometrically transforming the fragment coordinates into texture space to obtain texture coordinates, converting the texture coordinates into addresses of corresponding pixels stored in the 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 an Alpha value;
and the on-chip buffer module is used for caching the Alpha value and the RGB value of the background image when the images are mixed, caching Alpha texture information and writing the result back to the frame buffer when the standard area is drawn.
9. The system of claim 8, wherein the raster scan module performs pixel scanning in a zigzag order and outputs a stream of pixels to be rendered in a manner that computes a boundary function of the pixel with respect to four edges of the primitive.
10. The system of claim 1, 8 or 9, wherein the system comprises a graphics-rendering IP core, the data access structure of the graphics-rendering IP core comprising:
a plurality of primary caches as private caches for each graphics processing unit;
a second level cache as a shared cache for each graphics processing unit;
third-level caching;
the tag management module is used for reading a tag value in a cache group code and comparing the tag value with the high order of a request address when receiving an external data request, judging whether the data required by the request is in the cache, if so, outputting a hit ID (identity), otherwise, updating the tag value of the corresponding data block according to a 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 identification under the condition that the data required by the request is in the cache, outputting the request to read the address in the 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 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, and otherwise, updating the corresponding data block in the RAM and returning the data required by the current request.
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 true CN110941426A (en) 2020-03-31
CN110941426B 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)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111413987A (en) * 2020-04-09 2020-07-14 中国电子科技集团公司第三十六研究所 Ship navigation simulation driving system and development method
CN111538488A (en) * 2020-04-17 2020-08-14 荏原冷热***(中国)有限公司 Method and device for generating single-chip microcomputer driving program
CN111596852A (en) * 2020-06-12 2020-08-28 腾讯科技(深圳)有限公司 Content editing method, system, computer readable storage medium and terminal device
CN111679608A (en) * 2020-06-16 2020-09-18 南通大学 Wetland ecological environment monitoring system based on NB-IoT
CN112083922A (en) * 2020-09-21 2020-12-15 深圳市金玺智控技术有限公司 Visual programming method, device, equipment and storage medium
CN112462629A (en) * 2020-11-06 2021-03-09 蘑菇物联技术(深圳)有限公司 Interpretation method of controller control algorithm
CN112860241A (en) * 2021-02-24 2021-05-28 上海节卡机器人科技有限公司 Interface development method, display method, device, electronic equipment and medium
CN113204339A (en) * 2021-03-22 2021-08-03 杭州微纳核芯电子科技有限公司 Visual programming method, device, equipment and medium for chip
CN113204338A (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
CN113535156A (en) * 2021-08-04 2021-10-22 中国计量大学 Graphical programming method and platform of logistics transportation control system
WO2022000293A1 (en) * 2020-06-30 2022-01-06 西门子(中国)有限公司 Graphical programming method, processor, and terminal
WO2022000287A1 (en) * 2020-06-30 2022-01-06 Siemens Ltd., China Method and apparatus for automatic programming
CN114185532A (en) * 2022-02-15 2022-03-15 武汉慧联无限科技有限公司 Graphical programming system
CN116305713A (en) * 2022-09-07 2023-06-23 杭州未名信科科技有限公司 Chip simulation system and simulation method
CN116627397A (en) * 2023-07-24 2023-08-22 腾讯科技(深圳)有限公司 Program development method and related device
CN116663502A (en) * 2023-06-01 2023-08-29 上海同星智能科技有限公司 Method and system for converting text codes and graphic codes for automobile development
CN117768511A (en) * 2024-01-09 2024-03-26 中科物栖(南京)科技有限公司 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

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111413987A (en) * 2020-04-09 2020-07-14 中国电子科技集团公司第三十六研究所 Ship navigation simulation driving system and development method
CN111413987B (en) * 2020-04-09 2023-06-13 中国电子科技集团公司第三十六研究所 Ship navigation simulation driving system and development method
CN111538488A (en) * 2020-04-17 2020-08-14 荏原冷热***(中国)有限公司 Method and device for generating single-chip microcomputer driving program
CN111596852A (en) * 2020-06-12 2020-08-28 腾讯科技(深圳)有限公司 Content editing method, system, computer readable storage medium and terminal device
CN111679608A (en) * 2020-06-16 2020-09-18 南通大学 Wetland ecological environment monitoring system based on NB-IoT
WO2022000287A1 (en) * 2020-06-30 2022-01-06 Siemens Ltd., China Method and apparatus for automatic programming
WO2022000293A1 (en) * 2020-06-30 2022-01-06 西门子(中国)有限公司 Graphical programming method, processor, and terminal
CN112083922A (en) * 2020-09-21 2020-12-15 深圳市金玺智控技术有限公司 Visual programming method, device, equipment and storage medium
CN112462629A (en) * 2020-11-06 2021-03-09 蘑菇物联技术(深圳)有限公司 Interpretation method of controller control algorithm
CN112860241A (en) * 2021-02-24 2021-05-28 上海节卡机器人科技有限公司 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
CN113535156A (en) * 2021-08-04 2021-10-22 中国计量大学 Graphical programming method and platform of logistics transportation control system
CN113535156B (en) * 2021-08-04 2023-08-22 中国计量大学 Graphical programming method and platform of logistics transportation control system
CN114185532A (en) * 2022-02-15 2022-03-15 武汉慧联无限科技有限公司 Graphical programming system
CN116305713A (en) * 2022-09-07 2023-06-23 杭州未名信科科技有限公司 Chip simulation system and simulation method
CN116305713B (en) * 2022-09-07 2024-06-04 杭州未名信科科技有限公司 Chip simulation system and simulation method
CN116663502A (en) * 2023-06-01 2023-08-29 上海同星智能科技有限公司 Method and system for converting text codes and graphic codes for automobile development
CN116663502B (en) * 2023-06-01 2023-11-28 上海同星智能科技有限公司 Method and system for converting text codes and graphic codes for automobile development
CN116627397A (en) * 2023-07-24 2023-08-22 腾讯科技(深圳)有限公司 Program development method and related device
CN116627397B (en) * 2023-07-24 2024-01-30 腾讯科技(深圳)有限公司 Program development method and related device
CN117768511A (en) * 2024-01-09 2024-03-26 中科物栖(南京)科技有限公司 Data transmission method, device, equipment and storage medium of Internet of things equipment

Also Published As

Publication number Publication date
CN110941426B (en) 2023-09-19

Similar Documents

Publication Publication Date Title
CN110941426B (en) Graphic programming system for NB-IoT terminal
Varga A practical introduction to the OMNeT++ simulation framework
US20220217224A1 (en) System and method for facilitating sharing of virtual three-dimensional space
Varga OMNeT++
US20020129340A1 (en) Reconfigurable isomorphic software representations
US8966438B2 (en) System and methods for end-users to graphically program and manage computers and devices
Barr An efficient, unifying approach to simulation using virtual machines
US8074201B2 (en) Deployment and execution of a program on an embedded device
CN101763265B (en) Procedure level software and hardware collaborative design automatized development method
US20180074843A1 (en) System, method, and computer program product for linking devices for coordinated operation
US9118679B2 (en) Analytics data collection with low integration cost for dynamic message passing systems
CN102087609B (en) Dynamic binary translation method under multi-processor platform
CN104079613A (en) Method and system for multiple tenants to share application program objects
CN100492387C (en) Method and system for software protected development based on Keil C51
Li et al. Code offload with least context migration in the mobile cloud
US9389935B2 (en) Analytics data collection with low integration cost for dynamic message passing systems
CN110554998A (en) hook method, device, terminal and storage medium for replacing function internal instruction
Li et al. Minimizing context migration in mobile code offload
CN115525850A (en) Method for improving speed of downloading and loading model at Web end and offline loading
Müller Data stream processing on embedded devices
CN109460280B (en) Method and terminal for running program
WO2022111703A1 (en) Method, device and system for acquiring hardware performance data
CN101593257B (en) System and method for protecting software based on.Net virtual machine
Oppermann et al. Design and compilation of an object-oriented macroprogramming language for wireless sensor networks
Åsrud A Programming Language for the Internet of Things

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